====== Programming languages ====== * [[http://www.cis.upenn.edu/~bcpierce/courses/670Fall04/GreatWorksInPL.shtml|Great Works in Programming Languages]] ===== Others ===== * 图灵完备(Turing complete) [[wp>Turing completeness]] * Brainfuck:[[wp>Brainfuck]] * http://fatiherikli.github.io/brainfuck-visualizer/ * Wolfram Language[[http://www.wolfram.com/language/fast-introduction-for-programmers/zh/]] * [[https://cs.lmu.edu/~ray/notes/syntaxdesign/|Syntax Design]] ===== 学习笔记 ===== * [[SICP]] ===== 学习一门新编程语言的一般步骤 ===== * 了解该语言的出生背景与适用环境 * 了解输入输入出流,文件流操作 * 了解程序代码和可执行代码的组织机制,运行时模块加载、符号查找机制 * 了解该语言的基本数据类型,基本语法和主要语言构造,主要数学运算符和输入输出函数的使用 * 了解数组和其他集合类的使用 * 了解字符串的处理 * 了解该语言在面向对象,函数式编程,泛型,元编程等编程范式的特性 * 了解特有的语法糖 * 了解该语言错误处理,调试方式以及对测试的支持 * 了解该语言的内存分配机制或GC,线程,进程等运行时效率相关 * 了解该语言的编译/解释机制