Tag: 编程语言

.NET中类加载器的等价类

有谁知道是否有可能在.NET中定义“java自定义类加载器”的等价物? 给一点背景: 我正在开发一种以CLR为目标的新的编程语言,称为“自由”。 该语言的特点之一是它能够定义“types构造函数”,它是编译器在编译时执行的方法,并生成types作为输出。 它们是generics的泛化(语言确实具有普通的generics),并允许这样的代码被编写(使用“Liberty”语法): var t as tuple<i as int, j as int, k as int>; ti = 2; tj = 4; tk = 5; 其中“元组”的定义如下: public type tuple(params variables as VariableDeclaration[]) as TypeDeclaration { //… } 在这个特定的例子中,types构造函数tuple提供了类似于VB和C#中的匿名types的东西。 然而,与匿名types不同,“元组”具有名称,可以在公共方法签名中使用。 这意味着我需要一种types的方式,最终最终由编译器发出,可以跨多个程序集共享。 例如,我想要 在程序集A中定义的tuple<x as int>最终与程序集B中定义的tuple<x as int>相同。 这个问题当然就是Assembly A和Assembly B将会在不同的时间被编译,这意味着他们最终都会发布他们自己的元组types的不兼容版本。 我研究了使用某种“types擦除”来做到这一点,所以我会有一个像这样的一堆types的共享库(这是“Liberty”语法): class tuple<T> { public […]

为什么Objective-C在苹果社区以外不受欢迎?

我知道苹果社区(包括Mac和iPhone开发人员)主要使用Objective-C开发语言。 但似乎没有多less人在Apple社区之外使用Objective-C,比如Windows或Linux世界。 Objective-C在苹果社区之外不受欢迎的原因有哪些?

“关键字”和“保留字”有什么区别?

关键字和保留字有什么区别? 例如,在C ++概念提案中,可以阅读以下语句: 该提案引入了五个新的关键字:概念,概念图,何处,公理和延迟检查。 所有这些关键字也将是保留字。

什么静态types的语言是类似于Python?

Python是目前我所知道的最好的语言,但是由于自动完成,静态types是一个很大的优势(虽然对dynamic语言的支持有限,但与静态types相比并不算什么)。 我很好奇,如果有任何语言试图将Python的好处添加到静态types的语言。 特别是我在有以下function的语言中很有趣: 语法支持:如字典,数组理解 函数:关键字参数,闭包,元组/多个返回值 运行时修改/创build类 避免在任何地方指定类(在Python中,这是由于鸭子键入,尽pipetypes推断在静态types语言中会更好) 元编程支持:这是通过reflection,注释和元类在Python中实现的 是否有任何静态types的语言与这些function的相当数量?

有防灾语言吗?

当创build必须具有高可靠性的系统服务时,我经常会写下很多“故障安全”机制,例如:通讯已经消失(例如与数据库通讯),如果电源是失去了,服务重新启动….如何拿起件,并继续以正确的方式(并记住,在拿起件时,权力可以再出…)等等 我可以想象,对于不太复杂的系统来说,能够满足这个要求的语言将是非常实用的。 因此,无论权力何时被切断,在任何特定时刻都会记住它的状态,并继续停止。 这是否存在? 如果是的话,我在哪里可以find它? 如果没有,为什么不能实现呢? 在我看来,对于关键系统来说非常方便。 ps数据库连接丢失时,表示出现问题,需要手动干预。 在连接恢复的那一刻,它将继续停止。 编辑:由于讨论似乎已经死了,让我补充几点(在等待之前,我可以添加一个赏金的问题) Erlang的回应似乎是目前最高的评价。 我知道Erlang,并阅读过Armstrong(主要创作者)的实用书。 这一切都非常好(尽pipe函数式语言让我的头脑旋转了所有的recursion),但是“容错”位并不会自动产生。 离得很远。 Erlang提供了许多监督人员监督stream程的其他方法,并在必要时重新启动。 然而,为了正确地做出与这些结构一起工作的东西,你需要成为erlang大师,并且需要使你的软件适合所有这些框架。 另外,如果功耗下降,程序员也必须拿起这些部件,并在下一次程序重新启动时尝试恢复 我正在寻找的是更简单的事情: 想象一下,一种语言(就像PHP一样简单),你可以做类似于数据库查询,操作,执行文件操作,执行文件夹操作等的语言。 它的主要特点应该是:如果电源死了,重新启动,它会停止它的位置(所以它不仅会记住它在哪里,还会记住variables状态)。 另外,如果它在文件拷贝中间停止,它也将正确恢复。 等等 最后但并非最不重要的是,如果数据库连接断开并且无法恢复,语言只是暂停,并且发送信号(可能是syslog)供人工干预,然后继续进行。 像这样的语言会使很多服务编程变得更容易。 编辑:它似乎(所有评论和答案来看),这样一个系统不存在。 可能在近乎可预见的将来,由于(近?)不可能得到正确的。 太糟糕了….我再也不是在寻找这种语言(或框架)让我登上月球,或者用它来监视某人的心脏。 但是,对于小型的周期性服务/任务,这些服务/任务总是会导致大量的代码处理边界案例(电力中断,连接丢失,不能恢复),…在这里暂停,…解决问题。 ..并继续你离开的方法将工作良好。 (或作为评论者之一指出的检查点方法(如在video游戏中)。设置检查点….如果程序死亡,下次重新启动。 赏金奖励:在最后一刻,每个人都得出结论,这是不可能完成的,Stephen C带着napier88,这似乎有我正在寻找的属性。 虽然它是一种实验性的语言,但它确实certificate它是可以做到的,这是值得深入研究的东西。 我将研究创build我自己的框架(可能具有持久状态和快照)来添加我在.Net或其他虚拟机中寻找的function。 每个人都感谢您的意见和伟大的见解。

为什么解释的langs大多是ducktyped而编译有强大的打字?

我只是不知道,这是否有任何技术原因? 对于input较弱的语言,实现编译器更难吗? 它是什么?

代码 – 高尔夫:编译和崩溃的最短程序是什么?

这有点儿乐趣 你能制定最短的程序,编译但是什么都不做,但是执行时立即崩溃吗? 因此,“崩溃”是指程序停止时出现错误情况(例如核心转储)。 有一种语言崩溃比C使用gcc编译器更快(7个字符)? [我留下这个答案让别人find。] (应该可以使用编译器标志,否则7现在不行,编译器检查好多了。) [评估结果]我无法标记一个单一的答案,因为有多个正确的多种语言。 将一个答案取消给另一个答案是不公平的。 请用选票select最佳答案。

“closures”和“块”之间究竟有什么区别?

我发现很多人可以互换地使用闭包和块 。 这些人大多不能解释他们在说什么。 一些Java程序员(甚至是来自非常昂贵的咨询公司的人)都会将匿名内部类作为“块”和“闭包”进行讨论 – 但我知道这不是事实。 (你不能在它们被定义的方法范围内传递可变variables…) 我在找: 一个精确的,计算机科学的块定义 一个精确的计算机科学的封闭定义 并澄清两者的区别 。 我真的很希望看到这些链接,文章或书籍参考 。

有用的替代控制结构?

有时当我编程时,我发现一些特定的控制结构对我来说是非常有用的,但是不能直接在我的编程语言中使用。 我想我最常见的愿望就像是“分裂”(我不知道该怎么称呼这个): { foo(); } split_while( condition ) { bar(); } 这个代码的语义是foo()总是运行,然后检查条件。 如果为true,那么bar()运行,我们回到第一个块(从而再次运行foo()等)。 感谢reddit用户zxqdms发表的评论 ,我了解到Donald E. Knuth在他的论文“结构化编程go to声明” (参见第279页)中提到了这个结构。 你认为什么替代控制结构是组织计算的有用方法? 我的目标是给自己和其他人一些思考结构化代码的新方法,以便改进分块和推理。 注意 :我不是问如何概括所有可能的控制结构,无论是使用jne , if / goto ,Lispmacros,continuations,monads,combinators,夸克还是别的。 我在问什么专业化在描述代码中很有用。

反应式和function反应式编程之间的区别

最近我一直在研究反应式编程,我发现很难find反应式和function反应之间区别的很好的描述。 简单地说,反应式编程是使用函数方法/范式实现的,而不是使用声明式或面向对象的范式?