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

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

  美国麻省理工学院(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 的细节。

时间: 2024-10-17 06:53:02

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

网页开发笔记【一】创建一个半透明的页面

近来正在温习网页制作,系列<网页开发笔记>记录本人在解决网页开发过程中遇到的问题以及解决方案. 半透明的页面在网页开发中使用的比较广泛,尤其在web app中,这种设计使用的地方更为广泛,本文记录这种半透明的页面的开发方法. 半透明页面常用于用户注册,这时候弹出一个页面能在不离开当前页面的情况下完成注册. 如百度的登陆界面所示. 我的处理方法如下: 首先在页面写一个div,这个div平时display设置为none,当需要的时候设置为display:block; 这个div(设其id为popu

微信开放JS-SDK,助力网页开发

From:http://mp.weixin.qq.com/s?__biz=MjM5NDAwMTA2MA==&mid=209208141&idx=1&sn=1f075212b3482900bb7096ac810dc7f3&key=2f5eb01238e84f7ef75f5c4d8084b275b234159411cccabd57be15d9d54c568c053c1882864db9945028cc57c21b262c&ascene=0&uin=MzUzMDg

《HTML 5网页开发实例详解》目录

第一篇  从宏观上认识HTML 5 讲述了HTML 5引发的Web革命.HTML 5的整体特性.HTML 5相关概念和框架和开发环境搭建. 第1章 HTML 5引发的Web革命 1.1  你是不是真的了解HTML 5 1.1.1  通过W3C认识HTML 5的发展史 1.1.2  HTML 5.HTML4.XHTML的区别 1.1.3  什么人应该学HTML 5 1.1.4  一个图告诉你如何学习HTML 5 1.2  浏览器之争 1.2.1  说说这些常见的浏览器 1.2.2  浏览器的兼容烦

微信公众平台开放JS-SDK(微信内网页开发工具包)

微信公众平台开放JS-SDK(微信内网页开发工具包),这次开放接口是质的飞跃,是对开发者和广大用户一个利好的消息.未来的公众号图文消息会更丰富多彩,准备脑洞大开吧! 微信公众平台今日面向开发者开放微信内网页开发工具包(微信JS-SDK). 通过微信JS-SDK提供的11类接口集,开发者不仅能够在网页上使用微信本身的拍照.选图.语音.位置等基本能力,还可以直接使用微信分享.扫一扫.卡券.支付等微信特有的能力,为微信用户提供更优质的网页体验. 微信JS-SDK主要包含以下能力: 1.分享类接口 支持

网页开发的阶段总结(四)--JS与PHP之间大数据的传送

在前面 的网页开发的阶段总结(三)中,我们知道JS与PHP之间直接互相调用,往往有很多不便,而且一次只能传送一个数据结果进行返回.而通过ajax方法可以实现JS一次性读取php的所传送过来的大量数据.通过提交表单的方式,让php可以一次性读取JS的大量数据. 1.借用AJAX方法,通过php读取数据库将大量数据显示在网页客户端上. a.页面一加载完,执行函数Gett(),代码如下: <html> <head> <meta http-equiv="Content-Ty

网页开发是不是必须要用网页框架

网页开发是不是必须要用网页框架?个人感觉这分为两种情况,一种是能力超强,时间够用的情况,另外一种就是用前端网页框架,可以节约开发时间和减少工作量,这可以根据自身的情况作出正确的判断,并不是别人说什么就是什么. 小项目到底用不用前端网页框架? 小项目本身就是做的事情比较多,但是成本还小,如果让开发人员不停写代码可能会花很多的时间去做,这需要考虑到这个小项目开发时间和成本的.如果用前端网页框架相信大家都知道,可能会考虑到浏览器兼容性,还有功能不够自己用,我想这都不用担心,从QUICKUI开发以来,体

00微信公众平台 - 以上五大功能整合,完整的代码。

一.代码实现如下(主程序代码,其他include代码见各个功能函数中) <?php /** * wechat php test * version 1 */ define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->responseMsg(); //$wechatObj->valid(); class wechatCallbackapiTest

20款网页开发工具推荐

越来越多的移动端和桌面端应用开始使用HTML.CSS和JS来开发了,而网页设计更是离不开这些语言.正是这种局面使得许多新的网页技术成为了可能,也催生了许多诸如React.js.Angular和Node.js这样的库.随着需求和项目的细化,开发者社区几乎每天都会有有开发者放出新的库和开发工具. 进入新年,我们推荐过设计素材,聊过设计趋势,推荐了许多酷站,这次的文章将会推荐20款最新的实用开发工具,为各位前端和后端开发者来点干货.这20个网站中,包含了开发框架.插件.生产力工具.应用程序,还有不少开

前端网页开发经常用到的框架解析

前端网页开发经常用到的框架解析?个人感觉这分为两种情况,一种是能力超强,时间够用的情况,另外一种就是用前端网页框架,可以节约开发时间和减少工作量,这可以根据自身的情况作出正确的判断,并不是别人说什么就是什么. 小项目到底用不用前端网页框架? 小项目本身就是做的事情比较多,但是成本还小,如果让开发人员不停写代码可能会花很多的时间去做,这需要考虑到这个小项目开发时间和成本的.如果用前端网页框架相信大家都知道,可能会考虑到浏览器兼容性,还有功能不够自己用,我想这都不用担心,从QUICKUI开发以来,体