Questions tagged «programming-languages»

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

8
为什么将程序代码和图形界面代码打包在不同的类中是最佳实践?
因此,我的老师告诉我,不要将程序代码和图形界面代码封装在同一类中,而要使其完全独立是非常重要的。我目前正在编写带有网格的iPhone游戏。对我来说,在同一个“网格”类中创建图形网格和技术代码更有意义。其他程序员会对此皱眉吗?保持图形界面和代码独立确实非常重要吗?如果不这样做会出现什么问题? 谢谢! 编辑:谢谢大家!我可以先编写项目,然后再复制代码以形成关注点分离设计吗?我知道这可能完全违背了这个目的,但是只是作为实践……所以下次我可以从头开始应用这种设计模式了吗?

3
“语言文化史”在平台中扮演什么样的角色?
我最近偶然发现了这个几年前的文章。它认为,围绕VB和C#的文化存在显着差异,而不是语言的实际差异,导致C#编码人员通常比VB编码人员更有才华。显然,这引起了很多火焰大战,而C#ers或VBers是哑巴的问题将永远无法回答。话虽如此,作者声称围绕特定平台的文化对团队的质量仍然有帮助。例如,即使目前Java开发应用程序的效率更高,但Google Go开发人员团队的平均水平似乎比Java开发人员团队更高,因为要学习Go,开发人员可能已经成为一个超级早期的采用者和一个前沿的黑客天才。简而言之,围绕一个平台或另一个平台的文化如何影响该平台上普通开发人员的质量(如果有的话)?

7
游戏编程:C#还是C ++?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我已经决定我真正想要做的是游戏编程。因此,问题是,作为一个想学习自学编程的18岁孩子,C#和C ++之间最适合的编程语言是什么?(我应该声明我不关心Unix,因为我相信Windows仍将是使用最多的OS) 我知道C ++的基础知识,但不了解C#。我知道C ++有更多的教程指南,dll和类似的东西,而C#则没有,但是学习和使用一个人来开发程序要容易得多,但是即使程序被混淆,我也已经读过很容易找到它的来源。 好吧,我有点想先关注基础知识,我必须说我偏爱C ++,只是因为它对我来说更合适,但我必须考虑我一个人工作。因此,即使我喜欢它,也不是最好的选择。 我真的不确定要去哪一个,我已经在各种网站上阅读了很多线程,而且看来C#比C ++越来越流行。但是,是的,我也指定我要进行游戏编程。因此,我需要知道一些不仅是“由于C.没有C ++,因为.net内存处理而使C#更容易”的更好的要点,因为我无法找到它。

9
Prolog专业有用吗?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 多年前,我在大学学习了Prolog。在我的职业生涯中,我从未需要使用Prolog。我错过了一些特别的东西吗? 据我所知,与著名的编程语言相比,Prolog需要完全不同的思维方式。 Prolog是否真的曾经被用来实现某些专业上有用的东西?

8
我应该在汇编语言中包含“ assembly”作为编程语言吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 在回答一个问题时,有人写道assembly is not a language, it's a process。我倾向于同意,因为程序集的“语言”取决于它将运行的体系结构,这在一个CPU与另一个CPU之间可能有很大的不同。 因此,如果您已经为一种体系结构编写了汇编程序,是否意味着您可以仅将其assembly与其他编程语言一起包含在CV中?还是您明确地说您已经为该特定体系结构编写了汇编程序? 编辑:将“涉猎”更改为“书面”。英语不是我的母语,我误解了这个词,认为它意味着您已经使用很多而不是仅仅使用了一点。

7
对ASP.NET Ajax,jQuery和JavaScript感到困惑
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 昨天,我从ASP.NET 4书中阅读了有关ASP.NET Ajax和jQuery的几章,我发现这些框架非常有趣,并决定进一步了解它们。 今天,我从图书馆借了一些有关Ajax和JavaScript的书。似乎ASP.NET Ajax与Ajax不同,而jQuery似乎是“新” JavaScript。 这是否意味着我可以跳过JavaScript并直接学习jQuery? 另一方面,我借用的非ASP.NET Ajax书似乎仅适用于客户端Web编程,并且看起来与我从ASP.NET Ajax中学到的完全不同。如果我是ASP.NET开发人员,我想我应该坚持使用ASP.NET Ajax而不是客户端Ajax,对吗?那PHP呢?是否有类似于ASP.NET Ajax的“ PHP Ajax”? 不是我懒于学习其他工具,而是我只想专注于正确的工具。

16
您将字符串反转用于什么用途?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 在PHP中是strrev(),在Rails中是.reverse,但是大多数语言没有任何字符串反向功能。有些具有可用于字符的数组反转功能。我以为这一定是一个重大的疏忽,但是后来发生在我身上,您实际将反向字符串用作什么? 我唯一能想到的是在演示和课程中启用“ Hello World!”。变成“!dlroW olleH”。 我的问题是;反转字符串有用途还是完全没有意义? 。 附录 我已经预料到会有更多答案,但并非所有答案都完全是学术性的。我本来会花钱的,没有人能提出一个合理的例子。我也认为我不会学到任何新东西,但Mark Canlas的正则表达式建议非常出色,我期待着有机会证明自己。谢谢大家。

2
美丽的Erlang代码[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我一直在尝试有关Erlang的知识,而不是我一直在玩的玩具项目。为此,我正在阅读《Erlang编程》以及Armstrong在Software上的一些档案。 我还想阅读一些示例代码(最好是生产代码),这些代码展示了您可以使用Erlang构建的各种东西,而这在其他语言中会非常困难。除了(我假设)Yaws之外,是否有任何公开的美丽的Erlang代码示例可供我阅读以更好地理解该语言并/或查看各种语言构造的惯用用法? 我特别不是在寻找“完成工作”的代码,而是使用有问题的做法或类似“这是您factorial在Erlang中的编写方式”的示例。 同样,任何人都可以推荐学习该语言的任何优秀文献(提到的“ Programming Erlang”除外)吗?出于喜好,您自己曾经学习过一些东西,但是如果有一些社区标准书籍,也可以放进去。

9
衡量语言流行趋势的最佳客观方法是什么?(有什么比TIOBE更好?)
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 11个月前关闭。 我知道,获得有关计算机语言流行程度的数据的最佳方法是TIOBE索引。但是每个人都知道 TIOBE毫无瑕疵。(如果有人提供了支持此操作的链接,我将在此处添加它。) 那么,是否有关于编程语言流行度的任何数据通常被认为有意义?我知道的唯一另一种选择是查看确实存在的缺陷,确实基于工作职位的确有误。 好像我不会仅根据索引来决定将来的语言,但是它可以平衡与朋友和同事交谈所获得的偏见。 为了说明这种偏见,我将指出,根据我个人的经验,当今(按流行程度排序)当今专业使用的唯一语言是Java,C#,Groovy,JavaScript,Ruby,Objective C和Perl。(尽管很明显,过去使用了C,C ++和PHP。) 所以我的问题是,每个人都取材于TIOBE,但是还有其他东西吗?如果是这样,谁能解释我们如何知道替代方法具有更好的方法?谢谢。

3
具有通用编程支持的第一语言
哪种语言是第一种具有通用编程支持的语言,什么是第一种主要的具有泛型支持的静态类型语言(广泛使用)。 泛型实现参数化类型的概念以允许多种类型。术语“泛型”的意思是“属于或适合于大型类”。 我看过以下提到的“第一”: 一阶参数多态性现在是静态类型编程语言的标准元素。从系统F [20,42]和函数式编程语言开始,这些结构已进入主流语言(例如Java和C#)中。在这些语言中,一阶参数多态性通常称为泛型。 摘自《高级泛型》,阿德里安·摩尔,弗兰克·皮森斯和马丁·奥德斯基 通用编程是一种计算机编程风格,其中,算法是根据以后要指定的类型编写的,然后在需要将其作为参数提供的特定类型时实例化。这种方法由Ada于1983年提出 来自维基百科通用编程

4
越来越多的高级编程语言的使用是否会导致缺乏计算机体系结构知识的程序员?
引用维基百科的文章“高级编程语言”: 高级编程语言是一种从计算机详细信息中抽象而来的编程语言。与低级编程语言相比,它可能会使用自然语言元素,更易于使用或在平台之间具有更大的可移植性。这些语言隐藏了CPU操作的详细信息,例如内存访问模型和范围管理。 也就是说,随着编程语言水平的提高,程序员与运行程序的硬件之间的距离就越远。 现在,我不知道各个级别的语言使用情况的统计信息,但是我怀疑较高级别的语言正越来越多地取代较低级别的语言。如果是这样,这是否会导致缺乏计算机体系结构知识的程序员?这会对行业造成问题吗?

30
每种语言最受欢迎的IDE是什么?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 这与拥有喜欢的编辑器或类似的东西无关。我只是想知道每种语言最受欢迎的集成开发环境是什么?如果有争执,也许排名前2-3。(认为​​受欢迎就足够了) 迄今: C# -Visual Studio,SharpDevelop Java -Eclipse,NetBeans,IDEA Objective-C -Xcode Delphi -RAD Studio 帕斯卡(Pascal)-Delphi,Lazarus C,C ++ -Visual Studio,Vim PL / SQL -RapidSQL,Oracle SQLDeveloper PHP -Eclipse,NetBeans,Nusphere PHPed Actionscript(AS2,AS3) -FlashDevelop Flex -Flash Builder 4 Python -Eclipse,IDLE Perl -Padre 通用Lisp -Lispworks,Emacs Ruby -TextMate Haskell -Vim Fortran -Vim Visual Basic -Visual Studio

2
在现代编译器中如何实现泛型?
我的意思是我们如何从某些模板T add(T a, T b) ...进入生成的代码?我已经想到了几种方法来实现,我们将通用函数存储在AST中Function_Node,然后每次使用它时,都会在原始函数节点中存储其自身的副本,其中所有类型都T替换为正在使用。例如add<int>(5, 6)将存储的通用功能的副本add并替换所有类型T 的副本有int。 所以它看起来像: struct Function_Node { std::string name; // etc. Type return_type; std::vector<std::pair<Type, std::string>> arguments; std::vector<Function_Node> copies; }; 然后,您可以为这些代码生成代码,并在访问Function_Node副本列表所在的位置时copies.size() > 0调用visitFunction所有副本。 visitFunction(Function_Node& node) { if (node.copies.size() > 0) { for (auto& node : nodes.copies) { visitFunction(node); } // it's a generic function so we …

2
Optionals和Nullable类型有什么区别
斯威夫特有Optionals。C#具有Nullable类型。 据我所知,它们具有相同的用途,除了某种类型的值外,它们还存储变量是否有值或未定义(未初始化)的信息。 问题是Optionals仅仅是Nullable名称不同的类型,还是其他概念上的区别? 换句话说,在谈论概念本身时,或者在没有Optionals或的语言的上下文中,Nullables使用术语是否重要? 当用语言实现该功能时,我是否键入类型Optionals<T>或名称都很重要Nullable<T>

1
为什么LLVM具有类似程序集的IR,而不是类似树的IR?或者:为什么项目针对LLVM IR而不是clang的AST?
为什么LLVM的中间表示(LLVM IR)类似于树而不是像树? 或者,为什么语言实现针对LLVM IR而不是clang的AST? 我不是想立刻问两个不同的问题。在我看来,似乎客户和库程序员都已达成共识,LLVM的API(仅此而已)显然是好的软件设计,我的问题是“为什么?”。 我问的原因是,如果IR类似于AST,LLVM似乎可以为前端提供更多功能,因为那时clang基于AST的工具可以用于任何前端。另外,如果针对LLVM IR的语言针对clang的AST,则可以获得更多功能。 Clang具有用于创建和使用AST的类和函数,并且它是唯一与LLVM项目紧密相关的前端项目,那么为什么clang的AST功能在LLVM外部? 在我的头顶上,我知道Rust(rustc),D(ldc)和Haskell(GHC)都可以使用LLVM作为后端,但是它们不使用Clang AST(据我所知,我可以是错的)。我不知道这些编译器的所有内部细节,但是至少Rust和D当然看起来可以将它们编译为clang的AST。也许Haskell也可以,但是我对此不太确定。 这是因为历史原因(LLVM最初是“低级虚拟机”,后来出现了clang)吗?这是因为其他前端希望对提供给LLVM的内容进行尽可能多的控制吗?clang的AST不适合“非C类”语言是否有根本原因? 我不希望这个问题成为阅读中的练习。我只是希望它对那些对编译器设计感到好奇但还不太熟练的人有所帮助。由于LLVM和clang项目是公开开发的,所以我希望熟悉这些项目开发的人员可以回答,或者希望答案对于某些自己有足够信心回答的书呆子很明显。 抢占一些显而易见但不令人满意的答案: 是的,拥有类似程序集的IR可以使制作IR的人获得更多控制权(也许X lang比clang更好的代码库和AST格式),但是如果这是唯一的答案,那么问题就变成了“为什么LLVM 仅具有程序集-例如IR,而不是高级树状IR和底层程序集IR?”。 是的,将编程语言解析为AST并不难(至少与其他编译步骤相比)。即使这样,为什么还要使用单独的AST?如果没有其他问题,则使用相同的AST可以使您使用在AST上运行的工具(即使只是简单的东西,例如AST打印机)。 是的,我强烈同意,更加模块化是一件好事,但如果这是唯一的原因,那么为什么其他语言的实现往往针对LLVM IR代替铛的AST? 这些先发制人可能是错误的或忽略了细节,因此,如果您有更多细节或我的假设有误,请随时提供这些答案。 对于任何想回答一个更为明确的问题的人:类组装IR与树形IR的优缺点是什么?

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.