计算机程序设计语言——基本知识概述
2025-05-15 22:02:46
  • 0
  • 0
  • 0
  • 0

计算机程序设计语言——基本知识概述

吴国发

2025年5月14日


内容提要:本文系统地介绍计算机程序设计语言,包括定义、要素、成分、特点、分代、类型等;同时介绍程序设计语言的三种分类方式及其代表性语言。

关键词:计算机 程序设计 语言 FORTRAN BASIC PASCAL Java


本文计算机技术的普及文章。具有计算机基础知识的读者可以读懂全文。

计算机程序设计语言是人类与计算机交互的主要工具。

我们系统地介绍计算机程序设计语言,包括定义、要素、成分、特点、分代、类型等;同时介绍程序设计语言的三种分类方式及其代表性语言。


一,程序设计语言的定义和要素

计算机程序设计语言是用于书写计算机程序的语言。机程序设计语言由一组字符(包含英文字母和阿拉伯数字)与一套语法规则组成。程序设计语言通过特定的语法规则和语义结构实现对计算运算过程的表达。

程序设计语言包含三大要素:

‌语法‌:定义符号组合规则(如运算符优先级、代码格式)。语法表示程序的结构或形式,亦即表示构成语言的各个记号之间的组合规律,但不涉及这些记号的特定含义。

‌语义‌:描述符号的实际含义与执行逻辑(如循环结构的迭代终止条件)。语义表示程序的含义,亦即表示按照各种方法所表示的各个记号的特定含义。

‌语用‌:反映语言在不同场景下的适用性特征(如嵌入式程序开发可选C语言)。


二,程序设计语言的成分和特性

(一)程序设计语言的成分

计算机程序设计语言的基本成分如下:

(1) 数据成分,用以描述程序中所涉及的数据。

(2) 运算成分,用以描述程序中所包含的运算。

(3) 控制成分,用以表达程序中的控制构造。

(4) 传输成分,用以表达程序中数据的传输。

(二)程序设计语言的特性

计算机程序设计语言具有下列特性:

(1) 心理特性:包括歧义性,简洁性,局部性,顺序性,传统性。

(2) 工程特性:可移植性,开发工具的可利用性,软件的可重用性、可维护性。

(3) 技术特性:能够满足多种技术要求。例如,支持结构化构造的语言有利于减少程序环路的复杂性,使程序易测试、易维护。


三,程序设计语言的发展和分代

从发展历程来看,程序设计语言可以分为三代。

第一代:机器语言,1940年代。

机器语言是由二进制数字0、1组成的代码指令构成的。从1939年第一台电子计算机诞生起,直到1950年代汇编语言出现为止,计算机技术人员都使用机器语言编写计算机程序。

机器语言程序难编写,难修改,难维护,需要用户直接对存储空间进行分配。使用机器语言的编程效率极低,程序代码直观性、兼容性差,并且很容易出现错误。因此,机器语言在上世纪50年代汇编语言出现后就被淘汰了。

第二代:汇编语言,1950年代。

1955年,IBM公司推出了第一种汇编语言,用于为其704计算机编写程序。

汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系。汇编语言的优点是:占用内存空间少,可直接访问系统接口,汇编程序翻译成的机器语言程序的效率高。

但是,汇编语言存在着难学难用、容易出错、维护困难等缺点。

高级程序设计语言出现后,汇编语言仍然有用处。

在高级语言不能满足设计要求,或不具备支持某种特定功能的技术性能(如特殊的输入/输出)时,汇编语言才被使用。

简单的计算机控制系统的程序往往用汇编语言设计。

第三代:高级语言,从1957年开始。

高级程序设计语言是面向用户的、基本上独立于计算机种类和结构的语言。

第一门高级程序设计语言是FORTRAN,从1957年开始使用。那时,FORTRAN功能少,主要用于工程技术计算。后来,FORTRAN不断更新换代。现在的FORTRAN具有许许多多功能,深受科技人员喜爱。

高级程序设计语言最大的优点是:形式上接近于算术语言和自然语言,概念上接近于人们通常使用的概念。例如,下面的高级语言(PASCAL语言)语句,很容易理解:

if x>10 then print(x)。

高级语言的一个命令可以代替几条、几十条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。


四,高级程序设计语言的分类方法

计算机高级程序设计语言种类繁多。

高级程序设计语言的分类主要有下列三种方法。

(1)根据语言的应用分类

根据语言的应用,可以分为:通用语言,结构化语言,专用语言。

(2)根据语言的面向分类

根据语言的面向,可以分为:面向过程的语言,面向对象的语言,面向问题的语言(第四代语言,4GL)。

(3)根据语言的执行方式分类

根据语言的编译、执行方式,可分为:编译型语言,解释性语言,混合型语言。


五,适合于三种应用场景的程序设计语言

从应用角度来看,高级语言可以分为基础语言、结构化语言和专用语言。

(一)基础语言/通用语言

基础语言也称通用语言。它历史悠久,流传很广,有大量的已开发的软件库,拥有众多的用户。

代表性的通用语言有FORTRAN、COBOL、BASIC等。

BASIC语言是1964年开发的一种交互式语言,可用于一般的数值计算与事务处理。BASIC 语言结构简单,易学易用,并且具有交互能力,成为许多初学者学习程序设计的入门语言。

(二)结构化语言

20世纪70年代以来,结构化程序设计和软件工程的思想日益为人们所接受,出现了一些很有影响的结构化语言。PASCAL、C、Ada语言就是它们的突出代表。

PASCAL语言是第一个系统地体现结构化程序设计概念的高级程序设计语言。PASCAL开发者的最初目标是把它作为结构化程序设计的教学工具。

由于PASCAL具有模块清晰、控制结构完备、数据类型丰富、语言表达能力强、容易移植等优点,不仅被国内外许多高等院校定为教学语言,而且在科学计算、数据处理和系统软件开发中都有广泛的应用。

C语言功能丰富,表达能力强,有丰富的运算符和数据类型,移植能力强,编译质量高,目标程序效率高。

同时,C语言还具有低级语言的许多特点,如允许直接访问物理地址,能进行位操作,可以直接对硬件进行操作。用C语言编译程序产生的目标程序,其质量可以与汇编语言产生的目标程序相媲美。它具有“可移植的汇编语言”的美称。因此,C成为编写操作系统和编译程序的重要语言之一。

(三)专用语言

专用程序设计语言是为某种特殊应用而专门设计的语言,通常具有特殊的语法形式。一般来说,这种语言的应用范围狭窄,移植性和可维护性差。

随着时间的推移,专业语言越来越多,现在已经有数百种。应用比较广泛的专业语言有APL、Forth、LISP、PROLOG等。


六,用于三种面向的程序设计语言

根据程序设计语言的面向,可以分为三种语言。

(一)面向过程的语言

以“数据结构+算法”程序设计范式构成的程序设计语言,称为面向过程的语言。前面介绍的程序设计语言,FORTRAN、BASIC、PASCAL等,大多数是面向过程语言。

(二)面向对象的语言

以“对象+消息”程序设计范式构成的程序设计语言,称为面向对象的语言。比较流行的面向对象的语言有Java、C++、Delphi、VBA(Visual Basic for Applications),等等。

Java是一种面向对象的、不依赖于特定操作系统的程序设计语言,其执行方式是混合型。Java是分布式的、可扩展的、多线程支持的语言;其数据类型显性说明,实行动态存储管理。Java的程序易于理解,其功能比其他任何程序设计语言都多。

Delphi语言具有可视化开发环境,提供面向对象的编程方法,可以设计各种具有Windows界面的应用程序,也可以开发多媒体应用系统。

Visual Basic for Applications简称VBA,是为开发应用程序而提供的开发环境与工具。无需编写任何程序,就可以方便地创建应用程序的图形化界面。

(三)面向问题的语言

面向问题的的语言是第四代语言(4GL)。这是一种非过程化语言。

用4GL编写程序时,只需说明“做什么”、不必告知“怎么做”,不需要描述算法细节。

第四代语言大多数是指基于某种语言环境上具有4GL特征的软件工具产品,如SQL、PowerBuilder、WebFOCUS等。

SQL是4GL的一个典型。SQL(Structured Query Language,结构化查询语言)是具有数据定义、数据操作、数据查询等多种功能的交互式数据库语言。用户只需标明查找的内容在什么地方、根据什么条件进行查找等信息,SQL将自动完成查找过程,并在用户平台显示。


七,三种编译执行方式的相应语言

程序设计语言的编译执行方式有三种:编译型,解释型,混合型。

虽然大多数的语言既可被编译(Compiled),又可被解译(interpreted),但大多数只在一种情况下能够良好运行。

(一)编译型语言

如果所使用的翻译的机制是将所要翻译的程序代码作为一个整体翻译,此后运行内部格式,那么这个翻译过程就称为编译。

一个编译器是一个将可阅读的程序文本(源代码,Source Code)作为输入的数据,然后输出可执行文件(Object Code)。所输出的可执行文件可以是机器语言,由计算机的中央处理器直接运行。

这种语言的编译、执行过程是:编译→链接→执行。

典型的编译型语言是FORTRAN和PASCAL。

(二)解释型语言

如果程序代码是在运行时才即时翻译,那么这种翻译机制就被称作解释。

使用解释型语言,用户输入语句,立即得到运行结果。

经解释的程序运行速度往往比编译的程序慢,但解释型语言的灵活性比编译型语言好。

典型的解释型语言是BASIC和Python。

(三)混合型语言

混合型编译的基本原理是通过多阶段编译和动态优化,实现高效执行与跨平台能力的平衡。典型的混合型语言是Java。

Java的编译原理与工作过程如下。

一、编译阶段

‌前端编译‌:源代码(.java文件)首先被编译为中间代码(字节码,.class文件)。该过程包含词法分析、语法分析和语义校验,生成与平台无关的二进制中间表示。

‌中间代码特性:字节码作为精简指令集,比源代码更接近机器码但保留抽象层,支持快速转换为目标平台的本地指令。

二、运行阶段

‌虚拟机解释执行‌:运行时环境(JVM,Java虚拟机)逐条读取字节码指令,通过解释器实时翻译为机器指令并执行。

‌即时编译(JIT)优化‌:虚拟机通过热点检测识别高频执行代码段(如循环体),将其编译为本地机器码缓存复用。后续执行直接调用缓存代码,避免重复解释的开销。

 
最新文章
相关阅读