高级语言概述

合集下载

1、简述高级语言的优点

1、简述高级语言的优点

1、简述高级语言的优点高级语言是计算机编程中的一种编程语言,相对于低级语言而言,高级语言更加方便人们进行程序设计和开发。

它具有许多优点,下面我将从几个方面来进行简述。

高级语言相对于低级语言来说,更加易学易用。

低级语言如机器语言和汇编语言需要直接操作计算机硬件,对于初学者来说学习和掌握这些语言是一项相对困难的任务。

而高级语言则使用更加接近自然语言的语法和结构,更容易理解和使用。

这使得初学者能够更快地掌握编程技巧,并且更加容易编写出高效的程序。

高级语言具有更强的可读性和可维护性。

高级语言代码更接近自然语言,使用了更加易于理解和表达的语法结构,使得代码更加清晰易读。

相比之下,低级语言代码通常更加冗长和难以理解,需要更多的注释和解释才能理解其含义。

高级语言的可读性和可维护性使得团队合作更加便利,不同的程序员可以更容易地理解和修改彼此的代码,提高了开发效率。

第三,高级语言拥有更多的内置函数和库。

高级语言通常提供了丰富的内置函数和库,这些函数和库可以简化编程过程,提高开发效率。

开发者可以直接调用这些函数和库来完成一些常见的任务,而无需从头编写代码。

这不仅节省了开发时间,还提高了程序的可靠性和稳定性。

高级语言还具有更好的跨平台性。

由于不同计算机架构和操作系统之间的差异,低级语言编写的程序往往需要进行大量的修改才能在不同的平台上运行。

而高级语言编写的程序可以在不同的平台上直接运行,无需进行任何修改。

这使得开发者能够更加方便地将自己的程序移植到不同的平台上,提高了程序的可移植性和灵活性。

高级语言还具有更好的安全性。

高级语言通常提供了丰富的安全机制和功能,如内存管理、异常处理等。

这些机制和功能可以帮助开发者预防和处理程序中的各种错误和异常情况,提高了程序的稳定性和可靠性。

相比之下,低级语言由于直接操作计算机硬件,容易出现内存泄漏、缓冲区溢出等安全问题,需要开发者自己来处理这些问题。

高级语言具有易学易用、可读性强、可维护性高、拥有丰富的内置函数和库、具有良好的跨平台性和更好的安全性等优点。

语言的种类及其分类概述

语言的种类及其分类概述

语言的种类及其分类概述语言是人类最重要的交流工具之一,它不仅仅是传递信息的方式,更是文化和思想的载体。

世界上存在着众多的语言,它们以不同的形式和结构存在,反映了不同地区和民族的文化背景。

本文将概述语言的种类及其分类,探讨语言的多样性和发展。

一、自然语言自然语言是人类最主要的语言形式,广泛用于日常交流和表达思想。

自然语言包括汉语、英语、法语、德语、俄语等等,每一种语言都有自己独特的语音、语法和词汇体系。

这些语言通过语音、文字和手势等方式传递信息,是人类社会交流的基础。

二、人工语言人工语言是由人创造出来的语言形式,目的是为了满足特定的交流需求。

人工语言可以分为国际辅助语言和虚构语言两种类型。

1. 国际辅助语言国际辅助语言是为了促进不同国家和地区之间的交流而创造的语言。

例如,世界语(Esperanto)是一种广泛使用的国际辅助语言,它的语法规则简单,词汇来源广泛,易于学习和掌握。

国际辅助语言的目标是消除语言障碍,促进全球交流和合作。

2. 虚构语言虚构语言是在文学作品、电影或游戏中创造出来的语言形式。

例如,《指环王》系列中的精灵语和多瑙语,以及《星际迷航》中的克林贡语等。

这些虚构语言不仅为作品增添了文化和神秘感,也成为了粉丝们的交流方式。

三、手语手语是一种通过手势和身体动作进行交流的语言形式。

它主要用于聋哑人士之间的交流,但也被一些人群广泛应用。

手语的发展和使用在不同国家和地区存在差异,如美国手语、法国手语等。

手语的特点是通过手势和面部表情传递信息,具有独特的视觉特征。

四、计算机语言计算机语言是一种用于编程和指令的语言形式。

它可以分为高级语言和低级语言两种类型。

1. 高级语言高级语言是人类可读和理解的语言形式,如C、Java、Python等。

程序员可以使用高级语言编写代码,然后通过编译器将其转换为计算机可执行的机器语言。

高级语言的优点是易于学习和使用,提高了编程的效率。

2. 低级语言低级语言是计算机可直接理解和执行的语言形式,如汇编语言和机器语言。

高级语言的定义

高级语言的定义

高级语言的定义高级语言是计算机科学中的一个概念,它是相对于低级语言而言的。

低级语言指的是与计算机硬件直接相关的语言,如机器语言和汇编语言。

而高级语言则是更加接近人类自然语言的一种编程语言。

高级语言的特点是抽象性强、可读性好、易于学习和理解。

它通过使用更接近人类自然语言的语法和结构,使得程序员能够更直观地表达自己的思想和逻辑,从而更容易编写出复杂的程序。

高级语言的出现和发展,极大地提高了程序开发的效率和质量。

与低级语言相比,高级语言的程序更易于维护、修改和重用,减少了编程过程中的错误。

同时,高级语言还提供了丰富的库和工具,使得程序员能够更加便捷地完成复杂的任务。

高级语言可以分为面向过程和面向对象两种不同的编程范式。

面向过程的高级语言主要关注解决问题的步骤和流程,通过函数和模块的方式来组织代码。

而面向对象的高级语言则更加注重将问题划分为对象,通过对象之间的交互和继承来解决问题。

常见的高级语言有C、C++、Java、Python、Ruby等。

这些语言都有自己的特点和应用领域。

例如,C语言是一种通用的高级语言,广泛应用于系统软件和嵌入式开发;Java语言则是一种跨平台的高级语言,适用于开发网络应用和大型软件系统;Python语言则以其简洁的语法和丰富的库而受到广泛关注,适用于各种领域的开发。

高级语言的使用需要编译器或解释器的支持。

编译器将高级语言的程序代码转换为机器语言,使得计算机能够直接执行;而解释器则一行一行地解释执行高级语言的程序代码。

不同的语言和平台有不同的编译器和解释器。

高级语言是计算机科学中的重要概念,它通过提供更接近人类自然语言的语法和结构,使得程序员能够更直观地表达自己的思想和逻辑。

高级语言的出现和发展,大大提高了程序开发的效率和质量,成为现代计算机编程的重要工具。

几种高级语言简介

几种高级语言简介

Fortran语言的最大特性是接近数学公式的自然描述,在计算机里具有很高的执行效率。

易学,语法严谨。

可以直接对矩阵和复数进行运算,这一点类似matlab。

自诞生以来广泛地应用于数值计算领域,积累了大量高效而可靠的源程序。

很多专用的大型数值运算计算机针对Fortran做了优化。

广泛地应用于并行计算和高性能计算领域。

Fortran90,Fortran95,Fortran2003的相继推出使Fortran语言具备了现代高级编程语言的一些特性。

Fortran语言是一种极具发展潜力的语言,在全球范围内流行过程中,Fortran语言的标准化不断吸收现代化编程语言的新特性,并且在工程计算领域仍然占有重要地位。

不可否认,Fortran语言与目前流行的JAVA,C#等高级语言相比,它缺乏创造力。

但是,工科学生必须注意到,由于Fortran在工程计算领域长期处于统治地位,很多优秀的工程计算软件都是运用fortran语言编写,例如ANSYS,Marc,为了能够使用这些商业软件的高级功能,必须先学会fortran语言,才能编写应用程序接口。

在数值计算中,Fortran语言仍然不可替代。

Fortran90标准引入了数组计算等非常利于矩阵运算的功能。

在数组运算时,Fortran能够自动进行并行运算,这是很多编程语言不具备的。

运用fortran语言,你能够运用很多现成的函数软件包,所以非常便利。

(目前流行的Matlab的早期版本,主要就是为两个著名的Fortran函数包提供程序接口)Prolog(Programming in Logic的缩写)是一种逻辑编程语言。

它建立在逻辑学的理论基础之上,最初被运用于自然语言等研究领域。

现在它已广泛的应用在人工智能的研究中,它可以用来建造专家系统、自然语言理解、智能知识库等。

同时它对一些通常的应用程序的编写也很有帮助。

使用它能够比其他的语言更快速地开发程序,因为它的编程方法更象是使用逻辑的语言来描述程序。

请列出常用的计算机高级编程语言,并做一些相关介绍

请列出常用的计算机高级编程语言,并做一些相关介绍

常用的计算机高级编程语言1. C语言C语言是一种通用的计算机编程语言,广泛用于系统软件和应用软件的开发。

它是一种结构化语言,具有高效的处理能力和丰富的系统函数库。

C语言的语法简洁,适合用于对计算机硬件进行直接操作的应用程序开发。

2. C++C++是在C语言的基础上发展起来的一种面向对象的编程语言。

它继承了C语言的高效性和灵活性,并且引入了面向对象的特性,如类、继承、多态等,使得程序的结构更加清晰,可维护性更强。

3. JavaJava是一种跨评台的编程语言,它的应用范围非常广泛,从嵌入式设备到企业级应用都有涉及。

Java具有良好的跨评台性能和丰富的类库,以及强大的网络支持能力,因此在服务器端开发和Web应用开发中得到了广泛的应用。

4. PythonPython是一种解释型的高级编程语言,它具有简洁、易读、易学的特点,适合快速开发原型和实际项目。

Python拥有强大的标准库和第三方库支持,可以用于科学计算、Web开发、数据分析等各种领域。

5. JavaScriptJavaScript是一种用于网页和服务器端开发的脚本语言,它在网页交互、动态效果、用户界面设计等方面都有着很好的表现。

随着Node.js的兴起,JavaScript还能用于服务器端开发,成为了一种全栈开发语言。

6. PHPPHP是一种用于Web开发的服务器端脚本语言,它具有优秀的数据库支持和强大的网页动态生成能力,被广泛应用于构建动态全球信息站和Web应用。

7. RubyRuby是一种开发效率高、易学易用的动态脚本语言,它注重程序员的幸福感,提供了优雅的语法和丰富的库,被广泛应用于Web开发和前端开发。

8. SwiftSwift是由苹果公司推出的一种面向iOS、macOS、watchOS和tvOS开发的编程语言,它继承了Objective-C的优秀特性,并且具有更加简洁、安全、易读的语法,成为了苹果评台开发的首选语言。

9. KotlinKotlin是一种在Java虚拟机上运行的静态类型编程语言,它具有简洁、清晰的语法和强大的特性,可以与Java无缝集成,成为了Android应用开发的新宠。

计算机的高级语言

计算机的高级语言

计算机的高级语言目前流行的有java、vb、vc、foxpro、delphi等高级语言是目前绝大多数编程者的选择⊥汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。

同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的vb、vc、foxpro、delphi等,这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类解释类执行方式类似于我们日常生活中的同声翻译”,应用程序源代码一边由相应语言的解释器翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

编译类编译是指在应用源程序执行之前,就将程序源代码翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。

但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj)才能执行,只有目标文件而没有源代码,修改很不方便。

现在大多数的编程语言都是编译型的,例如visual c++、visual foxpro、delphi等。

计算机语言---Java语言之简介1。

它的由来当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。

那么Java 到底有何神奇之处呢?Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。

他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。

但是,网络的出现改变了OAK的命运。

计算机的高级语言

计算机的高级语言

计算机的高级语言目前流行的有java、vb、vc、foxpro、delphi等高级语言是目前绝大多数编程者的选择⊥汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。

同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。

高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的vb、vc、foxpro、delphi等,这些语言的语法、命令格式都各不相同。

高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类解释类执行方式类似于我们日常生活中的同声翻译”,应用程序源代码一边由相应语言的解释器翻译”成目标代码(机器语言),一边执行,因此效率比较低,而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。

编译类编译是指在应用源程序执行之前,就将程序源代码翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。

但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(* .obj)才能执行,只有目标文件而没有源代码,修改很不方便。

现在大多数的编程语言都是编译型的,例如visual c++、visual foxpro、delphi等。

计算机语言---Java语言之简介1。

它的由来当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。

那么Java 到底有何神奇之处呢?Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。

他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。

但是,网络的出现改变了OAK的命运。

高级程序设计语言概述

高级程序设计语言概述

⾼级程序设计语⾔概述常⽤的⾼级程序设计语⾔常⽤的⾼级程序设计语⾔语⾔特点FORTRAN 数值计算COBOL 事务处理PASCAL 结构化程序设计LISP 函数式程序设计PROLOG 逻辑程序设计C 系统程序设计Smalltalk ⾯向对象程序设计Java Internet应⽤,可移植性Python 解释型⾼级程序设计语⾔的优点相对机器语⾔或汇编语⾔,⾼级程序设计语⾔更接近于数学语⾔和⼯程语⾔,更直观、⾃然和易于理解更容易验证其正确性、改错编写程序的效率更⾼更容易移植程序设计语⾔的定义标识符是语法概念,名字是语义概念语法程序本质上是⼀定字符集上的字符串语法:⼀组规则,⽤它可以形成和产⽣⼀个合式(well-formed)的程序词法规则:单词符号的形成规则单词符号是语⾔中具有独⽴意义的最基本结构⼀般包括:常数、标识符、基本字、算符、界符等描述⼯具:有限⾃动机语法规则:语法单位的形成规则语法单位通常包括:表达式、语句、分程序、过程、函数、程序等;描述⼯具:上下⽂⽆关⽂法E→iE→E+EE→E*E(不能理解成乘号)E→(E)语法规则和词法规则定义了程序的形式结构定义语法单位的意义属于语义问题语义语义⼀组规则,⽤它可以定义⼀个程序的意义描述⽅法⾃然语⾔描述⼆义性、隐藏错误和不完整性形式描述操作语义指称语义代数语义语⽤程序语⾔的基本功能和层次结构程序,本质上说是描述⼀定数据的处理过程程序语⾔的基本功能描述数据和对数据的运算层次结构程序| |⼦程序或分程序、过程、函数| |语句| |表达式| |数据引⽤运算符函数调⽤程序语⾔成分的逻辑和实现意义抽象的逻辑的意义数学意义计算机实现的意义具体实现⾼级程序设计语⾔的⼀般特性⾼级语⾔的分类强制式语⾔(Imperative Languge)/过程式语⾔命令驱动,⾯向语句FORTRAN 、C 、Pascal ,Ada应⽤式语⾔(Applicative Language)注重程序所表⽰的功能,⽽不是⼀个语句接⼀个语句地执⾏LISP 、ML基于规则的语⾔( Rule-based Language)检查⼀定的条件,当它满⾜值,则执⾏适当的动作Prolog⾯向对象语⾔(Object-Oriented Language)封装、继承和多态性Smalltalk ,C++,Java程序结构FORTRAN ⼀个程序由⼀个主程序段和若⼲辅程序段组成辅程序段可以是⼦程序、函数段或数据块每个程序段由⼀系列的说明语句和执⾏语句组成,各段可以独⽴编译模块结构,没有嵌套和递归PROGRAM …//主程序…endSUBROUTINE …//辅程序1…endFUNCTION …//辅程序2…endPASCALPASCAL 程序本⾝可以看成是⼀个操作系统调⽤的过程,过程可以嵌套和递归过程 过程头;说明段(由⼀系列的说明语句组成);begin执⾏体(由⼀系列的执⾏语句组成);end作⽤域同⼀个标识符在不同过程中代表不同的名字作⽤域:⼀个名字能被使⽤的区域范围名字作⽤域规则——"最近嵌套原则"最近嵌套原则⼀个在⼦程序B1中说明的名字X 只在B1中有效(局部于B1)如果B2是B1的⼀个内层⼦程序且B2中对标识符X 没有新的说明,则原来的名字X 在B2中仍然有效对X 重新作了说明,那么,B2对X 的任何引⽤都是指重新说明过的这个Xprogram mainvar A, B:real;…procedure P1var B:boolean;…begin…endprocedure P2var A:integer;…begin…endbegin…endP2的代码能够调⽤P1JAVA⾯向对象的⾼级语⾔类(Class )继承(Inheritance)多态性(Polymorphism)和动态绑定(Dynamic binding)class Car{int color;int door;int speed;…public push_break ( ) {…}public add_oil ( ) {…}}class Trash_Car extends car {double amount;public fill_trash ( ) {…}}数据结构与操作数据类型通常包括三要素⽤于区别这种类型数据对象的属性这种类型的数据对象可以具有的值可以作⽤于这种类型的数据对象的操作初等数据类型数值类型整型、实型、复数、双精度运算:+,-,*,/等逻辑类型true 、false布尔运算:∨,∧,┑等字符类型:符号处理指针类型标识符与名字标识符以字母开头的,由字母数字组成的字符串名字标识程序中的对象名字的意义和属性值:单元中的内容属性:类型和作⽤域名字的说明⽅式由说明语句来明确规定的int score 隐含说明FORTRAN 以I,J,K,…N 为⾸的名字代表整型,否则为实型动态确定⾛到哪⾥,是什么,算什么名字的绑定可以发⽣在编译过程中也可以发⽣在运⾏过程中标识符以字母开头的,由字母数字组成的字符串标识符与名字两者有本质区别标识符是语法概念名字有确切的意义和属性数据结构数组逻辑上,数组是由同⼀类型数据组成的某种n 维矩形结构,沿着每⼀维的距离,称为下标数组可变与不可变编译时能否确定其存贮空间的⼤⼩访问给出数组名和下标值,如A[10, i+ j]存放⽅式按⾏存放,按列存放数组A[10,20]的A[1,1]的地址为a ,每个元素占1字节,各维下标从1开始,按⾏存放,那么A[i ,j]地址为:a+(i-1)*20+(j-1)通⽤的数组元素地址计算公式数组元素地址计算设A 为n 维数组,按⾏存放,每个元素宽度为wlow i 为第i 维 的下界up i 为第i 维 的上界n i 为第i 维 可取值的个数(n i = up i -low i + 1),base 为A 的第⼀个元素相对地址元素A[i 1 ,i 2 ,…,i k ]相对地址公式( ((…i 1 n 2 +i 2 )n 3 +i 3 )…)n k +i k )×w +base-((…((low 1 n 2 +low 2 )n 3 +low 3 )…)n k +low k )×w)/Con内情向量内情向量登记维数,各维的上、下限,⾸地址,以及数组(元素)的类型等信息记录由已知类型的数据组合在⼀起的⼀种结构(field)record { char name[20];integer age;bool married;}访问:复合名 cards[k].name 存储:连续存放域的地址计算相对于记录结构起点的相对数OFFSET字符串、表格、栈字符串:符号处理、公式处理表格:本质上是⼀种记录结构线性表:⼀组顺序化的记录结构栈:⼀种线性表,后进先出,POP, PUSH抽象数据类型抽象数据类型(Abstract Data Type)A set of data values and associated operations thatare precisely specified independent of any particularimplementation.抽象数据类型由数据集合、及其相关的操作组成,这些操作有明确的定义,⽽且定义不依赖于具体的实现⼀个抽象数据类型包括数据对象集合作⽤于这些数据对象的抽象运算的集合这种类型对象的封装,即,除了使⽤类型中所定义的运算外,⽤户不能对这些对象进⾏操作程序设计语⾔对抽象数据类型的⽀持Ada 通过程序包(package)提供了数据封装的⽀持package STACKS istype ELEM is private;type STACK is limited private;procedure push (S: in out STACK; E: in ELEM);procedure pop (S: in out STACK; E: out ELEM);…end STACK;//规范说明//程序包体package body STACKS isprocedure push(S: in out STACK; E: in ELEM);begin……实现细节end push;procedure pop (S: in out STACK; E: out ELEM);begin……实现细节end pop;end;⼀个抽象数据类型包括数据对象集合作⽤于这些数据对象的抽象运算的集合这种类型对象的封装,即,除了使⽤类型中所定义的运算外,⽤户不能对这些对象进⾏操作程序设计语⾔对抽象数据类型的⽀持Ada 通过程序包(package)提供了数据封装的⽀持Smalltalk 、C++和Java 通过类(Class)对抽象数据类型提供⽀持JAVA 程序⽰例class Car{int color_number;int door_number;int speed;…public push_break ( ) {…}public add_oil ( ) {…}}class Trash_Car extends car {double amount;public fill_trash ( ) {…}}编译原理语句与控制结构表达式表达式由运算量(也称操作数,即数据引⽤或函数调⽤)和算符(运算符,操作符)组成形式:中缀、前缀、后缀X*Y -A P ↑或者p->表达式形成规则变量(包括下标变量)、常数是表达式。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
❖ LISP、ML
编译原理
2.2 高级语言的一般特性
2.2.1 高级语言的分类
基于规则的语言(Rule-based Language):检查一 定的条件,当它满足值,则执行适当的动作
❖ Prolog
面向对象语言(Object-Oriented Language):封 装性、继承性和多态性
❖ Smalltalk,C++,Java
end pop;
编译原理
end;
❖ JAVA
Java是一种面向对象的高级语言
❖类(Class) ❖继承(Inheritance) ❖多态性(Polymorphism)和动态绑定(Dynamic
binding)
编译原理
class Car{ int color_number; int door_number; int speed; … push_break ( ) { … } add_oil ( ) { … }
编译原理
package STACKS is
type ELEM is private;
type STACK is limited private;
procedure push (S: in out STACK; E: in ELEM);
procedure pop (S: in out STACK; E: out ELEM);
编译原理

E→i
E→E+E
E→E*E
E→(E)
❖ 语法规则和词法规则定义了程序的的形 式结构。定义语法单位的意义属于语义 问题。
编译原理
二. 语义
❖ 语义:一组规则,用它可以定义一个程 序的意义。
❖ 描述方法:
自然语言描述:隐藏错误、二义性和不完整 性
形式描述:
操作语义(PL/1) 指称语义(ADA) 代数语义(PASCAL)
program main var A, B : real; … procedure P1 var B:boolean; … begin … end procedure P2 var A:integer; … begin … end
begin
… end
A(real) A(integer) B(real) B(bool)
编译原理
2.2 高级语言的一般特性
2.2.2 程序结构 ❖ FORTRAN
一个程序由一个主程序段和若干辅程序段组成。 辅程序段可以是子程序、函数段或数据块。 每个程序段有一系列的说明语句和执行语句组成。
各段可以独立编译。 模块结构,没有嵌套和递归 各程序段中的名字相互独立,同一个标识符在不
个合式(well-formed)的程序。
编译原理
语法
❖ 词法规则:单词符号的形成规则。
单词符号是语言中具有独立意义的最基本结构 。一般包括:常数、标识符、基本字、算符、 界符等。
描述工具:有限自动机
❖ 语法规则:语法单位的形成规则。
语法单位通常包括:表达式、语句、分程序、 过程、函数、程序等;
描述工具:上下文无关文法
❖ 与机器语言或汇编语言比较,高级语言 的优点:
较接近于数学语言和工程语言,比较直观、 自然和易于理解;
便于验证其正确性,易于改错; 编写效率高; 易于移植.
编译原理
2.1 程序语言的定义
❖ 程序语言由两方面定义:
语法 语义 语用
编译原理
一. 语法
❖ 程序本质上是一定字符集上的字符串。 ❖ 语法:一组规则,用它可以形成和产生一
}
class Trash_Car extends car { double amount; fill_trash ( ) { … }
}
编译原理
2.2.3 数据类型与操作
❖ 一个数据类型通常包括以下三种要素:
用于区别这种类型数据对象的属性 这种类型的数据对象可以具有的值 可以作用于这种类型的数据对象的操作
编译原理
作用域:一个名字能被使用的区域范围 称作这个名字的作用域。
允许同一个标识符在不同的过程中代表 不同的名字。
名字作用域规则--"最近嵌套原则"
❖一个在子程序B1中说明的名字X只在B1中 有效(局部于B1);
❖如果B2是B1的一个内层子程序且B2中对 标识符X没有新的说明,则原来的名字X在 B2中仍然有效。如果B2对X重新作了说明, 那么,B2对X的任何引用都是指重新说明 过的这个X。 编译原理
同的程序段中代表不同的名字。
编译原理
主程序 PROGRAM … … end
辅程序1 SUBROUTINE … … end
辅程序2 FUNCTION … … end
编译原理
❖ PASCAL
PASCAL程序本身可以看成是一个操作系 统所调用的过程,过程可以嵌套和递归。
一个PASCAL过程: 过程头; 说明段(由一系列的说明语句组成); begin 执行体(由一系列的执行语句组成); end
编译原理
PASCAL提供了丰富的数据类型和运算 方式,它允许用户动态地申请和退还存 贮空间。
编译原理
❖ ADA
程序包(package):把数据和操作代码封装在 一起,支பைடு நூலகம்数据抽象。
一个程序包分为两部分:
❖可见的规范说明部分,它定义了程序包外面可以访 问的对象。
❖程序包体,它实际定义程序包的实现细节。
数学意义
❖ 计算机实现的意义
具体实现
编译原理
2.2 高级语言的一般特性
❖ 高级语言的分类
强制式语言(Imperative Languge)也称过程式语言: 命令驱动,面向语句
❖ FORTRAN、C、Pascal,Ada
应用式语言(Applicative Language):注重程序 所表示的功能,而不是一个语句接一个语句地执行
编译原理
三.程序语言的基本功能和层次结构
❖ 程序语言的基本功能:描述数据和对数据 的运算。
❖ 所谓程序,本质上说是描述一定数据的处 理过程。
编译原理
程序的层次结构
程序 |
子程序或分程序、过程、函数 |
语句 |
表达式 |
数据引用 算符 函数调用
编译原理
程序语言每个组成成分的逻辑和实现意义
❖ 抽象的逻辑的意义

end STACK;
package body STACKS is
procedure push(S: in out STACK; E: in ELEM);
begin ……实现细节
end push;
procedure pop (S: in out STACK; E: out ELEM);
begin ……实现细节
相关文档
最新文档