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 的细节。
MIT教授将网页开发整合为完整独立的程式语言Ur/Web的更多相关文章
- 微信公众平台开放JS-SDK(微信内网页开发工具包)
微信公众平台开放JS-SDK(微信内网页开发工具包),这次开放接口是质的飞跃,是对开发者和广大用户一个利好的消息.未来的公众号图文消息会更丰富多彩,准备脑洞大开吧!(第三方平台正式支持接入微信公众平台 ...
- 免费的HTML5连载来了《HTML5网页开发实例详解》连载(五)图解通过Fiddler加速开发
Fiddler是Windows底下最强大的请求代理调试工具,监控任何浏览器的HTTP/HTTPS流量,窜改客户端请求和服务器响应,解密HTTPS Web会话,图4.44为Fiddler原理示意图. 图 ...
- 8款替代Dreamweaver的开源网页开发工具
Adobe Dreamweaver虽然非常好用,但它并不是唯一一个能够设计.开发.发布精彩网站的Web开发集成环境.我们的开源世界里有很多非常棒的可以完全替代Dreamweaver的各种功能的优秀We ...
- 微信开放JS-SDK,助力网页开发
From:http://mp.weixin.qq.com/s?__biz=MjM5NDAwMTA2MA==&mid=209208141&idx=1&sn=1f075212b34 ...
- springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置
前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...
- SpringBoot整合Mybatis完整详细版
记得刚接触SpringBoot时,大吃一惊,世界上居然还有这么省事的框架,立马感叹:SpringBoot是世界上最好的框架.哈哈! 当初跟着教程练习搭建了一个框架,传送门:spring boot + ...
- iOS WKWebview 网页开发适配指南
iOS WKWebview 网页开发适配指南 微信iOS客户端将于2017年3月1日前逐步升级为WKWebview内核,需要网页开发者提前做好网站的兼容检查和适配.如有问题,可参考文末联系方式,向我们 ...
- android开发新浪微博客户端 完整攻略 [新手必读]
开始接触学习android已经有3个礼拜了,一直都是对着android的sdk文档写Tutorials从Hello World到Notepad Tutorial算是初步入门了吧,刚好最近对微博感兴趣就 ...
- IOS-网络(网页开发-UIWebView,HTML,CSS,JavaScript,OC和JS代码互调)
一.网页基础 // // ViewController.m // IOS_0218_网页开发1 // // Created by ma c on 16/2/18. // Copyright © 201 ...
随机推荐
- HDU3336-Count the string(KMP)
Count the string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- DirectShow VS2013 控制台下捕捉摄像头而且显示
须要lib库文件 strmiids.lib,下载地址:http://download.csdn.net/detail/dopamy_busymonkey/8872687 放在解决方式中项目的根文件夹中 ...
- RPM制作
http://blog.csdn.net/justlinux2010/article/details/9905425
- StopWatch的用法
在学习spring的时候,看到关于统计时间的类,比较好奇,就记录下来,以便以后用到可以直接使用 org.springframework.util.StopWatch StopWatch该类在统计时间的 ...
- phpnow安装教程
点评:搭建 PHP 其实不很难,只是有点繁琐.要是自己搭建一次 PHP + MySQL 环境很是费时.更糟的是,很多新手在配置 PHP 时常常出现这样那样的问题.诸如 mysql 扩展.zend 安装 ...
- CSS块级元素、内联元素概念
CSS文档流与块级元素(block).内联元素(inline),之前翻阅不少书籍,看过不少文章, 看到所多的是零碎的CSS布局基本知识,比较表面.看过O'Reilly的<CSS权威指南>, ...
- media query
accepted Another useful media feature is device-aspect-ratio. Note that the iPhone 5 does not have a ...
- tj
--统计set @collSql='select sum(case Ca_IssueType when 0 then 1 else 0 end) as IssueCount,sum(case when ...
- Java_Activiti5_菜鸟也来学Activiti5工作流_之JUnit单元测试(四)
/**ActivitiSpringJuinitTest.java * author : 冯孟活 ^_^ * dates : 2015年9月2日 下午2:16:54 * class : activiti ...
- IOS学习--UIButton常用方法(20150122)
// 1.创建一个自定义的按钮 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; // 2.添加按钮 [self.view a ...