2008年12月28日日曜日

软考学习笔记-数据库工程师第四章-程序设计语言基础

软考学习笔记-数据库工程师第四章-程序设计语言基础
第四章 程序设计语言基础

1、程序设计语言的基本概念

  低级语言和高级语言

  编译程序和解释程序:解释程序会直接解释执行源程序或者将源程序翻译成某种中间表示形式后再执行。
编译程序则会将源程序翻译成目标语言程序,然后在计算机上运行目标程序。

二者的根本区别是,在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不参加目标程序的执行过程;而在解释方式下,解释程序和源程序要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不生成独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。

  程序设计语言的定义:一般地,程序设计语言涉及3个方面,语法、语义和语用。语言的实现有个语境问题,包括编译环境和运行环境。

2、程序设计语言的分类:按程序设计方法的不同分为4种。分别是命令式程序设计语言和结构化设计语言、面向对象的程序设计语言、函数式程序设计语言、逻辑型程序设计语言。

  命令式程序设计语言:它是基于动作的语言,也称为过程式语言。随着函数、库、模块的使用,出现了结构化程序设计技术。在结构化程序设计中任何程序段的编写都基于3种基本结构,就是顺序、选择、循环。典型的实例有Pascal,C。

  面向对象的程序设计语言:面向对象的语言一般包括这3个概念,对象、类、继承。对象是人们要研究的任何事物,它具有状态和操作;类是由用户定义的数据类型,它将具有相同状态、操作和访问机制的多个对象抽象成一个对象类,属于这种类的一个对象叫作类实例或类对象,类代表一般而该类的一个对象代表具体;继承,类与类之间可以组成继承层次,以达到概念复用和代码重用。

  函数式程序设计语言:是一种面向值的语言,其基本概念来自LISP。主要应用于符号数据处理,如微积分、数理逻辑、游戏推演以及人工智能。

  逻辑型程序设计语言:是陈述式语言,其基本概念来自PROLOG,不是严格的通用程序设计语言。PROLOG的基本运算单位是Horn子句。主要用在人工智能领域,也用在自然语言处理、数据库查询、算法描述等,尤其适合作为专家系统的开发工具。

  FORTRAN是世界上最早出现的高级程序设计语言,是由一个主程序或一个主程序与若干个子程序组成,且都是独立的程序单位;

  COBOL是一种面向事务处理的高级语言,主要用于情报检索、商业数据处理等管理领域;

  ALGOL是另一个较早出现的高级语言,是一个分程序结构语言,每个分程序由begin和end括起来;

  PASCAL语言体现了结构化程序设计风格,将分程序和过程这两个概念合并为“过程”。一个PASCAL程序本身可看成是一个操作系统所调用的过程;

  C语言在系统应用和实时处理应用中成为主要的开发语言;

  C++中最主要的是增加了类机制,成为一种面向对象的设计语言,并最大限度的与C兼容;

  JAVA是一种新型的面向对象的Internet编程语言,扩充了对分布式及C/S结构的支持,是一种强类型语言,隐含了指针以避免由于指针引起的问题;

  LISP是基于表处理的函数语言,该语言中的程序和数据的形式是等价的,数据结构可以作为程序执行,程序也可以作为数据修改

3、程序设计语言的基本成分:包括数据、运算、控制和传输。

  数据成分,是程序操作的对象,具有存储类别、类型、名称、作用域和生存期等属性,使用时要为它分配内存空间。常量、变量、全局量、局部量。

  运算成分,指明允许使用的运算符号及运算规则。

  函数:函数的定义,函数的声明,函数的调用。函数的定义包括函数首部和函数体。函数应先声明后引用。函数调用时实参与形参间交换信息的方法有传值调用和引用调用两种。

传值调用中,若函数调用时以实参向形式参数传递相应类型的值,这种方式下,形式参数将不能向实际参数返回信息;除非使用用指针作形参,在调用时先对实参进行取地址运算,然后将实参地址传递给指针形参,这样才可以实现被调用函数对实际参数的修改。

4、汇编程序的基本原理

  汇编语言是面向机器的符号化程序设计语言。计算机需要使用汇编程序对汇编源程序进行翻译才能运行。一般汇编语言都提供指令语句、伪指令语句、宏指令语句进行编程。
指令语句, 又称机器指令语句,汇编后能产生相应的机器代码,可以被CPU直接识别执行。
伪指令语句,指示汇编程序在汇编源程序时完成某些工作,如给变量分配存储单元地址,给某个符号赋值。
宏指令语句,允许用户将多次重复使用的程序段定义为宏,宏指令语句就是对宏的引用。

  指令语句与伪指令语句的区别:指令语句经汇编后将产生相应的机器代码,而伪指令语句不产生机器代码;指令语句是在程序运行时完成,而伪指令语句只能在源程序被汇编时完成。

  汇编程序:它的基本工作是将每一条可执行汇编语句转换成对应的机器指令;处理源程序中出现的伪指令和宏指令。汇编程序一般需要扫描源程序2次才能完成翻译过程,第一次主要是计算符号的值,第二次才产生目标程序。

5、编译程序的工作阶段,编译程序的过程分为6个阶段,另有2个辅助的管理程序。分为是:词法分析、语法分析、语义分析、中间代码生成器、代码优化、目标代码生成6个阶段和符号表管理、出错处理程序。中间代码的特征是与具体的机器无关。

  代码优化和中间代码生成两个阶段并不是每种编译程序都必须的。

  语法分析中的预测分析法是自顶向下的一种语法分析方法。

  编译器在语义分析阶段进行表达式的类型检查及类型转换。

  编译过程的各个阶段都会涉及到表格管理和出错处理。

0 件のコメント: