编译原理第三天

常用的高级程序设计语言

FORTRAN    数值计算

COBOL        事务处理

PASCAL       结构化程序设计

LISP             函数式程序设计

PROLOG      逻辑程序设计

C                  系统程序设计

Smalltalk      面向对象程序设计

Java              Internet 应用 可移植性

Python          解释性 动态编程

优点: 更接近数学语言 更容易验证 编写效率高 更容易移植

程序语言的定义

语法: 程序本质上是一定字符集上的字符串 一组规则,用它可以形成和产生一个合式的程序。

       词法规则:  单词符合的形成规则

                          单词符合是语言中具有独立意义的最基本结构

                         一般包括: 常数、标识符、基本字、算符、界符等

                         描述工具: 有限自动机

       语法规则: 语法单位形成的规则

                         语法单位通常包括:表达式   语句 分程序 过程 函数 程序

                           描述工具:上下文无关文法                  

语义:一组规则,用它可以定义一个程序的意义

      描述方法:自然语言描述

                        形式描述

语用:

高级语言的分类

强制性语言

应用式语言 注重程序过程

基于规则的语言 Prolog

面向对象语言 封装 继承 多态性

程序结构

Fortran :

            一个程序有一个主程序和若干辅程序段组成

PASCAL:

            可以看成一个操作系统调用的过程,过程可以递归

JAVA:

              面向对象的语言 类 对类进行扩展

数据类型与操作

数据类型通常包括三要素:

  用于区别这种类型数据对象的属性

  这种类型的数据对象可以具有的值

  可以作用于这种类型的数据对象的操作

初等数据类型:

  整型 实型 复数 双精度

  运算:+ - * /等

  逻辑类型: true false  ^ !

  字符类型     指针类型

标识符与名字

标识符: 以字母开头 由数字和字符构成

名字: 具有语义色彩 有意义和属性 有值:单元中的内容

名字的说明方式:

  由说明语句来明确规定的

  隐含说明: FORTRAN

  动态确定: 走到哪里,是什么,算什么

数据结构

数组:

 逻辑上,数组是由同一类型数据组成的某种N维矩行结构,沿着每一维的距离,称为下标

 数组可变与不可变

 访问 给出数组名和下标值

 存放方式: 按行存放 和  按列存放

记录:

 由已知类型的数据组合在一起的一种结构

 记录或者结构的元素,也叫做域

访问: 复合名 

存储: 连续存放

域的地址计算

 record{

        int age;

        char name[20]

  }cards[1000]

字符串、表格、栈

 字符串: 符合处理、公式处理

 表格:本质上一种记录结构

 线性表: 一组顺序化的记录结构

 栈: 一种线性表; 后进先出

抽象数据类型:

  抽象数据类型:

        抽象数据类型由数据集合、及其相关的操作组成,这些操作由明确的定义,而且定义不依赖于具体的实现。

  一个抽象数据类型包括:

         数据对象集合

         作用于这些数据对象的抽象运算的集合

         这种类型对象的封装,即 除了使用类型中所定义的运算外,用户不能对这些对象进行操作。

程序设计语言对抽象数据类型的支持:

   Ada通过程序包来支持抽象数据类型

  C++ 和 JAVA 通过类来支持抽象数据类型

语句和控制结构

表达式:

  由运算量和算符组成

  形式:中缀 前缀 后缀

  表达式形成规则:

        变量 常数是表达式

         若E是表达式 则 (E)是表达式

  算符的优先次序

赋值语句

  A:=B

  名字的左值:该名字代表存储单元的地址

  名字的右值: 该名字代表存储单元的内容

控制语句

  无条件转移语句

  条件语句

  循环语句

  过程调用语句

  返回语句

按照功能分类:

 执行语句   说明语句 

按照形式分类:

   简单句    复合语句
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值