相关疑难解决方法(0)

学习编写一个编译器

首选语言:C/C++,Java和Ruby.

我正在寻找一些有用的书籍/教程,如何编写自己的编译器只是为了教育目的.我最熟悉C/C++,Java和Ruby,所以我更喜欢涉及这三者之一的资源,但任何好的资源都是可以接受的.

language-agnostic compiler-construction

699
推荐指数
29
解决办法
29万
查看次数

我如何设计和实现编程语言?

这个问题与此有关

在过去的几年里,我一直在思考我喜欢的东西,而不喜欢我使用的语言.我一直想写自己的语言,但从未这样做过.

我也拥有乐高RCX和NXT,但大多数时候我从来没有让我的机器人做任何事情,因为他们的视觉编程环境比较严格.

我想我会为NXT设计我的编程语言,因为已经有很多通用语言,NXT给了我一套具体的问题和目标,希望能有一个很好的沙箱.

怎么办?我从哪里开始?我需要知道什么?

如果可能的话,我会用Python或Clojure编写编译器.有一个用于NXTSDK,但也有汇编语言.什么是最好/最简单的路线?

Lego NXT有一个小屏幕,USB和蓝牙,它有4个数字和模拟传感器端口,3个输出端口和2个ARM处理器,一个主处理器和一个协处理器.http://mindstormsnxt.blogspot.com/2006/08/whats-inside-nxt-brick.html

编程NXT将涉及处理数据和事件,所以某种单声道数据流/反应式似乎是合适的.它也应该很好地处理并行任务,所以我认为功能.我目前正在考虑基于堆栈.

在我的脑海中,我已经尝试统一这些概念并考虑示例代码.我正在考虑树而不是堆栈,其中功能分支可以并行运行.一个例子:

# implicit main stack
5 5 +
# 10

# quoted branch or list
[1 -]
# 10 [1 -]

# eval list and recur until false
loop
# [9 8 7 6 5 4 3 2 1 0]

# define stack as a function
[1 = [1 8 motor] [1 0 motor] if] fn
# [9 8 7 6 5 …
Run Code Online (Sandbox Code Playgroud)

python programming-languages clojure forth nxt

12
推荐指数
4
解决办法
2444
查看次数

创建自己的语言

如果我想创建自己的语言有什么工具可以帮助我吗?我听说过yacc,但我想知道如何在语言中实现我想要的功能.

language-design

8
推荐指数
2
解决办法
2973
查看次数

编译器设计

可能重复:
学习编写编译器

如何设计简单的编译器?我想为MCA项目设计编译器.

compiler-construction

5
推荐指数
2
解决办法
1382
查看次数