Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/karminski/pineapple

pineapple lang 是一个简单的编程语言 demo. 它包含了个手写的递归下降解析器和一个简单的解释器. 虽然该语言甚至不是图灵完备的. 但 pineapple 的主要目的是让编译原理初学者有一个预热, 简单了解一个编程语言是怎么构建的.
https://github.com/karminski/pineapple

Last synced: 1 day ago
JSON representation

pineapple lang 是一个简单的编程语言 demo. 它包含了个手写的递归下降解析器和一个简单的解释器. 虽然该语言甚至不是图灵完备的. 但 pineapple 的主要目的是让编译原理初学者有一个预热, 简单了解一个编程语言是怎么构建的.

Awesome Lists containing this project

README

        

PINEAPPLE
---------

([English](./README.md) | [中文](./README-zh-CN.md))

# 说明

pineapple lang 是一个用 Go 语言实现的简单的编程语言 demo. 它包含了个手写的递归下降解析器和一个简单的解释器. 虽然该语言甚至不是图灵完备的. 但 pineapple 的主要目的是让编译原理初学者有一个预热, 简单了解一个编程语言是怎么构建的.

# 运行

```terminal
$cd examples/pineapple/
$go build
$ ./pineapple hello-world.pineapple
pen pineapple apple pen.

```

# 不会Go语言怎么办?

别担心, 我们还有其他版本:

- Python 版本, 由 [KevinXuxuxu](https://github.com/KevinXuxuxu) 贡献: [pineapple-py](https://github.com/KevinXuxuxu/pineapple-py)
- TypeScript 版本, 由 [liulinboyi](https://github.com/liulinboyi) 贡献: [pineapple-ts](https://github.com/liulinboyi/pineapple-ts)
- Dart 版本, 由 [damonchen](https://github.com/damonchen) 贡献 : [dart-pineapple](https://github.com/damonchen/dart-pineapple)
- Java 版本, 由 [LionCoder4ever](https://github.com/LionCoder4ever) 贡献: [pineapple-java](https://github.com/LionCoder4ever/pineapple-java)
- Java 版本2, 由 [xiaofine1122](https://github.com/xiaofine1122) 贡献: [pineapple-java](https://github.com/xiaofine1122/pineapple-java)
- Ruby 版本, 由 [YoogoC](https://github.com/YoogoC) 贡献: [pineapple-ruby](https://github.com/YoogoC/pineapple-ruby)
- C# 版本, 由 [KamioRinn](https://github.com/KamioRinn) 贡献: [pineapple-csharp](https://github.com/KamioRinn/pineapple-csharp)
- Rust 版本, 由 [Max-astro](https://github.com/Max-astro) 贡献: [pineapple-rs](https://github.com/Max-astro/pineapple-rs)
- Scala 版本, 由 [lzy0505](https://github.com/lzy0505) 贡献: [pineapple-scala](https://github.com/lzy0505/pineapple-scala)
- F# 版本, 由 [Nomyfan](https://github.com/Nomyfan) 贡献: [pineapple-fsharp](https://github.com/Nomyfan/pineapple-fsharp)
- PHP 版本, 由 [Y!an](https://github.com/YianAndCode) 贡献: [pineapple-php](https://github.com/YianAndCode/pineapple-php)
- C 版本, 由 [Y!an](https://github.com/YianAndCode) 贡献: [pineapple-c](https://github.com/YianAndCode/pineapple-c)
- Hacklang 版本, 由 [Evi1ran](https://github.com/Evilran) 贡献: [pineapple-hack](https://github.com/Evilran/pineapple-hack)

# 小教程

- [牙医教你 450 行代码自制编程语言 - 1, 从 EBNF 开始](https://zhuanlan.zhihu.com/p/341405385)
- [牙医教你 450 行代码自制编程语言 - 2, 两个魔法就可以实现永动机](https://zhuanlan.zhihu.com/p/341532964)
- [牙医教你 450 行代码自制编程语言 - 3, 实现 Lexer 上篇](https://zhuanlan.zhihu.com/p/341840788)
- [牙医教你 450 行代码自制编程语言 - 4, 实现 Lexer 下篇](https://zhuanlan.zhihu.com/p/342036670)
- [牙医教你 450 行代码自制编程语言 - 5, 递归下降语法解析器](https://zhuanlan.zhihu.com/p/342333858)
- [牙医教你 450 行代码自制编程语言 - 6, 后端](https://zhuanlan.zhihu.com/p/342457860)
- [牙医教你 450 行代码自制编程语言 - 7, 后续该如何学习编译原理](https://zhuanlan.zhihu.com/p/342982862)

# Contributors

- [karminski](https://github.com/karminski)

# License

- [MIT](./LICENSE)