self_conquer

人,怎样信仰,便怎样生活...

My Links

Blog统计

文章

收藏

相册

ColorfulLife

ComputerTech

CrackFeeling

EconomySurvey

EnglishLover

JobHunting

ProgramingLanguage

WebDesign

存档


正在读取评论……

       ML(metalanguage)从字面意思上说是用来描述其他语言的语言(a language used to describe other language),即所谓的元语言,ML用来描述目标语言。这里,在计算机的专业领域,ML是一种高级的函数型编程语言。

        ML(metaLanguage)语言家族包括Classic ML, Standard ML, Caml, and Objective Caml等成员,极大引发了的关于语言的研究,涉及到类型推断,模块系统,运行语义学等。2005年9月25日,在爱沙尼亚首都塔林将举行关于ML语言的国际会议,旨在为研究者,设计者,用户传达关于ML语言的最新的研究成果,为大家提供一个交流的平台。 而最初ML是由Edinbourgh大学的研究团体在约1973年开发的一种元语,当时仅作为LCF(The Logic of Computable Functions,)定理证明软件包的一部分。直到1990年,ML主要还只是作为一种解释语言,相对编译语言而言执行速度较慢。这意味着极少有应用软件采用ML语言,大部分对于ML的关注都来自于研究和教育团体。

        如今ML已经逐渐发展成为一种独立的通用编程语言,许多ML的设计工具(例如SML/NJ)都为它提供编译环境。它于1990年被标准化,并于1997年修订为Standard ML‘97。ML最初用于开发编译器和解释程序等,PCF(Programming language for Computable Functions,对可计算函数进行编程的语言)曾在LCF软件包里使用ML进行数学定理证明。LCF是以自动或半自动方式进行函数型程序证明的系统,ML就是为LCF系统所设计的元语。

        ML本质上是一种基于函数的编程语言,是一种安全、严格、模块化、多形态的函数型编程语言,能够进行编译时的类型检查和类型推断、垃圾收集和异常处理,具有不可变的数据类型和可更新的参照、抽象数据类型以及参数化模块。ML以函数为对象,通过定义函数和使用已定义的函数进行程序设计,不用考虑如何修改和操作内存中内容。但许多应用程序中的对象状态都是复杂且动态改变的,因此ML也在一定程度上支持命令型编程并带有异常处理机制,从而将命令型编程的特点与函数型编程很好的结合在一起。

         Ml 包括核心语言和模块语言。核心语言用来小范围的程序设计,模块语言用于大范围的程序设计。有如下几个特点:

  •   Type Inference  
  •   Higher-order Function 
  •  Recursion 
  •  Computation 
  •  Polymorphism 
  • Abstraction 
  • Rule—based Programming

        ML 还有其它一些特点,比如垃圾收集、异常处理系统(类似于C++和Java)、不可变的数据类型(特别是大部分的变量和数据结构,一旦创建并初始化,就不能再对其进行修改或更新,而必须通过建立新的数据结构来实现修改的目的)、可更新/可指定的参照(以便在必要的时候进行破坏原有数据的更新操作)以及参数化模块。



Trackback: http://tb.donews.net/TrackBack.aspx?PostId=424340


[点击此处收藏本文]  发表于2005年06月11日 4:36 PM




正在读取评论……
大名
网址
验证码
评论