|
|
1
4
免责声明:我没有认真探讨这个领域,但希望这篇小文章可能对你有用-并等待从其他人那里看到更多的答案。 我认为一个问题中有多个问题: 1)方程求解器。 如果你的意思是象征性地“解决未知”——这是一大堆你即将开始的工作,imho:—)你将要开始创建一个 computer algebra system . Term rewriting 本身就是一个相当大的话题。如果您对这一级别的操作特别感兴趣,那么C可能不是最容易使用的——对于该任务,您可能更容易使用Lisp。 值得注意的是,并不是每一组方程都会有一个解,并且“仅仅”弄清楚它是否有一个解,这本身就是一项艰巨的任务。 另一方面,如果你想用数值方法解这些方程,比如 this 可能很有趣。 2)一般功能编程。 哈斯克尔是一门很好的语言(尽管我还是一个非常初学者——我认为它可能是最优雅的语言之一)。OCAML可能是另一条探索之路。当然,还有计划。如果您处理的是Web编程,那么具有直接实际意义的语言可能是XSLT。 当然,您可以很容易地用Ruby和Python编写函数样式。观察学习新语言如何改变“主要”语言中的编程模式是非常有趣的。所以,不管语言理论与否——你接触的语言越多越好。 3)写口译员等。 我怀疑,考虑到这个问题的味道,最有趣的实际应用程序不是解释器,而是编译器中的优化代码。为此 Dragon book 和 MIT computer language engineering course 在我看来,从一开始就有用。然后你可以拿一份 TCC 玩它。如果你想修补一些不那么传统的东西,看看 potion -一个非常有趣的语言实验,将x86机器代码作为其“字节码”(因此,x86机器上的性能相当惊人)。 This question on SO 实际上引用了上面(3)中的大部分链接,还有很多。 |
|
|
2
2
正如安德鲁所建议的,你所描述的核心是“计算机算法系统”,更普遍的是“术语重写系统”。读这两个方面的书应该能让你有方向感。 而且,是的,我希望您会发现函数式编程是一种非常适合的范例。也许逻辑编程也是如此。 我的预感是,你关于口译员的问题是一派胡言,结果是 Greenspun's Tenth Rule ,这就是
在这里,您可以将“common lisp”替换为“函数式编程语言”。 换句话说,如果您选择并使用有意识地设计的函数式编程语言(对于您的计算机代数系统),您就不必无意识地(而且很糟糕地)创建一种语言。 我个人最喜欢的功能语言是haskell。对于新手来说,haskell的优势在于让你承认——通过静态输入——当你仍然需要编程时。 |
|
|
Gengetsu · 如何从Bison中的语法启动变量? 8 年前 |
|
|
Jon Deaton · 如何使用元循环计算器引导Lisp解释器 9 年前 |
|
|
liyuan · 解释器如何翻译for循环? 9 年前 |
|
|
FlorianB · 用于解释HTML/CSS和获取元素样式的命令行工具 10 年前 |
|
|
ææç · 解释器交互模式保持文件打开的目的 12 年前 |
|
|
user3318845 · 字节码如何更快?[已关闭] 12 年前 |
|
|
Trung Bún · OCaml解释器:为什么我的解释器只执行文件中的一行 12 年前 |