一个使用 Ruby 实现的 Markdown 编译器
解释器根据程序中的算法执行运算。简单来讲,它是一种用于执行程序的软件。如果执行的程序由虚拟机器语言或类似于机器语言的程序设计语言写成,这种软件也能称为虚拟机。
编译器能将某种语言写成的程序转换为另一种语言的程序。通常它会将原程序转换为机器语言。编译器转换程序的行为称为编译,转换前的程序称为源代码或源程序。如果编译器没有把源代码直接转换为机器语言,一般称为源代码转换器或源码转换器(source code translator)。
过去人们提到编译器时,首先会联想到费时的编译过程。不过由于编译后实际执行的是机器语言,因此执行速度很快。而对于解释器,人们通常认为它会在程序输入的同时立即执行,执行速度较慢。这就是两者的基本区别。现代的解释器内部常采用各种类型的编译器,已经越来越没有必要将解释器和编译器区分看待。
ruby lexer.rb
lexer = Lexer.new("README.md")
parser = lexer.parser
parser.show
puts parser.to_html
这是一段引用。
- 测试
- 有序列表
- 列表支持多层
- 表格
- 语法高亮
- 图片
- 链接
- 加粗
- 倾斜
- 删除线