当前位置: 首页 > news >正文

程序设计语言-软件设计(二十一)

数据结构与算法(二十)快速排序、堆排序(四)icon-default.png?t=N176https://blog.csdn.net/ke1ying/article/details/129269655

这篇主要讲的是 编译与解释、文法、正规式、有限自动机、表达式、传值与传址、多种程序语言特点。

  • 编译的过程

解释型 和 编译型

编译型过程:

源程序  词法分析  语法分析  语义分析

中间代码生成   代码优化   目标代码生成    目标程序

词法分析:非法字符、关键字或者标识符错误。

语法分析:语法结构错误,if或者end if不匹配等。

语义分析:死循环或者零除数等。

  • 有限自动机

上面DFA状态转换图可以看到S是起始,{f}表示结束位置。

下面的S输入一个0可以到B,输入一个1可以到A。

C到f意思是,输入一个0可以到f,输入一个1也可以到f。

(a|b)*:abbaab,,ab的任意串。(a或b组成的都能表达出来)

(ab)*:代表ababab...多个或者一个。

(ab|ba)*:abbaabbaab...ab和ba 的任意串。(ab或ba组成的任意)

(ab)*(ba)*:这代表先来若干个ab 再来若干个ba。Ababab...bababa....

表达式 分为前缀表达式、中缀表达式、后缀表达式。(与二叉树的前序、中序、后序遍历一致,分别从 根左右、左根右、左右根来表达)

传值和传址

传值调用:形参取的是实际参数的值,形参的改变不会改变实际参数的值。

引用(传址)调用:形参取的是实参的地址,即相当于实际参数存储单元的地址引用,因此其值的改变会导致实际参数值的改变。

传值和传址的区别:

&a 代表传址,a代表传值。

Int *a代表指针类型的形式参数,int a代表传值的形式参数

C语言高效是他最大的特点。

C++开始面向对象,高效。

Java语言:面向对象,跨平台,中间代码。

Lisp语言:人工智能。

C#:面向对象,中间代码,.net。

http://www.lryc.cn/news/29304.html

相关文章:

  • 【小破站下载工具】Python tkinter 实现网站下载工具,所有数据一键获取
  • C51---IO口状态翻转
  • 2023年春【移动计算技术】文献精读(一)-1 ||| 附:【Markdow语法】向上取整 向下取整。
  • Java 包装类的二进制操作
  • CSS居中之 { left:50%; top:50%; transform:translate(-50%,-50%); }
  • AcWing 4868. 数字替换(DFS + 剪枝优化)
  • 【教学典型案例】01.redis只管存不管删除让失效时间删除的问题
  • 电话号码管理
  • Shell 教程
  • Shader 阴影
  • 【冲刺蓝桥杯的最后30天】day2
  • docker系列1:docker安装
  • 内核角度谈谈Linux进程和线程
  • 【mmdeploy部署系列】使用Tensorrt加速部署mmpose人体姿态库
  • IDEA 每次新建工程都要重新配置 Maven 解决方案
  • 【C++修炼之路】25.哈希应用--布隆过滤器
  • linux入门---权限
  • Unity记录2.1-动作-多段跳、蹬墙跳、墙体滑落
  • Spring Boot结合IDEA自带Maven插件快速切换profile | Spring Cloud 10
  • ES 7.7.0 数据迁移
  • 【玩转c++】vector讲解和模拟底层实现
  • 基本类型、包装类型、引用类型、String等作为实参传递后值会不会改变?
  • Tomcat服务器配置以及问题解决方案
  • 【Node.js】HTTP协议、HTTP的请求报文和响应报文
  • CodeForce 455A. Boredom
  • geoserver之BlobStores使用
  • 跨域问题以及Ajax和Axios的区别
  • 现代卷积神经网络(AlexNet)
  • 单向非循环链表
  • Vue2的基本内容(一)