【IT168 技术】编程语言如雨后春笋般出现,让程序员们叫苦不迭。最近微软的研究人员和工程师、以及加州大学伯克利分校和伦敦帝国理工学院的学术研究人员共同开发了P,一种用于在异步事件驱动应用程序中建模和指定协议的编程语言。这种新的功能编程语言已经获得了MIT许可,Tisp又称“时间就是空间”。
据文档显示,Tisp是一种具有隐式并行性和并发性的功能编程语言,它的目的是简单,规范和实用。
Tisp评估程序的每个输出(如打印字符串并向客户端发送HTTP响应)并行并发,默认情况下保持同步可选。Tisp保持程序的另一部分纯粹(即没有任何输出)。因此,Tisp中的每个程序都可以并行运行!
由于现有的编程语言默认情况下是同步的,因此近年来出现了许多用于并行,并发和异步编程的框架,语言和库功能。 这也是Tisp发挥作用的地方:“它采取不同的方式来处理这个问题。 它允许用户编写本质上是异步,并发和并行的程序。“
Tisp假定时间是空间,如果时间没有变化,那么就意味着一切都是不变的。它让我们将程序写成将输入映射到输出的函数。
Tisp如何工作:
首先,程序会接受一个数据输入Input【t】,然后在时间t内输出Output【t】,每个Output【t】都是由Input【t】计算得出的。
程序可以表示将输入映射到输出的功能。
这里的t一般来说都是无限的,我们可以提取程序的并行性,因为程序作为一个函数只代表数据依赖。
Tisp可以同时并行评估输出,程序员可以使用seq原语函数来指定其因果关系。
纯功能编程:检测函数中的不正常函数调用,并在运行时触发错误。
隐含并行和并发:大多数时候,你不需要明确地并行化你的代码,而这些操作将由Tisp帮您解决;使用Tisp编写的程序可以同时且并行运行。
可选注入并行性和因果关系:您还可以增加代码的并行性,或者使用par或seq原语顺序运行函数。
异步IO:每个IO都可以由par原语异步运行。
动态类型
Tisp: 集众家之所长
Tisp适应Lisp规则,它借鉴了其他五种编程语言的概念功能:
Haskell:“时间就是空间”的概念;评估和数据结构
Clojure:一切都是价值; 没有对象系统;语法和宏系统
OCaml:语法接近纯lambda演算和相互递归
Python:Python之禅;使用位置和关键字参数的函数调用语法
Go:简单;Tisp利用了Go的协同运行时间。