有没有人碰巧知道您选择的编程语言中方法名称的最大长度是多少?我打算将这个问题作为一个特定的C#问题,但我认为在整个范围内了解它会很好.
涉及的因素有哪些:
compiler-construction programming-languages specifications name-length
我一直想问的问题,实际上是害怕 - .NET Framework是用什么语言编写的?我指的是图书馆本身.
在我看来,它主要是C和C++.(我希望Jon Skeet正在阅读这篇文章,听到他对此的看法会非常有趣)
在创建必须具有高可靠性的系统服务时,我经常最终编写许多"故障保护"机制,以防万一:通信已经消失(例如与数据库通信),如果电源是什么会发生什么?丢失,服务重新启动....如何拿起碎片并以正确的方式继续(并记住,当拾取碎片时,电源可能会再次出现......)等等
我可以想象,对于不太复杂的系统,一种能满足这一要求的语言非常实用.所以这种语言在任何特定时刻都会记住它的状态,无论电源是否被切断,还是在它停止的地方继续.
这还存在吗?如果是这样,我在哪里可以找到它?如果没有,为什么不能实现呢?在我看来,关键系统非常方便.
ps如果数据库连接丢失,则表示出现问题,需要手动干预.在他恢复连接的那一刻,它会在它停止的地方继续.
编辑:由于讨论似乎已经消失,让我添加几点(等待我可以添加奖金之前的问题)
Erlang的反应现在似乎是最高评价.我知道Erlang并且读过Armstrong(主要创作者)的实用书.这一切都非常好(虽然函数式语言使我的头部旋转所有的递归),但"容错"位不会自动出现.离得很远.Erlang提供了许多监督程序和其他方法来监督进程,并在必要时重新启动它.但是,要正确地制作适合这些结构的东西,你需要成为erlang大师,并且需要让你的软件适合所有这些框架.此外,如果电源掉电,程序员也必须拿起碎片并尝试在下次程序重启时恢复
我正在寻找的东西更简单:
想象一种语言(例如像PHP一样简单),您可以在这里执行诸如数据库查询,操作,执行文件操作,执行文件夹操作等操作.
然而,它的主要特征应该是:如果电源消失,并且事情重新启动它就会从它停止的地方开始(因此它不仅会记住它的位置,它还会记住变量状态).此外,如果它在文件复制过程中停止,它也将正确恢复.等等
最后但并非最不重要的是,如果数据库连接丢失且无法恢复,语言就会暂停,并发出信号(可能是系统日志)供人为干预,然后继续进行.
像这样的语言会使很多服务编程变得容易多了.
编辑:似乎(根据所有评论和答案判断)这样的系统不存在.并且可能不会在近乎可预见的将来由于它(接近?)无法做到正确.
太糟糕了....我不是在寻找这种语言(或框架)让我登上月球,或用它来监视某人的心跳.但对于小型定期服务/任务总是有大量的代码处理边框(在中间的某个地方断电,连接丢失而不是恢复),......在这里暂停,...修复问题,... ..并继续你离开的地方方法会很好.
(或作为评论者指出的检查点方法(如在视频游戏中).设置检查点....如果程序死亡,请在下次重新启动.)
Bounty奖励:在每个人都得出结论的最后一刻可能无法完成,Stephen C带有napier88,它似乎具有我正在寻找的属性.虽然它是一种实验性语言,但它确实可以证明它是可以完成的,并且它是值得研究的东西.
我将着眼于创建自己的框架(可能包含持久状态和快照),以便在.Net或其他VM中添加我正在寻找的功能.
每个人都感谢您的投入和伟大的见解.
像Haskell(或Nemerle)这样的语言有quasiquotations.我想知道"准"是什么意思,如果没有"准"部分也存在"引用".
haskell programming-languages metaprogramming quoting nemerle
在阅读了很多关于FP的并发执行和性能优势的博客和帖子后,我最近开始研究FP.我对FP的需求在很大程度上受到我正在开发的应用程序的影响.我的应用程序是一个基于状态的数据注入到另一个子系统,其中时间非常关键(接近每秒200万个事务).我有几个这样的子系统需要测试.我正在认真考虑使用FP来实现其并行性,并希望采用正确的方法,SO上的许多帖子都谈到了Scala,Haskell和Clojure wrt语言结构,库和JVM支持的缺点和优点.从语言的角度来看,我可以学习任何语言,只要它能帮助我实现结果.
某些帖子支持Haskell进行模式匹配和语言简单,基于JVM的FP lang在使用现有Java库方面具有很大的优势.JaneStreet是OCAML的重要支持者,但我真的不确定OCAML的开发者支持和帮助论坛.
如果有人处理过这么大的数据,请分享您的经验.
我认为每种语言都是为特定目的而创建的.Scala创建的是什么以及它最好解决哪些问题?
我遇到了这个问题:使用Turbo Pascal编写编译器
我很好奇是否有任何教程或参考资料解释如何创建一个简单的C编译器.我的意思是,如果它让我达到理解算术运算的水平就足够了.在阅读肯·汤普森的这篇文章后,我变得非常好奇.写一些理解自己的东西的想法似乎令人兴奋.
为什么我提出这个问题而不是问Google?我试过谷歌和帕斯卡一个是第一个链接.其余的似乎没有相关性,并且增加了......我不是CS专业(所以我仍然需要了解所有这些工具,如yacc),我想通过这样做来学习这一点,并希望有更多经验的人总是比谷歌更擅长这些事情.我想阅读一些与上面列出的文章相同的文章,但至少突出了构建一个简单的C编译器的自举阶段.
另外,我不知道最好的学习方法.我是否开始用C或其他语言构建C编译器?我是否编写C编译器或其他语言?一旦我有方向去探索,我觉得这样的问题会得到更好的回答.有什么建议?
有什么建议?
假设您有n个案例,我想知道switch语句的最坏情况运行时复杂性是什么.
我一直认为它是O(n).不过,我不知道编译器是否能做任何聪明的事情.如果答案是特定于实现的,我想知道以下语言:
什么使编程语言被称为动态语言?我应该使用动态编程语言来解决哪些问题?静态编程语言和动态编程语言之间的主要区别是什么?
对于封装的示例,我可以想到用户和移动电话之间的交互.用户不需要知道移动电话的内部工作来操作,因此这称为抽象.但封装在哪里适合这个例子?有人可以对此有所了解吗?