有没有基于操作变量和函数的编程范例?

ben*_*dbc 13 paradigms programming-languages

实际上,我所知道的每种语言基本上都是主题的变体:你创建变量和函数,然后使用条件和其他结构来操作它们.我理解功能编程等与"传统"语言有些不同,但在它们下面几乎是相同的.您仍在使用变量(有些,即使它们是不可变的等等),也可以创建函数.

是否有任何语言或系统完全取消我们现在使用的内容并采用完全不同的方法?

JUS*_*ION 15

尽管你对功能编程进行了高压解雇,但我认为你需要再次查看它才能阅读理解和学习,而不是使用确认偏见来将其视为"更多相同".以函数式编写代码与以命令式样式编写代码完全不同.但是,如果它对你来说不够,为什么不看看其中的任何一个?:

基本上,只需查看可用的数十种编程范例中的任何一种,并阅读理解和启发的描述,而不是通过确认偏差解雇.学习一种语言,对于你所使用的"不同"的模糊定义而言,它们看起来有很大的不同,并且很有趣.


RBe*_*eig 8

在图形语言上已经进行了多次尝试.在LabVIEW的美国国家仪器系统可能是最成功的.它使用数据流图表和作用于数据的组件.

另一种图形语言的尝试是UML.我猜这个陪审团已经出局了.在标准委员会参与并将其转化为适合每个人的事情之前,这可能是一个好主意.

大量的机电系统由PLC控制,PLC采用梯形逻辑编程.它本质上是一个用于创建高度可靠的有限状态机的学科,但与过程语言几乎没有相似之处.

然后有一些深奥的,模糊的和替代性的语言,除了提醒人们图灵完全不要求语言是明智的以外,在很大程度上没有任何实际目的.有些人可能会把图灵机本身放在这个类别中,但是BrainF*ckPiet在这个人群中真正脱颖而出.

无论何时,这种深奥的语言也是一项有趣的练习,因为它根本没有流量控制.

编辑:我差点忘了Befunge.其源文本是ASCII字符网格,其中每个单元格都是操作码.执行在四个方向中的任何一个方向上运行,因此可以以四个不同的顺序流过单个操作码.它是另一种深奥的语言,旨在尽可能地(在1993年)编写编译器.并不是说这实际上阻止了某人做这件事.

我指出的几种语言都是深奥的语言.这些通常是具有小型(通常只有一个或两个)用户社区的语言.它们是出于各种原因而创建的,并且探索图灵完成的含义以及如何代表一个程序的界限是引用的更严重的原因.

所有深奥语言的祖父都是INTERCAL,它创建于1972年.它是一种表面上类似于COBOL的语言,但在其众多怪癖中要求程序充分礼貌(但不要过于礼貌)才能继续执行.支持礼貌,PLEASE DO是一种礼貌的形式DO.一个值得注意的扩展是COME FROM语句,它可以使控制从命名位置流向此处.

  • +1提及Piet (2认同)

Mar*_*age 8

本身不是语言,但模拟计算机在某些方面与更受欢迎的数字计算机有很大不同.


Mat*_*rog 6

嗯,有Piet.那是非常不同的.(下面是Piet中的Hello World.)尽管如此,你可能会争辩说你正在处理一个包含一定数量整数的数据结构(在这种情况下是一个堆栈)然后你要从堆栈中添加和删除东西,操纵价值等,所以真的它仍然是一样的.

替代文字