MIT教授将网页开发整合为完整独立的程式语言Ur/Web

jopen 9年前

MIT的软体技术教授Adam Chlipala设计了新的Ur/Web程式语言,这是一个整合HTML、CSS、XML、SQL及JavaScript等网路标准的“完整独立”语言, 强调快速、安全及“元编程”的开放源码专案,可望减少开发人员设计网路应用程式所耗费的时间与精力。
MIT教授将网页开发整合为完整独立的程式语言Ur/Web

美 国麻省理工学院(MIT)的软体技术教授Adam Chlipala设计了新的Ur/Web程式语言,这是一个整合HTML、CSS、XML、SQL及JavaScript等网路标准的“完整独立”语言 (self-contained programs),强调快速、安全及“元编程”(metaprogramming,或作“超编程)的开放源码专案,可望减少开发人员设计网路应用程式所 耗费的时间与精力。

根据Chlipala所发表的论文,Ur/Web是个静态的函数式语言,它把各种叠床架屋的网路标准融合成单一的程式模型,不论从安全或效能来看,都让网路得以保留它作为一个单纯应用程式平台的本质。

Chlipala 表示,全球网路(World Wide Web,WWW)是个非常受欢迎的平台,可用来设计各种具备图像使用者介面的应用程式,各种网路标准也慢慢出现,造就今日复杂的生态体系。若要以浏览器及 伺服器所支援的语言撰写丰富的功能,至少必须熟悉产生文件架构的HTML、产生文件格式的CSS、提供互动服务的JavaScript,以及递送上述内容 的HTTP通讯协定。近来还有一些受欢迎的应用程式仰赖JSON来传递复杂的资料格式,或是以SQL来储存永久的结构化资料,这些不同的语言的程式码经常 以各种复杂且片段的方式相互嵌入。

Ur/Web主要解决了两个问题,一是把封装(Encapsulation)应用在丰富网路程式中,支援那些能够以私有状态处理网路应用程式关键片段的程式模组。其次是揭露一个供开发人员使用的并发模型,用来支援伺服器端与客户端之间的重要通讯。

因 此,Ur/Web允许开发人员把网路应用程式当作独立程式来撰写,Ur/Web的编译器可以自动产生相对应的XML程式码及样式表规格,进而将 JavaScript与资料库程式码摆放在正确的地方。Chlipala说明,虽然Ur/Web编译器能够产生XML、JavaScript与SQL程式 码,但它并不会自动制造样式表,而是分析完整的程式后列出有关的CSS类别,再提出设定建议。

Ur/Web除了能够协调各种网路标准之 外,理论上还会更加安全。它采用了强型别(strongly typed),任何在Ur/Web中所设定的新变数都被局限在单一的型别,同时也限制了变数的范围。例如想在网页上同时提供行事历与广告版位的组件 (widget)时,开发人员并不希望广告会影响行事历的运作,或是行事历干预了广告的递送,Ur/Web会禁止这两个不同网页组件之间擅自相互存取。

不 过IDG News分析认为,对于一般的开发者来说,做为一种“函数式程式设计语言”(functional programming language)的Ur/Web将会有很高的学习门槛,Chlipala教授也同意这样的看法,并拿Ur/Web与受到特定族群喜爱的Haskell做 比较,而Haskell就是以晦涩难懂而知名。

Chlipala准备在明年1月由计算机协会主办的程式语言原则座谈会(Symposium on Principles of Programming Languages)上正式发表及展示Ur/Web的细节。(编译/陈晓莉)

来源:ithome 发布者:iThome