Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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 的主要目的是让编译原理初学者有一个预热, 简单了解一个编程语言是怎么构建的.
- Host: GitHub
- URL: https://github.com/karminski/pineapple
- Owner: karminski
- Created: 2021-01-02T10:10:24.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-11-21T10:25:09.000Z (almost 2 years ago)
- Last Synced: 2024-08-02T07:02:06.957Z (3 months ago)
- Language: Go
- Size: 36.1 KB
- Stars: 253
- Watchers: 5
- Forks: 20
- Open Issues: 0
-
Metadata Files:
- Readme: README-zh-CN.md
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)