Questions tagged «programming-languages»

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

6
您是否在简历中写第二语言?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 4年前关闭。 每个程序员都有大部分时间都使用的主要语言,因此非常熟悉。 但是,您还有些语言,从某种意义上来说,您过去曾经非常了解它们,但是已经有一段时间没有使用,或者您很少使用它们,因此不会像您那样沉迷于其中。用您的主要语言。 您绝对可以使自己熟练使用这些语言,但是您可能需要稍微熟悉一下,查找一些语法规则,等等。我的问题是-您会在简历中将这些语言写成您“知道”的语言吗?

19
理想的编程语言学习顺序?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 你怎么看?理想的编程语言学习顺序是什么,它将涵盖当今大多数常用的语言和范例,并有助于掌握通用的编程基础,思想和实践?您甚至可以建议范式而不是语言的学习顺序。 注意:这是我在stackoverflow中提出的问题的端口,由于主观和争论而被关闭。

5
随着更具表现力的编程语言的发展,对软件设计规范的需求是否大大减少了?
对于许多IT人员(包括几年前的我自己),理想的软件开发过程是在编写一行代码之前,先创建带有许多UML图的详细设计文档。(这看起来像是瀑布模型的描述,但与敏捷相同,只是迭代次数较小。) 在过去的两三年中,我完全改变了主意。我仍然认为,带有相关测试用例的详细需求规范绝对是必不可少的。对于大型项目,在开始编写代码之前,我还需要概述总体体系结构。但是所有其余的都应该尽可能地用代码完成。在理想情况下,除了代码本身外,不应该对软件设计进行任何描述。 我是如何得出这个结论的?以下是一些参数: 反馈 用于编写文档或创建图表的工具几乎没有反馈。是的,有些建模工具可以对UML图进行一些一致性检查,但是它们是有限的,并且会产生大量开销。 没有反馈,很难识别和修复错误。 编写代码后,您将获得大量反馈,例如: 来自编译器的错误和警告 静态代码分析结果 单元测试 错误可以快速识别并解决。 一致性 为了确保代码与您的文档一致,您必须一次又一次地检查。如果经常进行更改,则很难使代码和文档保持同步。 重构 有许多强大的工具和技术可用于重构代码,而重构文本描述或图表通常很困难且容易出错。 进行这项工作有一个先决条件:代码必须足够容易阅读和理解。这可能无法用Assembler,Basic或Fortran来实现,但是现代语言(和库)更具表现力。 因此,如果我的论点是正确的,则应该有一个趋势,即越来越少的轻量级软件设计规范和文档。这种趋势是否有任何经验证据?

6
一种基于限制传递给函数的参数数量的语言
这个想法的灵感来自事实运算符,例如+,-,%等,可以看作是传递了一个或两个参数且没有副作用的函数。假设我或其他人编写了一种语言,该语言可以阻止传递两个以上的参数,并且也只能通过返回值来工作: a)这样的语言会导致更容易理解的代码吗? b)代码流程会更清晰吗?(被强制执行更多的步骤,可能会减少“隐藏”的互动 c)限制是否会使该语言在更复杂的程序中显得过于庞大。 d)(奖励)对优点/缺点的任何其他评论 注意: 仍然必须做出两个决定-第一个是是否允许用户在main()或其等效外部进行输入,以及关于传递数组/结构时将发生什么的规则。例如,如果某人希望单个函数添加多个值,则可以通过将其捆绑到数组中来解决该限制。可以通过不允许数组或结构与其自身进行交互来阻止这种情况,例如,仍然可以使您根据位置将每个数字除以不同的数量。

1
使用百分号(%)表示模数/余数是使用哪种编程语言生成的?
使用百分号(%)表示模数/余数是使用哪种编程语言生成的? 上一篇文章1解释了选择%符号的原因,因为它包含一个斜线,对于与除法相关的运算很巧妙。它还提到了C使用符号的影响。但是,我不确定它起源于C。B编程语言是C的前身,我发现B的用户指南(PDF,第12页)指出: 运算符%表示模。如果两个操作数均为正,则结果正确。否则未定义。 该用户指南的日期为1972年,大约是C出现的时间。从理论上讲,这仍然可能起源于C,但是后来又移植到B。在表示使用%符号之前,我还无法找到其他语言的规范。 我认为对这个问题不是重复的:有人问为什么取模运算是基本的,我问的是该符号何时特别是表示取模。

2
高阶参数多态性有用吗?
我很确定每个人都熟悉以下形式的通用方法: T DoSomething<T>(T item) 此功能也称为参数多态(PP),特别是等级1 PP。 假设可以使用以下形式的函数对象来表示此方法: <T> : T -> T 即,<T>意味着需要一种类型的参数,以及T -> T装置,它需要类型的一个参数T并返回相同的类型的值。 那么以下将是2级PP函数: (<T> : T -> T) -> int 该函数本身不接受任何类型参数,但接受一个具有类型参数的函数。您可以迭代地继续进行此操作,使嵌套越来越深,PP等级越高。 在编程语言中,此功能确实很少见。默认情况下,甚至Haskell也不允许。 它有用吗?它可以描述很难用其他方式描述的行为吗? 此外,强制性意味着什么?(在这种情况下)

4
可迭代和可枚举之间有区别吗?
许多语言似乎具有非常相似的结构,称为可迭代或可枚举。这些是可以迭代或枚举的结构,在我看来,它们极为相似。这些单词是同义的还是可迭代的和可枚举的之间存在细微的语义差异,这证明了术语的选择是正确的?

5
“全团队” C ++功能?
在C ++中,异常之类的功能会影响整个程序:您可以在整个程序中禁用它们,或者需要在整个代码中对其进行处理。正如有关C ++ Report的著名 文章所述: 与直觉相反,编码异常的困难部分不是显式的抛出和捕获。使用异常的真正困难部分是编写所有中间代码,以使任意异常可以从其抛出站点传播到其处理程序,安全地到达并且不会破坏程序的其他部分。 由于甚至new抛出异常,因此每个函数都需要提供基本的异常安全性 -除非它仅调用保证不抛出异常的函数- 除非您在整个项目中完全禁用异常。 因此,异常是“整个程序”或“整个团队”的功能,因为使用它们的团队中的每个人都必须理解它们。据我所知,并不是所有的C ++功能都像那样。 一个可能的例子是,如果我没有模板但不使用它们,我仍然可以编写正确的C ++,或者我不会吗?我什至可以调用sort整数数组,并享受其惊人的速度优势。C qsort(因为未调用任何函数指针),而又不会冒bug的风险-是否?看来模板不是“全团队”。 是否还有其他C ++功能会影响代码而不直接使用它们,因此是“整个团队”?我对C中没有的功能特别感兴趣。 更新:我特别要寻找的功能是没有需要您注意的语言标记。我得到的第一个答案是const-正确性,它也是一个完整的团队,因此每个人都需要学习它。但是,AFAICS仅在调用标记为的函数时才会对您产生影响const,并且编译器将阻止您在非const对象上调用它,因此您可以向Google寻求帮助。除非有例外,否则您什至没有得到。而且,它们总是在您使用后立即使用new,因此异常更加“阴险”。但是,由于我不能客观地表述这一点,因此我将不胜感激任何全团队功能。 更新2:我应该写一些类似“ C ++特定功能”的文章,而不是C ++功能,以排除适用于大量主流编程语言的多线程之类的东西。 附录:为什么这个问题是客观的(如果您想知道的话) C ++是一种复杂的语言,因此许多项目或编码指南都试图选择“简单的” C ++功能,并且许多人尝试根据大多数主观标准来包括或排除某些功能。有关此问题,请按此定期关闭。 相反,在上面,我(尽可能精确地)定义了“整体”语言功能是什么,提供了一个示例(例外),以及有关C ++文献的大量支持证据,并要求使用C ++的整体团队功能毫无例外。 您是否应该使用“整个团队”功能,或者是否使用相关概念可能是主观的,但这仅意味着该问题的重要性像往常一样是主观的。

10
为什么我们需要“回调函数”?
我正在读书programming in Lua。它说 在许多情况下,封闭提供了一种有价值的工具。如我们所见,它们可用作排序等高阶函数的参数。闭包对于构建其他功能的功能也很有价值,例如我们的newCounter示例;这种机制允许Lua程序结合功能世界中的复杂编程技术。闭包对于回调函数也很有用。当您在传统的GUI工具箱中创建按钮时,就会出现一个典型的示例。每个按钮都有一个回调函数,当用户按下该按钮时会被调用。您希望不同的按钮在按下时会做一些略有不同的事情。例如,一个数字计算器需要十个类似的按钮,每个数字一个。您可以使用以下功能创建每个: function digitButton (digit) return Button{label = tostring(digit), action = function () add_to_display(digit) end} end 看来,如果调用digitButton,它将返回action(将创建一个闭包),因此,我可以访问digit传递给digitButton。 我的问题是: Why we need call back functions? what situations can I apply this to? 作者说: 在此示例中,我们假定Button是创建新按钮的工具包函数。label是按钮标签;而action是按下按钮时要调用的回调闭包。在digitButton完成其任务之后以及在局部变量digit超出作用域之后,可以很长一段时间调用该回调,但是仍然可以访问此变量。 根据作者,我认为类似的例子是这样的: function Button(t) -- maybe you should set the button here return t.action -- so …


9
程序员不知道C和C ++之间的区别是否很常见?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 在一次采访中,有人问我是否知道C和C ++之间的区别。 我想知道为什么会问这样的问题?

10
如果比赛使用“ lingua obscura”促进发展(为什么),我应该担心吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 5年前关闭。 我正在阅读保罗·格雷厄姆(Paul Graham)的文章- 击败平均水平(Beating the Averages,2003),这是他不得不说的: 职位描述所具有的IT风格越多,公司的危险就越小。最安全的一种是想要Oracle经验的。您无需担心这些。如果他们说他们想要C ++或Java开发人员,那么您也很安全。如果他们想要Perl或Python程序员,那将有些吓人-听起来像一家公司,至少在技术方面由真正的黑客经营 现在,这是一篇过时的文章。但是,我看不到使用非通用语言(C / C ++ / Java,C#)如何“不太危险”。如果组织的程序员非常熟练使用开发语言,那么他们应该同样擅长以适当的速度编写代码。实际上,如果您确实使用非通用语言,那么从长远来看,维护/增强问题是否会面对您,因为不会有太多的程序员可用? 我同意,为了制作快速脏的系统,某些语言允许您比其他语言更快地起飞。但是,保罗·格雷厄姆(Paul Graham)的论文/评论在2012年及以后是否有意义?如果一家初创公司要使用典型的IT语言进行开发,那么为什么不那么担心竞争呢? 我看不出语言本身是如何产生变化的。恕我直言,重要的是开发人员对语言的了解以及框架的可用性,因此您可以DRY(不要重复自己)而不仅仅是使用特定语言进行编码。 我想念的是什么?是否意味着初创公司更好地选择非IT风格的语言(即使开发人员可能非常擅长使用它们)?这项主张背后的(程序)经济/市场力量是什么? PS:“ lingua obscura”并不意味着伤害任何人的感情:)


5
可以编译为Android Dalvik VM的功能语言吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我有一个适合功能编程方法的软件问题,但目标市场将是Android OS。我问是因为有些功能语言可以编译为Java的VM,但是Dalvik字节码!= Java字节码。 另外,您是否知道该dx实用程序是否可以智能地转换.class从Scala等功能语言生成的文件? 编辑:为了给社区增加更多帮助,并帮助我更好地选择,我可以对问题进行一些改进吗? 您是否在Dalvik中使用了任何其他语言?哪个? 我可能会遇到哪些“陷阱”(问题)? 性能可以接受吗?那样的话,我的意思是应用程序仍然对用户有所响应。 我从来没有做过手机开发,但是我在受限的设备上长大,并且我不幻想在该平台上使用非标准语言会产生成本。我只需要知道是否花了这么多钱,就可以将我的方法变成默认语言(即在OOP语言中应用功能原理)。

9
职业建议:编程语言理论博士学位[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 我对编程语言的理论非常感兴趣,并打算在该主题上申请博士学位,但我想对研究生教育后的职业有更多了解。除了当教授,我还能获得什么职业?

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.