您的位置:首页 > 其它

软考—软件设计师—第2章程序设计语言基础知识

2018-04-02 15:49 363 查看
概念性的东西我总是很容易搞混,想着一边学习一边整理出来,如果这次没有考过的话下次还可以继续学习……
学习资料《软件设计师教程(第4版)》褚华 主编,清华大学出版社
对这本书有点小小的意见,没有课后习题,虽然说有对应的上下午科目的真题的书,但是感觉还是有一两道题会好一些

程序设计语言

    低级语言:机器语言和汇编语言。面向机器的语言。
    高级语言:面向各类应用的程序设计语言。Java、C、C++、PHP、Python、Delphi、PASCAL等。
    源程序:用某种高级语言或汇编语言编写的程序,不能直接在计算机上执行。汇编语言编写->汇编程序翻译成目标程序后执行;高级语言编写->对应的解释程序或者编译程序进行翻译。

解释程序直接解释执行源程序,或者将源程序翻译成某种中间代码后加以执行。
编译程序将源程序翻译成目标语言程序,然后在计算机上运行目标程序,源程序和编译程序不再参与目标程序的执行过程。
FORTRAN第一个被广泛用来进行科学计算的高级语言,一个FORTRAN程序由一个主程序和若干个子程序组成,主程序和子程序都是独立的程序单位,称为一个程序模块。
ALGOL是一个分程序结构的语言。由严格的文法规则,用BNF来描述语言的语法。分程序的结构是可以嵌套的。提供了数组的动态说明和过程的递归调用。
COBOL是一种面向事务处理的高级语言。语法规则很严格。用于情报检索、商业数据处理等。
PASCAL是一种结构化的程序设计语言,从ALGOL 60衍生。将分程序和过程两个概念合二为一统一为过程,过程可以嵌套和递归。
C一种通用程序设计语言。提供高效的执行语句并且允许程序员直接访问操作系统和底层硬件,在系统级应用、实时处理和嵌入式应用的开发中成为主要语言。UNIX及其上的许多软件由C编写。
C++与C兼容,增加了类机制,使其成为一种面向对象的程序设计语言。
Java一种通用的程序设计语言。保留了C++的基本语法、类和继承等概念,删掉C++中一些不好的特征。更简单,语法和语义更加合理。
PHP是一种在服务器端执行的、嵌入HTML文档的脚本语言,语言风格类似于C语言。可以快速地执行动态网页、能充分利用服务器性能、支持几乎所有流行的数据库以及操作系统。
Python是一种面向对象的解释型程序设计语言,可以用于编写独立程序、快速脚本和复杂应用的原型;也是一种脚本语言,支持对操作系统的底层访问,也可以将Python源程序翻译成字节码在Python虚拟机上运行。可以用C、C++和Java等进行扩展,因此可以用它开发任何类型的程序。
Delphi(Windows)/ Kylix(Linux)可视化开发工具,采用面向对象的编程语言Object Pascal和基于构建的开发结构框架。主要特征:基于窗体和面向对象的方法、高速的编译器、强大的数据库支持、与Windows变成紧密结合以及成熟的组件技术。
    程序设计语言分类:根据编程时的思维特点分为:命令式程序设计语言(结构化程序设计语言)、面向对象的程序设计语言、函数式设计语言、逻辑型程序设计语言。
命令式程序设计语言基于动作的语言。始于FORTRAN。FORTRAN、PASCAL、C语言。结构化程序设计语言属于命令式语言类。结构特性:①用自顶向下逐步精化的方法编程;②按模块组装的方法编程;③程序只包含顺序、判定(分支)及循环构造,而且每种构造只允许单入口和单出口、
面向对象的程序设计语言抽象机制高。始于Simula。Simula、C++、Java、Smalltalk。支持数据隐藏、数据抽象、用户定义类型、继承和多态等机制。
函数式的程序设计语言一类以λ-演算为基础的语言,始于LISP(一个为了人工智能应用而设计的语言)。优点之一是对表达式中出现的任何函数都可以用其他函数来代替,只要这些函数调用产生相同的值。LISP的程序和数据形式是等价的,数据结构可以作为程序执行,程序可以作为数据修改;在LISP中大量地使用递归。
逻辑型的程序设计语言一类以形式逻辑为基础的语言,其代表是建立在关系理论和一阶谓词理论基础山的PROLOG(Programming in Logic)。PROLOG程序是一系列试试、数据对象或事实间的具体关系和规则的集合。PROLOG有很强的推理功能,适用于编写自动定理证明、专家系统和自然语言理解等问题的程序。
    程序设计语言的基本成分:数据、运算、控制、传输。
    数据:程序操作的对象,具有存储类别、类型、名称、作用域和生存期等属性,在使用时要为它分配内存空间。按照数据组织形式的不同可以将数据分为基本类型、用户定义类型、构造类型、其他类型。
    运算:指明允许使用的运算符号及运算规则。算术运算、关系运算、逻辑运算、位运算等。运算符号要规定优先级和结合性。
    控制:指明语言允许表述的控制结构。可计算问题的程序都可以用顺序、选择和循环这3中控制结构来描述。循环结构通常由初始化、循环体和循环条件三部分组成,主要有while型循环结构和do-while型循环结构两种形式。
    传输:指明语言允许的数据传输方式,如赋值处理、数据的输入和输出等。

汇编程序基本原理

    汇编语言源程序三类语句:指令语句、伪指令语句、宏指令语句。

    指令语句(机器指令语句):汇编后能产生被CPU直接识别并执行响应操作的机器代码。分为传送指令、算术运算指令、逻辑运算指令、移位指令、处理控制指令。

    伪指令语句:指示汇编程序在汇编源程序时完成某些工作,不产生机器代码。如给变量分配存储单元地址、给某个符号赋一个值等。

    宏指令语句:就是宏的引用。在相应的位置使用宏名,即相当于使用了这段程序。
    汇编程序:功能是将用汇编语言编写的源程序翻译成机器指令程序。基本工作包括将每一条可执行汇编语句转换成对应的机器指令、处理源程序中出现的伪指令。一般需要扫描两次源程序才能完成翻译工作。

编译程序基本原理

    编译程序的功能是把某高级语言书写的源程序翻译成与之等价的目标程序。
    工作过程:①词法分析;②语法分析;③语义分析;④中间代码生成;⑤代码优化;⑥目标代码生成。

    词法分析的任务:对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个“单词”符号。“单词”符号是程序设计院的基本词法单位,如关键字(或称保留字)、标识符、常数、运算符、分隔符(如标点符号、左右括号)等。  

    词法分析器的构造:用正规式描述语言中的单词构成规则→为每个正规式构造一个NFA,它识别正规式所表示的正规集→将构造出的NFA转换成等价的DFA→对DFA进行最小化处理,使其最简→从DFA构造词法分析器。
    语法分析的任务:在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”、“语句”和“程序”等。语法规则就是各类语法单位的构成规则。如果源程序中没有语法错误,语法分析后就能正确地构造出其语法树。
    语法分析:程序设计语言的绝大多数语法规则可以采用上下文无关文法进行描述。根据产生语法树的方向,可分为自底向上和自顶向下两类语法分析方法。

    词法分析和语法分析本质上都是对源程序的结构进行分析。


H1

    p
(TO BE CONTINUE . . .)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息