原标题:【java编程】三种非主流的编程范式?
【Java培训】:的小编在一些平台上看到的高端的编程技巧,今天给大家介绍相应的三种编程范式,在编程中就提到了提到了不少小众语言,在这里小编希望借此让大家更多的了解一些非主流的编程范式,进而改变对编程的看法。接下来几一起和中软卓越的小编一起来看看下面的这些编程资讯和技巧吧!
中软卓越IT培训的小编时不时地会看到一些资讯,会发现一些编程语言所做的一些与众不同的事情,也因此改变了我对编码的看法。在本文,我将把这些发现分享给大家。
这不是“函数式编程将改变世界”的那种陈词滥调的博客文章,这篇文章列举的内容更加深奥。我敢打赌大部分读者都没有听说过下面这些语言和范式,所以我希望大家能像我当初一样,带着兴趣去学习这些新概念,并从中找到乐趣。
【Java培训】:对于下面讲到的大多数语言,我拥有的经验其实很少:我只是觉得他们背后的思想很赞,但对于它们没有任何相关的专业知识,所以有任何更正和错误请指出。此外,如果你发现任何没有包括在这里的新的范式和想法,请分享它们!
下面的这三点就是今天小编给大家介绍的这方面知识和资讯;
一、默认支持并发(Concurrent by default)
示例语言:ANI, Plaid
【Java培训】:让我们先从改变思维开始:有一些编程语言是默认支持并发的。也就是说,每一行代码都是并行执行的!
在大多数编程语言中,A将首先执行,接着B执行,最后C执行。在像ANI这样的编程语言中,A, B和 C将同时执行。
在ANI中代码行之间的控制流或者顺序只是代码行之间显式依赖的副作用。例如,如果B对A中定义的变量有引用,那么A和C将同时执行,而B将在A完成后执行。
来看一个ANI的例子。正如教程中所描述的,ANI 程序由用于操作流和数据流的“管道”和“锁存器”组成。这种非同一般的语法很难解析,ANI这门语言似乎已经死了,但概念还是相当有趣的。
下面是ANI中的“Hello World”示例:
"Hello, World!" ->std.out
在ANI语法中,我们将“Hello World!”对象(一个字符串)发送到std.out流。如果我们发送另外一个字符串到std.out会怎样?
"Hello, World!" ->std.out
"Goodbye, World!" ->std.out
这两行代码并发执行,所以它们可能以任意顺序在控制台输出。现在,看看当我们在一行中引入一个变量并在之后引用会发生什么:
s = [string\];
"Hello, World!" ->s;
\s ->std.out;
【Java培训】:第一行声明一个叫做s的“锁存器”(锁存器有点像变量),其中包含一个字符串;第二行发送文本“Hello World!”发送到s;第三行“解锁”s并将内容发送到std.out。因此,你可以看到ANI的隐式程序排序:因为每一行运行都依赖于上一行,因此,这段代码将按照它编写的顺序执行。
【Java培训】:Plaid语言也声称默认情况下支持并发,但使用的是本篇论文中所描述的一种权限模型来构建控制流。 Plaid还探讨了其它有趣的概念,如面向类型状态的编程,在那里状态转换成为了语言中的重要因素:你定义的对象不再是类,而是一系列可以由编译器检查的状态和转换。看起来十分有趣,正如Rich Hickey在演讲“Are we there yet”中所讨论的,将时间作为语言结构的首要因素。
【java培训】:Multicore正处在上升期,并发性仍然比大多数语言更难。ANI 和 Plaid 对于这个可能产生惊人的性能提升的问题提供了一个新的思路;不过问题是“默认支持并行”是否让并发更容易或难以管理。
文章来源:http://javaee.whzrgj.com/news/3996.html
中软卓越官网:www.whzrgj.com
刘老师:15623074480
QQ交流群:114982018
微信公众号:chinasoft-wh/中软卓越中西区
地址:
武汉市洪山区关山大道光谷软件园F3栋4楼
郑州市金水区花园路与农业路交叉口兰德中心8楼
西安市高新区科技二路西安软件园零壹广场六楼返回搜狐,查看更多
责任编辑: