Questions tagged «programming-languages»

用于指示计算机执行计算步骤以完成任务的人工语言。它们允许程序员与计算机进行通信。

4
托管语言与编译语言的区别?
当人们试图区分编译语言和托管语言时,我感到困惑。从经验中,我了解到大多数人认为编译语言是C,C ++,而托管语言是Java,C#(显然还有更多,但这些只是少数示例)。但是,两种语言之间的核心区别到底是什么? 我的理解是,无论您使用哪种语言,任何程序本质上都被“编译”为低级机器代码,然后对其进行解释,这也使得托管语言成为编译语言的子集(也就是说,所有托管语言都是编译语言,但不是相反)吗?

3
从左到右语言语法的优点
我一直在Channel9上观看Herb Sutter的一次采访,他在视频的结尾提到,对于将来的C ++标准,从左到右的语言语法将是他的愿望清单上的第一名(尽管他承认以这种方式修改C ++会造出完全不同的野兽)。 除了: 人类更容易理解,肉眼更清晰;例如 //C syntax /*pointer to function taking a pointer to function(which takes 2 integers as arguments and returns an int), and an int as arguments and returning an int*/ int (*fp)(int (*ff)(int x, int y), int b) //Go analogous syntax which is left to write …

15
使用高级语言进行原型制作常见吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我目前正在玩一个项目,该项目的语言远远超出了我目前的编程能力,而我在(C)中没有多少实际经验,我正在玩这个想法。使用我更熟悉的高级语言(例如Perl / Python / Ruby / C#)进行原型设计是否有价值,以便使整体设计顺利进行? 最终,最终产品是性能敏感的(它是一个数据库引擎),因此选择了C。但是,恐怕不太了解C会让我迷失森林。 在寻找类似问题时,我注意到一个人提到程序员曾经在Prolog中进行原型设计,然后在汇编器中进行原型设计。

3
关于装饰器设计模式的新手问题
我在阅读编程文章,其中提到了装饰器模式。我已经进行了一段时间编程,但没有进行任何形式的教育或培训,但是我正在尝试学习标准模式等。 因此,我抬起头来查看装饰器,并在上面找到了维基百科的文章。我现在了解了装饰器模式的概念,但是我对这段内容感到有些困惑: 例如,考虑一个窗口系统中的一个窗口。为了允许滚动窗口的内容,我们可能希望适当地向其添加水平或垂直滚动​​条。假定窗口由Window类的实例表示,并且假定此类不具有添加滚动条的功能。我们可以创建一个提供它们的子类ScrollingWindow,也可以创建一个ScrollingWindowDecorator将此功能添加到现有的Window对象中。此时,任何一种解决方案都可以。 现在假设我们也希望能够向窗口添加边框。同样,我们原始的Window类不支持。ScrollingWindow子类现在带来了一个问题,因为它有效地创建了一种新型的窗口。如果希望对所有窗口添加边框支持,则必须创建子类WindowWithBorder和ScrollingWindowWithBorder。显然,随着每个新功能的添加,此问题变得更加严重。对于装饰器解决方案,我们只需创建一个新的BorderedWindowDecorator,在运行时,我们可以根据需要使用ScrollingWindowDecorator或BorderedWindowDecorator或两者来装饰现有窗口。 好的,当他们说要向所有窗口添加边框时,为什么不只是在原始Window类中添加功能以允许该选项呢?我所看到的方式是,子类化仅是为类添加特定功能或重写类方法。如果需要向所有现有对象添加功能,为什么不修改超类来这样做呢? 文章中还有另一行: 装饰器模式是子类的替代方法。子类化在编译时增加了行为,并且更改会影响原始类的所有实例;装饰可以在运行时为单个对象提供新的行为。 我不明白他们说“ ...更改影响原始类的所有实例”的原因-子类化如何更改父类?这不是继承的全部重点吗? 我将假设该文章像许多Wiki一样,书写不清晰。我可以在最后一行看到装饰器的用处-“ ...在运行时为单个对象提供新的行为。” 如果不了解这种模式,那么如果我需要在运行时更改单个对象的行为,则可能会在超类或子类中构建一些方法来启用/禁用所述行为。请帮助我真正了解装饰器的用途,为什么我的新手思维有缺陷?

12
值得阅读语言规范吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我想知道如果您不打算为语言或类似语言编写编译器/解释器,是否值得阅读语言规范/标准文档(例如Java语言规范)?我知道读这样的书不应该是任何人第一次接触该语言,但是这可能是学习它的更详细信息的好方法。 您是否曾经打扰过,其他人也应该打扰吗?

14
脚本语言对初级程序员有什么影响?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 前几天,我和一位老师进行了讨论。 我们讨论了更简单的脚本语言(如Python或Ruby)对初级程序员的影响。 他认为脚本语言会带来草率的编码技术,因为初学者不了解“引擎盖下”发生了什么。他还列举了脚本语言通常如何导致程序员忽略效率,内存管理,操作复杂性等问题的其他示例。 我认为低级语言对于某些人来说可能太多了,他们可能会在对编程产生浓厚兴趣之前就放弃了。当我开始学习我的第一门编程语言(C)时,我转向了指针并放弃了,因为概念太难了(以我的辩护,我才14岁)。如果不是Java,那么我可能还没有成为程序员!如果我从简单的语言开始,然后再深入研究,我会感到自己不会放弃,而且我会学到与C一样多的东西。 全班讨论之前,课程结束。 至此,我一直在鼓吹说,初学者应该从脚本语言开始,然后再深入研究。但是在讨论之后,我开始怀疑这是否是错误的想法。 那么,脚本语言对初级程序员有什么影响?

3
有没有研究编程语言学?
编程语言是形式语言,但与许多形式主义不同,它们还具有通过其操作语义或(对于标记语言而言是表示语义)定义的某些固有含义。编程语言尽管确实是形式化的,但就它们允许的交流而言,它们与自然语言非常相似。 尽管编程语言的开发是人为的,但是自然语言的演化,借用,混合和变异的过程都具有相当明显的人为对应物。所以我想知道:从语言学家的角度来看,有没有对编程语言的演变和行为进行过大规模,深入的研究 ?

14
编程语言的性能降低真的是一件坏事吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 这是我的看法。 有机器码,这是计算机运行某件事所需要的全部。计算机不在乎编程语言。对他们来说,机器代码来自Perl,Python还是PHP都无关紧要。编程语言不适用于计算机。他们为程序员服务。 一些编程语言的运行速度比其他语言慢,但这不一定是因为它们有问题。在许多情况下,这是因为它们可以执行程序员原本必须要做的更多工作(即内存管理),并且通过执行这些事情,他们在应做的工作中会更好-为程序员服务。 那么,编程语言的性能降低真的是一件坏事吗?

16
您今天是否将C用于软件项目?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 如果是,您将在何处以及为何使用它? 如果否,请说明为什么您不接受C。


6
是什么使BASIC盈利?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 1970年代,一个叫Bill Gates的人为BASIC开发了一种解释程序:Altair BASIC。据我了解,他能够说服一家负责微型计算机公司的家伙在他出售的每台微型计算机上都包括口译程序,我认为这为盖茨和他的工作人员带来了一定的特许权使用费。显然,这使盖茨发了大财。我不明白的是,为什么编程语言今天没有那么赚钱。过去有哪些因素使它们盈利,而今天却没有?

4
为什么mod(%)是许多编程语言中的基本数学运算符?
有某种历史原因或其他原因,为什么模数运算符是一小套标准运算符的一部分,而这似乎是许多语言的一部分呢?(+, -, *, /和%,对于Java和C,以及**在Ruby和Python中的)。 将mod包含为“基本的”似乎很奇怪(不要敲它,我经常使用它,但是我也使用幂运算,绝对值,下限/上限或其他-它们似乎同样有用且必要)。这是某个规范中做出的一个旧决定,即遵循Java,C,Ruby和Python还是它们都衍生自某种语言?据我所知,大多数Lisp方言仅包括+, -, /和*。 刚开始,我想知道mod是否在二进制级别上特别容易实现(关于决定什么是“基本”运算符,什么不应该?)甚至会有所作为),但似乎并非如此。它只是比我想的更常用于编程中吗?

4
是否有必要遵循该标准,并采用C标准?
Stack Overflow上有一些非常有经验的人,他们总是谈论C标准。人们似乎不喜欢非便携式解决方案,即使他们为我工作。好的,我知道需要遵循该标准,但是它不会给程序员的创造力带来束缚吗? 遵循标准有什么具体好处?特别是因为编译器可能会稍微不同地实现标准。


4
如何确定编程语言是冗长还是简洁?
编程语言通常可以描述为冗长或简洁。 根据我的理解,冗长的语言易于阅读和理解,而简洁的语言简洁明了,但更难于阅读。定义中是否应该考虑其他事项? 当今许多流行的编程语言似乎是冗长的,并且这两个术语仅用于描述一种语言,相对于另一种语言而言,该语言或多或少。 我们如何确定一种编程语言是否比另一种更为冗长/简洁? 示例:C#比Java更冗长吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.