最有趣的非主流的语言?[关闭]
-
03-07-2019 - |
题
我感兴趣的编译、口译员和语言。
什么是最有趣的,但是被遗忘的或未知语言,你知道?更重要的是,为什么?
我很感兴趣,无论在编制、解释和虚拟机语言,但是 不 深奥的的语言,如空白或BF。
开放源将是一个加上的,当然,由于我计划的研究,希望从中学习。
解决方案
我喜欢编译器和虚拟机,我喜欢Lua。
Lua并不像许多其他脚本语言那样得到很好的支持,但是从像你这样的心态来看,我相信你也会爱上Lua。我的意思是它就像lisp,(据我所知,可以做任何事情),有很多来自ADA的主要功能,还有内置的元编程,功能编程和面向对象编程足够松散,可以制作任何类型您可能想要的域语言。除了VM的代码是简单的C,这意味着你可以轻松地挖掘它,即使在那个级别也能欣赏。
(它是开源麻省理工学院许可证)
其他提示
我是D编程语言的粉丝。这是维基百科文章和来自官方网站的介绍。
维基百科文章中的一些片段:
D编程语言,也简称为D,是数字火星的Walter Bright的面向对象,命令式,多范式系统编程语言。它起源于C ++的重新设计,但即使它主要受该语言的影响,它也不是C ++的变体。 D重新设计了一些C ++特性,并受到其他编程语言中使用的概念的影响,例如Java,C#和Eiffel。稳定版本1.0于2007年1月2日发布。实验版本2.0于2007年6月17日发布。
关于功能:
D的设计是从实际的C ++使用中吸取的经验教训,而不是从理论的角度。即使它使用了许多C / C ++概念,它也会丢弃一些,因此并不严格向后兼容C / C ++源代码。它通过合同,单元测试,真实模块,垃圾收集,第一类数组,关联数组,动态数组,数组切片,嵌套函数,内部类,闭包[2],匿名函数,实现设计,增加了C ++的功能。编译时间函数执行,延迟评估并具有重新设计的模板语法。 D保留了C ++进行低级编码的能力,并增加了对集成内联汇编程序的支持。 C ++多重继承被具有接口和mixin的Java样式单继承所取代。 D的声明,语句和表达式语法与C ++的语法非常匹配。
我想很大程度上取决于你对'非主流'的意思。
lisp 会被视为非主流吗?
我建议看一下Erlang - 最近有点新闻,所以一些学习资源非常好。如果您使用过OO和/或程序语言,Erlang肯定会以新的和激动人心的方式让您大吃一惊。
Erlang是一种纯函数式语言,具有对并发,分布式和容错程序的全面支持。它有许多有趣的功能,包括变量根本不是真正的变量 - 它们一旦声明就不能改变,事实上它们更好地被理解为一种模式。
关于在Erlang平台(OTP)之上构建以及对其他语言(如Ruby)的机器支持,围绕博客圈进行了一些讨论 - Erlang将成为运行并发应用程序的一种虚拟机,这将是非常令人兴奋的可能性。
我最近爱上了 Ocaml 和一般的函数式语言。
例如,Ocaml提供了所有可能世界中最好的东西。您可以像C一样快速地编译可执行本机机器语言的代码,或者通用的可移植字节代码。你得到一个解释器,将REPL-speed带入开发阶段。您将获得函数式编程的所有功能,以生成完美的正交结构,深度递归和真正的多态性。所有这些都支持面向对象,它在已经提供OOP承诺(封装,模块化,正交函数和多态可回收性)的功能语言的上下文中,意味着被迫实际证明自己的OOP。Smalltalk (请参阅此处链接的讨论)。动态语言的祖父(可能除了Lisp和SNOBOL之外)的排序。很高兴与Java一起工作,可悲地被践踏,现在是Python和Ruby等新语言。
FORTH是一种专为早期CPU的低级代码而设计的语言。其最显着的特征是基于RPN堆栈的数学运算。早期HP计算器使用的数学类型相同。例如1 + 2 + 3 + 4 =将被写为1,2,3,4,+,+,+
Haskell和REBOL都是引人入胜的语言,原因各不相同。
Haskell可以真正睁开你的眼睛作为开发人员,有monad,部分应用,模式匹配,代数类型等概念。这对于好奇的程序员来说是一个大杂烩。
REBOL也不吝啬。一开始看起来很简单,但是当你开始深入研究上下文,PARSE方言和Bindology等概念时,你会发现它远不止眼睛。 REBOL的好处在于它比使用Haskell更容易上手。
我无法决定哪个更好。
Boo 以.NET框架为目标,是开源的。灵感来自Python。
尝试 colorForth 。
PROLOG是一种基于规则的语言,具有回溯功能。您可以生成非常易读的(如prosa)代码。
我不得不说Scheme,特别是它的 R6RS 化身。
Modula-2是我发现最有趣的非主流语言。看起来很主流,但并不像我们习惯的那样工作。从Pascal继承了很多东西,但又足以提供有趣的学习机会。
在 http://www.iolanguage.com/ 上查看Io 或Lisaac at: https://gna.org/projects/isaac/ 或者自我: http://self.sourceforge.net/ 或者萨瑟(现在绝对被遗忘) 或埃菲尔 http://www.eiffel.com
为什么这里有几个原因。 Io绝对是极简主义的,甚至没有“控制流动元素”。作为合成实体。 Lisaad是埃菲尔的后续行动,有许多简化AFAIKT。 Self是Smalltalk的后续版本,Io也从Self中获得了很多。最根本的是,Class和Object之间的区别已经放弃了。 Sather是埃菲尔的另一个规则和对函数式编程的更好支持(从一开始)。
埃菲尔绝对是静态类型OO语言的标志。 Eiffel是第一个通过契约,泛型(aka模板)支持Design的语言,也是处理继承的最佳方法之一。它曾经是并且是更简单的语言之一。我个人为埃菲尔找到了最好的图书馆.....
它的创造者只有一个问题,他不接受对OO领域的其他贡献.....
此致
学习的任何语言要求你重新考虑你的编程的习惯是必须的。一个肯定的标志是节奏,你的脱脂通过的文件的语言的核心(不是图书馆)。快速的含义毫无结果的这里。
我的简短的清单将是,在我的订单的曝光并且什么是概念我从他们:
- 大会、C:伟大的学习指针和他们的算术运算。
- C++:C相同的介绍到仿制药,只要你能忍受的令人难以置信的详细语法。
- Ruby/Lua:脚本语言、动态类型、写作绑定现有的C库。
- 蟒蛇/C#/Java:跳过,这些语言来看看我的老调重弹的观念发起的其他地方有一个巨大的标准图书馆。确保整个软件包是好的,但你不会了解新的概念在这里。
- OCaml:类型infererence做正确的,部分应用程序,编译器infered泛型,不可变性作为默认,如何处理空优雅。
- Haskell:懒惰的默认情况下,单元
我欧元。02.
我无法相信Logo是如此被遗忘。好的,这是Logo。有点像lisp,但语法略显丑陋。虽然使用Logo中的列表,但人们会遇到令人愉快的“butfirst”和“butlast”操作。 = P
ML。学习它并使用它会迫使你以不同的方式思考编程问题。在大多数情况下,它也会给予一点耐心。最
去怎么样?它是全新的,所以它是未知的而不是主流(还)。
这很有意思,因为语法看起来就像将C和pascal放入jar并让它们打架后会发生什么。
一旦它被称为 MUMPS ,但现在称为InterSystems Caché http://www.intersystems.com/cache/
第一个答案 - 计划。它没有被广泛使用,但绝对看起来像是一种可靠的语言,特别是考虑到DrScheme的健壮性(实际上将Scheme程序编译为本机二进制代码)。
之后 - Haskell非常有趣。它是一种使懒惰评估正确的语言,其后果令人难以置信(包括像fibonnaci序列的单行定义)。
更加主流,Python在商业界仍然没有被广泛接受,但它现在肯定应该是......
Ken Kahn的ToonTalk,一种具有核心理论基础的卡通语言: http://www.toontalk.com/
Prograph: http://en.wikipedia.org/wiki/Prograph .. Prograph作为Marten出现在: http://andescotia.com/products/marten/
Self的IDE是美丽的东西,谈论Flow(在Csí kszentmihá lyi sense)......
总的来说,我不得不说Haskell是最有趣的,因为它代表的计算潜在的优势。
港湾。非常适合商业应用。
REIA!
这是Erlang有道理,它是美丽的,我爱上了。它是如此未知,它甚至没有维基百科页面!
我学到的第一个主要(非BASIC)语言是Dream Maker,来自 http://www.byond。 COM 。 它有点类似于C ++或Java,但它主要用于设计多人在线游戏。它非常基于继承。 这是一种有趣的语言,特别是作为一种起始语言,它可以更快地获得令人满意的结果,并且说实话,大多数第一次学习编程的人都对一件事感兴趣......游戏。
Rebol当然! 它非常简单,但在 http://reboltutorial.com
我最近查了很多关于Windows的信息 PowerShell 一>
虽然不一定只是一种语言。它是一个很棒的shell,有一个内置的脚本语言。它基本上是一个超级强化的命令行shell。
与Unix shell不同,其中一切都是字符串文本(这肯定有它的好处),PowerShell命令(cmdlet)使用对象。它基于.Net框架,因此熟悉它们的人可能已经知道PowerShell返回的任何内容都可以通过管道传输,并且可以使用该对象的属性和方法。说“一切都是对象!”这很有趣。再次就像OOP变大一样。
非常整洁的东西。 Windows第一次实现了一些类似于grep和整个系列的Unix命令行界面工具。
如果您对虚拟机感兴趣,请查看 Parrot ...有一堆语言支持,这是非常整洁....
如果你想学习如何实现编译器,那么O'caml是一门很好的语言......