我对编程语言感兴趣。哪些编程领域对我有好处?

时间:2010-01-23 13:40:22

标签: parsing programming-languages

我一直对编写和设计编程语言感兴趣。当然,找到一个能让你编写编程语言作为工作一部分的雇主是非常困难的。所以我正在寻找“下一个最好的东西”。

哪些编程领域能让我获得解决一些相关问题的经验?或者哪种雇主最有可能将我所有的小调解员视为相关经验?

9 个答案:

答案 0 :(得分:7)

如果您对语言设计的兴趣无法抑制,请获得博士学位。并使其成为您的研究领域。您可以指望学术界支持各种无利可图的活动。

答案 1 :(得分:4)

无。该领域的大多数专业人员不是为了生活而设计语言,而是将现有编译器重新定位到新的(通常是嵌入式)目标,或者在遗留代码的source2source转换系统上工作,在此过程中进行一些语言扩展。

你应该问自己是否想要这个,因为除了非常幸运的镜头之外,如果你进入这个行业,那将是你将要做的现实展望。

请记住,大型公共工具链行业目前并不是非常有利可图,并且在编程语言创建30年之后,可能有100种语言可供大规模使用并且不断维护。

我知道这是非常沮丧的,但我希望它让你走上浪漫,爱好者观点的道路,并开始研究这个领域的现实世界是什么样的。

此外,自己完成小型爱好项目并不是真正的预备。您需要证明您可以在团队中处理大型项目,而不仅仅是您可以自己创建一个小型解释器。如果你真的想追求这个,我建议:

  • 留在学校,并获得CS的单身汉(最好是硕士或博士)。
  • 加入一些开源团队,负责该领域的重大项目。 gcc,还有Java世界,Tracemonkey(Mozilla),Mono等。在现实世界场景中的可验证体验非常重要。

答案 2 :(得分:3)

我认为进入这类工作的最佳方式是获得一个高级学位,特别注重语言设计,编译器等。你走在街上变成一个私人的道路非常困难。公司并开始编写新的语言功能。

你也可以自己或者与一个小团队一起拍摄更高的东西,制作的东西不仅仅是一个小小的翻译。向潜在的雇主展示你可以创造出有用的东西。

答案 3 :(得分:2)

实际上,可视化编程还有很多工作要做。它并不是我们所知道的传统编程语言,但是需要它。例如,许多高级数据分析工具依赖于可视化编程工具(Pentaho)。您不必太难以找到视觉编程的实际应用。

要进入可视化编程语言,您需要在该区域与顾问一起完成高级学位。除了编程语言之外,您还需要做一些人机交互/界面工作。

答案 4 :(得分:2)

过去十年我一直是一名嵌入式程序员。在此之前,我编写了20年的编译器(以及汇编器,链接器,调试器等)。

我的同事开玩笑说我把每个问题都转化为解析问题。他们是对的。在我的职业生涯中,我曾多次使用适合语言设计的技巧。

今天,我在旁边使用编译器:http://ellcc.org。它帮助我刮擦我的语言痒。

答案 5 :(得分:2)

拥有丰富“域名”(即复杂行业)的雇主可以从“域名特定语言”中受益。

他们会意识到这一点吗?不太可能。他们很可能被困在他们的深层领域(以及根深蒂固的遗留系统),看到有针对性的语言可以帮助疏通泥潭。

但是,如果你将自己埋葬在一个复杂的行业中足够长的时间来获得丰富的领域知识,那么你就可以用自己的臭鼬DSL来转变它们。机会很小。

答案 6 :(得分:1)

留在学术界。如果你想开发一种新语言,你获得报酬的机会很小。较新的语言往往是一个新问题领域的表达,你只是真的遇到了发展它们的机会,其中(a)新问题是风景的一部分,(b)没有人被实际赚取的必要性困扰活的。

请把时间花在它上面。作为一名招聘开发人员,我需要的最后一件事就是学习另一种抨击的语言: - )

答案 7 :(得分:1)

在静态分析中,有很多事要做,而且出现的问题与你感兴趣的问题有关。

答案 8 :(得分:1)

目前流行的大多数语言来自于一个需要抓住特定ITCH的天才。 Python的出现是因为一些非C程序员需要自定义输入他们的C程序和库。 Lua从NEED中脱颖而出,将脚本语言嵌入到C程序中。 Erlang的创建是为了满足99.9999999%的正常运行时间,热代码加载和高度并发执行的需求。 Perl从NEED中走出来,轻松编写解析文本文件的程序。

因此,任何雇主都会问自己一个非常简单的问题,你应该问自己。我不能提供什么样的解决方案。爱好工作很少表明你正在为一个需要提供解决方案,大多数时候它表明你喜欢重新发明轮子以重新发明轮子。