程序语言原理基本介绍

影响语言设计的两大要素

  • 计算机体系结构
  • 程序设计方法学

程序语言评价标准

  1. 可读性
  2. 可写性
  3. 可靠性
  4. 总成本
  5. 正交性

    正交性好久意味着相对较小的基本结构集合,能够以较少的组合方式来构成语言的控制结构和数据结构。但是,基本结构的任何一种可能组合都是合法且有意义的。如果某一个组合不合法,那就是正交性不够好。说通俗点就是如果一个语言的特例较多,那它的正交性就不好。

  6. 类型检查是否完善

  7. 语义是否明确
  8. 异常处理是否完善
  9. 整体简单性,表达性好不好

程序设计方法学

开始是面向过程,然后逐渐由面向过程转变为面向数据。面向数据的方法强调数据的设计,关注如何用抽象数据类型来解决问题。最后演变为面向对象的设计。面向对象的设计方法基于数据抽象,将数据处理和数据对象封装在一起,控制数据访问,加入了继承和动态方法绑定。

程序语言设计方法实现的基础

操作系统和语言实现系统在计算机的机器语言接口之上,他们是分层的,这些层可以想象为虚拟的计算机,在更高的层次上提供用户接口。

实现方法:编译、完全解释和混合实现系统
  • 编译

    是程序语言经过编译器翻译成生机器语言,由计算机直接执行。这种方法称为编译器实现,其优点是一旦翻译过程完成,程序的执行速度就非常快。先翻译完后执行,只翻译一次。

    冯诺依曼瓶颈:计算机内存和处理器连接的速度决定了计算机的速度,因为指令执行比指令传输到处理器更快,这一连接称为冯诺依曼瓶颈,它是冯诺依曼体系结构计算机主要的速度限制因素。这个瓶颈是研究和开发并行计算机的主要动机。

  • 完全解释

    程序由一个称为解释器的程序进行解释执行,没有任何翻译过程。解释器程序的行为像是机器的软件仿真,其读取-执行周期处理的是高级语言程序语句而不是机器指令。显然,这种软件仿真为该语言提供了一个虚拟机。

    缺点是速度慢,执行速度慢的根本原因是对高级语言语句的解码,比机器语言指令要复杂的多,而且不管语句执行多少次,每次都必须解码。

  • 混合实现系统

    编译和完全解释的折中,系统先将高级语言程序翻译成专为方便解释而设计的中间语言。

    优点

    速度比完全解释快,因为源语言语句只解码一次。

    举例:

    比如java语言,中间形式是字节码,可移植到装有字节码解释器和相应的运行时系统的任何机器上。字节码解释器和相应的运行时系统被统称为java虚拟机。

    扩展:

    即时JIT实现系统是先将程序翻译为中间语言,然后在执行过程调用方法时,将中间语言的方法编译为机器代码,机器代码会保留,用于之后的调用。还有一种方式:解释器用于开发和调试程序,在程序达到没有缺陷的状态后,再编译程序,以提高执行速度。

你可能感兴趣的:(程序语言原理基本介绍)