Skip to content

solvery/lang-features

Repository files navigation

lang-features

如何学习40+种编程语言

推荐一个github项目,里面汇集了40+种常见的编程语言语法特性,都是小案例,都可以运行,从编译器和程序设计原理角度,为各种编程语言做出ta们自己的介绍。这个项目,可以作为学习一门新的编程语言入门,可以作为语言特性的查阅资料,可以作为编程语言论战发言的有力证据,也可以笑而不语,呵呵。

好多。编程语言排行榜上的语言全都有,编译原理,程序设计语言书中提到的语言也一定有。按照字母排序他们是这些编程语言:ada, algol, bash, c, clojure, cobol, common_lisp, cpp, csharp, emacs_lisp, erlang, fortran, fsharp, go, groovy, haskell, io, java, javascript, jython, lua, matlab, objective-c, ocaml, pascal, perl, php, prolog, python, r, racket, ruby, rust, scala, scheme, simula, smalltalk, sql, swift, tcl。

清晰。编程语言按照目录分开,同一个技术主题都有相同的名字前缀,同一个语言的技术主题因为在同一目录下于是按照数字区分,不同语言的同一技术比较可以grep 技术主题+目录。

简洁。一个例子,一个文件,一个主题。用最简单的语句来说明主题的含义,主题之间不互相混入。

细致。每种语言,不论简单,不论复杂,一律从hello world开始,包含基本语句,选择,循环,函数,常用数据结构的使用:array, string, dict, map。

全面。例子中,有不同语言共有的特性,也有一些本身设计上独有的特性,特别是一些相同编程特性却起了一个不同的名称,闯荡编程界江湖的你必须知道,对这些特性做出分辨和比较很有必要。比如:继承,多态,引用计数,高阶函数,求值策略,管道,参量,语法糖,尾部递归,虚拟机语言,永久存储,异常,作用域,命名空间,反射,自省,柯里化,并发,运行加载机制,绑定,回调,代理,信号,消息,线程,并发,异步,类型推到,强类型,弱类型,传名参数,抽象类,断言,特质,引用透明性,仿函数,垃圾回收,类型转换。

英文版。lambda, interface, closure, multi-paradigm, procedural programming, functional programming, object-oriented, top, imperative, generic, reflective, event-driven, meta-programming, anonymous function, multiple interface, virtual function, polymorphism, copy on write, reference count, higher order function, lazy evaluation, evaluation strategy, pipeline, static, dynamic, parametric type, cohesion, coupling, syntactic sugar, tail recursion, JVM, serialization, execution handling, scope, namespace, reflection, type introspection, cursing, concurrency, function bind, callback, delegate, signal, messaging, thread, concurrency, async, first class, function parameter, abstract class, trait, referential transparency, functor, garbage collection.

好用。全部例子都可以运行,各个语言都有辅助的脚本,不用考虑编译器和参数,都是一种执行方式,运行结果通过终端打印显示,不涉及图形界面。

省事。采用VirtualBox虚拟机+Ubuntu 10.04.4 LTS,不同语言有不同的编译器,apt-get都能够下载到,每种语言需要get的东西在相应的文件夹下的readme有记录。

例外。Mac上的Xcode是一个强大的开发环境,swift和Objective-C的例子采用Xcode完成,使用一个工程就可以包括全部的例子。

About

会40多种编程语言够用吗?

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published