自编译语言查看源代码讨论查看历史
自编译语言 |
自编译语言的功能及其编译程序是可以像滚雪球一样,一级一级她扩充。它可以对编译程序作修改并且描述其他语言的编译程序。它的编译程序在一台机器上建立以后,就有可能产生其他计算机上的各种语言的编译程序,从而缩短了编译程序的研制过程。它对于促进计算机的推广应用,其作用是显著的。
简介
在早期,人们是使用机器语言或汇编语言并用手工方式来编写编译程序的。采用这两种语言来编写编译程序的主要缺点是生产效率低,从编写到调试出一个中等复杂的程序语言(如ALGOL、FORTRAN)的编译程序,一般需要几个到十几个人年,并且编写出来的程序不便于阅读、修改和移植。用汇编语言手工编写编译程序的主要优点是:能够根据具体机器做针对性较强的处理,可以发挥具体计算机的系统功能;可以满足各种具体要求;编程可精雕细刻,所生成的程序效率高。但是随着计算机技术的发展,软件的生产率、可靠性、可移植性及可维护性等已成为当前软件生产和发展的主要矛盾,因此,越来越多的人使用高级语言来构造编译程序。这样做除了可以节省大量的程序设计时间外(实践表明,与手编程序相比,一般可节省四分之三的时间),而且所构造出来的程序易于阅读和修改,还可以用自展方式(自编译方式)来生成编译程序和进行编译程序的移植。所有这些都在一定程度上满足了软件工程化方面的要求。所以,已发展了多种适用于进行系统程序设计的高级语言,其中较著名的有Pascal、MODULA一2、C、Ada、C++和Java语言等。
评价
高级语言的自编译性是指,如果一个高级语言能用来书写它自己的编译程序,则该语言称为自编译语言。上述语言都是自编译语言。一般说来,自编译语言不但可以用来书写其自身的编译程序,而且也能用来书写其他语言的编译程序。所以,如果某台计算机上已配备有某种自编译语言(具备该语言的编译系统),就可以利用这种语言为本台机器配置其他高级语言(用该语言编写并生成其他高级语言的编译系统)。[1]