Questions tagged «programming-languages»

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

12
为什么没有更多的语言能够将一个值与另一个值进行比较?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 考虑以下: if(a == b or c) 在大多数语言中,这需要写成: if(a == b or a == c) 这有点麻烦并且会重复信息。 我知道我上面的示例语法有点笨拙,但是我确信有更好的方法来传达这个想法。 为什么没有更多的语言提供它?是否存在性能或语法问题?

4
为什么Web框架不像编程语言那样简单,优雅且有趣?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 当我想到几乎任何编程语言(例如C,C ++,PHP,SQL,JavaScript,Python,ActionScript,Haskell,Lua,Lisp,Java等)时,我都很棒,我很乐意使用任何一种语言来开发计算机应用程序这些语言。 但是,当我想到Web框架(我大部分都使用PHP)时,例如Cake,CI,Symfony,Laravel,Zend,Drupal,Joomla,Wordpress,Rails,Django等,我就像是上帝。 为什么没有提供像编程语言一样为我提供简单,有趣和强大功能的Web框架?

6
可选分号
通常,在通用命令式语言中,分号作为语句分隔符是必需的,或者是完全不允许使用的(例如C和Python)。 但是,某些语言(例如JavaScript)允许您选择不使用分号来分隔语句,而支持其他分隔符(例如换行符)。 这背后的设计决策是什么?我知道在同一行上编写多个语句时,分号是必不可少的,但是还有其他理由使分号成为强制性的(除了C之后)?

2
是否对编程语言运行时的内存消耗进行了比较研究,并将其与表达能力和生产错误率相关联?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 关于使用一种或多种语言构建的应用程序的运行时性能,有许多比较研究并可以在线获得。有些是由公司推动的,有些是学术的,有些只是个人的实验报告。 在编程语言及其工具的副作用方面,我们也得到了相当多的比较研究,例如: 建立时间 后期发现错误的可能性, 表达能力, 等等... 但是,最近,我对程序的内存消耗感到越来越沮丧,这比其他任何事情都重要。这可能来自以下事实:尽管摩尔定律在我们的工作上表现出色,但我们已经意识到其他瓶颈更为重要。这样,而且我不会经常这样更新硬件,而且我有一些“旧的”(阅读2005-2006 3.6GHz Pentium 4,具有4GB的内存),如今很难被其用于大型应用程序而无需要求我费很大的劲才能从中榨汁(例如,操作系统,UI,服务和守护程序的调整,选择用于任务或其他用途的应用程序...)。老实说,有时我看到最无辜的程序使用的内存时会发火top或procexp哭泣。 我可以通过坚持上述方向来解决这个问题,并且本质上是要限制自己和我使用的程序(出于这个原因,我对cli程序非常热爱,我想),但是我也不得不思考也许我们做错了。 满足现代需求的现代工具 当然,高级语言可以说是更好的选择,并证明它们值得承担沉重的负担。当时,出于很多原因(或合理预期),在许多工具链中做出了一些设计选择。共享的库,内存模型,预处理器,类型系统等。但是使用我们的现代硬件,某些库可能比另一些库更可行,我很想阅读一些对此事的认真研究。 因此,我的问题是,基准游戏和其他游戏是否有侧重于比较语言的基本运行时内存消耗? 甚至更进一步,是否有一些研究将此与其他参数进行交叉引用(类似于本文所做的,例如,对于其他标准,也基于基准博弈)?


3
我们能否使在大型代码库的不同部分之间添加数据流更容易?
在对大型系统进行更改时,我经常会遇到一个问题,即某些功能需要从另一部分中获取一些数据,但是它们位于深度和分支调用树的不同部分中,可能流经事件侦听器,延迟调用,等。这样,简单的更改就会迅速膨胀。 Yossi Kreinin的博客文章(http://www.yosefk.com/blog/i-want-a-struct-linker.html)的相关引用: 您有很多传递的数据结构。很快,关于该结构的最有价值的事情不是它保留的数据,而是通过一些繁琐的控制流程一直可用的事实。 全局变量是让代码“呼喊”到遥远的代码的一种经典方法,但众所周知它们存在问题。动态范围变量是一种更受限制的方法,但它们也存在问题。 是否有旨在解决此问题的编程语言研究?我们是否可以更轻松地将意外的数据流添加到大型代码库中,同时仍具有静态检查,简便的单元测试和其他优点?




4
当前是否有针对软件工程的任何现代,标准化的能力测试?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 背景 我是一名在职软件工程师,正在寻找下一年左右的新合同。在搜索中,我遇到了一些荒谬的技术采访,正如我今天早些时候提出的这个受欢迎的问题所表明的那样。 即使我被问到的问题并不总是荒谬的,但我还是会因针对各种合同机会多次回答而感到疲倦。 因此,这让我想到,进行工作的软件专业人士可以参加的标准化考试将提供一个通用的计分卡,面试官可以代替普通的技术面试问题(即书呆子混浊)来参考。 题 是否有可供工作的专业人员使用的标准化软件工程能力测验(SEAT ??)? 如果没有这样的考试,应该涵盖哪些问题或主题? 一个额外的想法 如果要提一个问题或话题,请记住要关注与当代发展实践和员工现实需求相关的问题或话题,因为这将是标准能力倾向测试的重点。换句话说,没有小丑遍历的问题。

6
如何验证/证明编程语言的正交性?
我知道正交性的概念,但是从编程语言的角度来看,有没有一种方法可以验证/证明它呢? 例如在C#中,可以使用public或static进行方法签名。您可以使用其中之一,也可以使用两者,并且它们不会互相干扰,因此它们彼此正交,对吗? 我的问题是,我该如何处理其余功能,尤其是互不相关的功能? 所有功能都必须共存/堆叠在一起吗? 是否有100%正交的编程语言?


5
分析编程语言
在SICP中,作者声明(第1.1节)有三种编程语言的基本“机制”: 基本表达式,表示语言所关注的最简单的实体 组合的手段,由较简单的要素构成复合要素 抽象手段,通过这种手段,复合元素可以被命名和操纵为单元。 如何从这些元素或机制方面分析主流编程语言(例如Java)?


3
关于类型别名/同义词的想法?
我将尽最大努力以不会导致语言冲突或语言清单的方式来构架此问题,因为我认为对此问题可能会有很好的技术答案。 不同的语言在不同程度上支持类型别名。C#允许在每个代码文件的开头声明类型别名,并且它们仅在整个文件中有效。像ML / Haskell这样的语言使用类型别名的次数可能与使用类型定义的次数一样多。C / C ++有点像狂野的西部,typedef并且#define经常与别名类型互换使用。 类型别名的优点不会引起太多争议: 可以方便地定义由语言自然描述的复合类型,例如type Coordinate = float * float或type String = [Char]。 长名可以缩写:using DSBA = System.Diagnostics.DebuggerStepBoundaryAttribute。 在像ML或Haskell这样的语言中,函数参数通常没有名称,类型别名提供了类似自我文档的形式。 不利之处在于:别名会大量增加,从而使阅读和理解代码或学习平台变得困难。Win32 API就是一个很好的例子,包括它DWORD = int,它HINSTANCE = HANDLE = void*和它的LPHANDLE = HANDLE FAR*等等。在所有这些情况下,区分HANDLE和void指针还是DWORD和整数等几乎没有任何意义。 抛开哲学上的争论,即国王是否应该给予臣民完全的自由,让他们自己负责,或者是否应该干预所有可疑的行为,是否有一种快乐的媒介可以允许类型混叠的好处,而减轻滥用风险? 例如,长名称问题可以通过良好的自动完成功能来解决。例如,Visual Studio 2010将允许您键入DSBA,以便将Intellisense引用到System.Diagnostics.DebuggerStepBoundaryAttribute。还有其他功能可以更安全地提供类型别名的其他好处吗?

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.