编程语言
机器语言
机器语言是一种指令集的体系,这种指令集称为机器码,是电脑的CPU或GPU可直接解读的数据。它是计算机硬件能够直接识别的指令的集合,是最早出现的计算机语言。不同种类的计算机其机器语言是不相容的,按某种计算机的机器指令编制的程序不能在另一种计算机上执行
汇编语言
汇编语言是一种低级语言,直接描述/控制CPU的运行。它是一种用助记符代替机器指令的操作码的语言。汇编语言本身很简单,常用指令没几个,语法规则也不多,但其背后是体系结构,是程序设计抛开各种高层形态的最根本,最本质的解释
中级语言
中级语言是一种计算机语言,其中使用诸如字母,数字和特殊字符之类的符号来创建指令。例如,C++被认为是一种中级语言,它综合了高级语言和低级语言的特点
高级语言
高级语言(High-level programming language)是一种独立于机器,面向过程或对象的语言。高级语言是参照数学语言而设计的近似于日常会话的语言。例如,要将2个变量相加并赋值给第三个变量,用高级语言表达为var3=var1+var2。高级语言相对低级语言有较高的可读性,更易理解。一些常见的高级语言包括Java、C、C++、Python、Pascal、Lisp、Prolog等
编程范式
是什么
编程范式(Programming paradigm)是计算机编程中所使用的方法,是设计程序结构所采用的设计风格。
过程式编程
过程式编程(Procedural programming),又称过程化编程,是一种编程范式,衍生自指令式编程,有时会被视为是同义语。主要采取过程调用或函数调用的方式来进行流程控制
面向对象编程
面向对象编程(Object-oriented Programming,缩写:OOP)是一种编程范式,它使用“对象”来设计应用程序和计算机程序。它利用了几个技术,包括封装、继承和多态来让对象更好地模拟现实世界
函数式编程
函数式编程(Functional programming)是一种编程范式,它将电脑运算视为函数运算,并且避免使用程序状态以及易变对象。其中,λ演算为该语言最重要的基础。而且,λ演算的函数可以接受函数当作输入和输出
响应式编程
响应式编程(Reactive Programming)是一种编程范式,它使用异步数据流进行编程。响应式编程的思路大概如下:可以用包括 Click 和 Hover 事件在内的任何东西创建 Data stream。Stream 廉价且常见,任何东西都可以是一个 Stream:变量、用户输入、属性、Cache、数据结构等等。在这个基础上,还有令人惊艳的函数去组合、创建、过滤这些 Streams,这就是函数式魔法的用武之地
领域特定语言
创造DSL
lexer
Lexer,也称为词法分析器、标记器或扫描器,是计算机科学中的一个术语。它指的是将一串字符(如计算机程序或网页)转换为一串词法标记(具有分配和确定意义的字符串)的过程。Lexer 的作用是识别字符构成的单个标记,例如数字、关键字或运算符
parser
parser_LL:从左到右检查,从左到右构建语法树 parser_LR:从左到右检查,从右到左构建语法树