Questions tagged «programming-languages»

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



3
为什么实际参数称为“参数”?
“论据”一词(从编程的角度)从何而来? 即为什么实际参数称为“参数”? 这些含义似乎无关,而且我在任何地方都没有找到任何解释。 注意术语: “形式”参数(也简称为“参数”)是“占位符”名称(例如x),即函数的声明参数。 “实际”的参数(也称为“参数”)是实际值被传递给函数(比如5),因此我用这个术语上面以防止任何混淆。

22
标识符中的空格曾经是惯用的吗?[关闭]
C#风格建议在标识符中使用CamelCase来分隔单词。Lisp传统建议使用破折号代替。 是否曾经有一种编程语言,其中不仅允许在标识符中使用空格,还允许在使用多字标识符时使用一种常用的习惯用法? 在某些Scheme实现中可能有带空格的标识符,但这并不是一种普遍的做法。这是一个例子: Petite Chez Scheme Version 8.4 Copyright (c) 1985-2011 Cadence Research Systems > (define |hey there| 100) > (define |x y z| 200) > (list |hey there| |x y z|) (100 200)

7
函数式编程正在上升吗?
我最近注意到功能编程语言越来越流行。我最近看到了Tiobe索引与去年相比如何显示出其受欢迎程度的增加,尽管根据该索引,其中大多数甚至都没有进入前50种最受欢迎​​的语言。 这已经有相当长的一段时间了。函数式编程根本没有像其他模型那样流行(即,面向对象的编程)。 但是,我已经看到了对函数式编程功能的浓厚兴趣,现在,多核越来越流行,开发人员开始对由Haskell和Erlang等语言在过去探索的其他并发模型表现出兴趣。 我非常感兴趣地看到,尽管缺乏社区的广泛认可,但越来越多的此类语言继续出现。Clojure(2007),Scala(2003),F#(2002)只是最近十年的三个例子。 我本人一直在花时间学习Haskell和Scala。尽管存在了这么长的时间,但对于我来说,这是一个全新的范例,我发现了巨大的潜力。 当然,我最大的问题是,这些方法中的任何一种是否将变得足够流行,以至于考虑对其进行任何努力,但这是一个问题,即使人们对此大惊小怪,连Mandrake都无法回答。 我想问的是: 在哪种情况下,我应该考虑一种更适合执行给定任务的功能编程语言?除了最近流行的并行编程多核问题。 如果我决定改用函数式编程语言,那您会认为这是我将要面临的最大陷阱?(除了范式更改和由于懒惰的评估而难以评估性能)。 有这么多的函数式编程语言,您将如何选择一种更适合您的需求的语言? 任何进一步研究的建议都将受到欢迎。 我在网上搜索了一些意见,看来所有这些重新流行起来都来自这样的想法,即现在我们将要碰到摩尔定律,函数式编程语言将会出现并英勇地拯救我们。但是,如果是这样的话,我想说现有流行语言有更多的可能性适应这种范例。 你们当中有些人可能每天都有使用这些语言的丰富经验,可以为您提供有关该主题的更多见解。您的所有意见将得到更好的理解和认真考虑。 提前致谢!

13
为什么在声明变量时必须指定数据类型?
在大多数编码语言(如果不是全部)中,您需要声明变量。例如在C#中,如果它是一个数字字段,则 int PhoneNumber 如果我用正常的英语,我不需要申报PhoneNumber为int使用它。例如,如果我请朋友萨姆给我他的电话号码,我会说: “山姆给我电话号码” 我不会说 “ Char(20)Sam给我int电话号码” 为什么我们必须完全指定数据类型?

18
语法在编程语言中真的重要吗?[关闭]
我的一位教授说“语法是一种编程语言的用户界面”,像Ruby这样的语言具有很好的可读性,并且还在不断增长,但是我们看到很多程序员都能用C \ C ++高效工作,因此程序员确实对语法很重要应该可以接受吗? 我很想知道您对此的看法。 免责声明:我不是要吵架。我认为这是一个很好的讨论话题。 更新:原来这是一个很好的话题。我很高兴你们都参与其中。

30
编程中有什么真的是邪恶的吗?[关闭]
因此,出现了很多问题,询问是X邪恶,是Y邪恶。 我的观点是,没有语言构造,算法或任何有害的东西,只有那些被滥用的语言。天哪,如果您看上去很努力,甚至还有goto的有效用法。 那么,在编程中是否存在绝对邪恶的东西,那在所有情况下都与最佳实践完全不兼容?如果是这样,那是什么?还是只是不好的程序员不知道什么时候合适? 编辑:明确地说,我不是在谈论程序员的工作(例如不检查返回码或不使用版本控制-它们是不良程序员做出的选择),我的意思是工具,语言,语句,无论是什么,坏...



5
Lambda表达式除了具有单个方法的匿名内部类之外,还具有其他功能吗?
期待已久的Java 8中的lambda表达式有了新的炒作;每三天有一篇关于他们有多酷的文章随他们出现。 据我了解,lambda表达式只不过是具有单个方法的匿名内部类(至少在字节码级别)。除此之外,它还具有另一个不错的功能-类型推断,但我相信可以在某种程度上使用泛型来实现这一点(当然不能像使用lambda表达式那样巧妙)。 知道了这一点,lambda表达式不仅会带来Java语法上的加糖功能吗?是否可以使用无法使用当前语言功能构建的lambda表达式来创建功能更强大,更灵活的类或其他面向对象的构造?

16
具有直观的并发编程抽象的现代编程语言
我对学习并发编程感兴趣,重点是应用程序/用户级别(而不是系统编程)。我正在寻找一种现代的高级编程语言,该语言提供用于编写​​并发应用程序的直观抽象。我想专注于提高生产率并隐藏并发编程复杂性的语言。 举个例子,我不认为用C,C ++或Java编写多线程代码是一个好选择,因为恕我直言,我的工作效率降低了,而且它们的编程模型也不直观。另一方面,提高生产率并提供更直观抽象的语言(例如Python和多处理模块,Erlang,Clojure,Scala等)将是不错的选择。 根据您的经验,您会推荐什么?为什么? 编辑:谢谢大家的有趣的回答。很难尝试得出结论,因为有很多不错的候选人:Erlang,Clojure,Scala,Groovy以及Haskell。我以最有说服力的论据对答案进行了投票,但是在决定选择哪个候选人之前,我将尝试所有好的候选人:)

7
所有语言基本相同吗?
最近,我不得不了解一个用我不知道的语言编写的小程序的设计(ABAP,如果您必须知道的话)。我可以毫不费力地弄清楚。 我意识到掌握一种新语言是完全不同的球类游戏,但是如果您已经知道几种语言(最好是多种语言),那么直接理解任何一种语言的代码意图(特别是生产标准代码,不一定很复杂)都是很简单的。一种程序/ OO和一种功能)。 这通常是真的吗?所有编程语言是否都由类似的结构(如循环,条件语句和函数之间的消息传递)组成?是否存在典型的Java / Ruby / Haskell程序员无法理解的非深奥语言?所有语言都有共同的起源吗?


8
基于作用域的内存管理的缺点
我真的很喜欢基于作用域的内存管理(SBMM)或RAII,因为它在C ++社区中更为常见(令人困惑?)。据我所知,除C ++(和C)外,当今没有其他主流语言使SBMM / RAII成为主要的内存管理机制,相反,他们更喜欢使用垃圾回收(GC)。 我觉得这很令人困惑,因为 SBMM使程序更具确定性(您可以确切地说出销毁对象的时间); 在使用GC的语言中,您通常必须执行手动资源管理(例如,参见关闭Java中的文件),这在一定程度上违背了GC的目的,并且也容易出错。 堆内存还可以(非常优雅地称为imo)是作用域绑定的(请参见std::shared_ptrC ++)。 为什么SBMM没有得到更广泛的使用?它有什么缺点?

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.