Questions tagged «programming-languages»

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

7
Python是开发UI的好选择吗?如果是这样,wxPython还是Tkinter?
我期待使用Python开发桌面应用程序。我是一个初学者,我在Python方面没有足够的专业知识。我也是Java程序员。尽管我有一些使用Swing构建UI的经验,但我发现在Swing上开发的应用太慢了。好吧,这可能就是为什么许多主要实现都是在C / C ++中完成的原因之一,就像在浏览器/游戏中一样。 用C ++开发UI可能是一个更好的选择,但是我更喜欢选择一种高级编程语言,而不是C / C ++。因此,我选择使用Python是因为Python本身是基于C / C ++构建的,因此它会比Java Swing更好。 那么,我可以继续假设Python在开发UI方面比Java Swing好吗?还是建议使用比Python更好的语言来开发UI?如果我继续使用Python,应该使用哪个工具包使用Tkinter或wxPython,为什么?

5
函数式编程只是有所不同,还是真的更难?
函数式编程只是有所不同,还是真的更难? 假设某人以前从未学习过编程,而是接受过函数编程的培训。VS从未接触过编程的人,并且接受过命令式编程的教育。他会发现哪个更强硬?还是一样? 我的问题:说现在的问题是骆驼式输入 这样qwe_asd_zxc_rty_fgh_vbn变成qweAsdZxcRtyFghVbn 程序方式是: 沿 _ 遍历数组,跳过第一项 对于每个条目,我们将首字母大写 将结果结合在一起 功能方式是: 如果找不到_回报input 切掉input第一个_(这样我们就可以得到qwe和asd_zxc_rty_gfh_cvb) 大写的第一个字母head并与f(tail) 好吧,如果您有功能背景并且在过程编程方面有丰富的经验,我想问:确定过程方式是否需要花费更长的时间,或者确定函数方式需要更长的时间? 如果您有程序背景,但是有多年的函数式编程经验,我想问一个相同的问题:确定程序的方式会花费您更长的时间,还是找到功能的过程会花费更长的时间办法?

12
汇编作为第一门编程语言?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 4年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 您认为教人们将汇编语言(某种变体)作为第一门编程语言有多么出色的主意?与学习Java或Python相比,这将花费更多的精力,但是从“第一天编程”(至少与许多高级语言相比)开始,人们或多或少会对机器有很好的了解。你怎么看?至少对于那些愿意付出额外努力的人来说,这是一个现实的想法吗?的优点和缺点? 注意:我不是老师,只是好奇

5
面向语言的编程实用吗?
我阅读了有关面向语言的编程的文章。他指出了现代程序/ OOP编程方法中的一些弱点,并提出了可以解决这些问题的新编程范式 我只想了解那些松散耦合的小型程序部分:最好学习很多小的东西,而您只需要一点点地使用它们,而不是几个大的东西。 阅读这篇文章后,我觉得作者正在推广以下两项内容之一: 多种易于创建的脚本语言 单一的,易于扩展的语言,可以自行重写以满足程序员的需求 如果他建议第二个,我将回答“已经完成!” 并以Lisp为例。正如保罗·格雷厄姆(Paul Graham)所建议的,无论如何,语言似乎一直在朝着这个方向发展。 就第一个而言,我认为这是一个好主意,如果有将它们紧密联系在一起的基本语言。在我看来,这是薄弱环节:语言之间的交流。您会使用过程概念或消息传递的调用方式,使我想起进程间通信吗?如果很容易同时使用它们,我欢迎有机会使用特定于小型领域的语言。这种方法(LOP)是否可行?

7
HTML5 / JS最终会取代所有客户端语言吗?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我只是想知道这一切的未来。恕我直言,有4种力量定义了技术的发展方向:微软,苹果,谷歌,Adobe。 看起来在Apple的iPhone / iPad iAD中,现在可以使用HTML5对其进行编程了。那么这是否意味着HTML5最终将取代Objective-C? 而且,微软现在已经将重点从WPF / Silverlight转移到了HTML5,我认为Visual Studio 2011将全部是对HTML5的工具支持。因为那是微软所做的。(工具)。在几个月后的IE9中,最后一个主流浏览器将支持HTML5。 同样,Adobe正在加入HTML5潮流,并允许使用其最新工具将Flash内容导出到HTML5。 而且我们都知道html5对Google有多大帮助。哎呀,他们最新的操作系统(Chrome OS)只是一个庞大的网络浏览器。 对于一家公司来说,移动应用程序(例如iPhone,Android,WM7)很难编程,尤其是对于许多不同的设备(每种都有自己的语言)进行编程,因此我认为这不会持续太久。即,HTML5将成为统一语言。对于应用程序开发人员来说,这有点可悲,因为现在用户将可以在网络上免费玩“酷”的html5应用程序,并且很难为他们付费。 那么强类型语言真的注定了吗,在未来的5-10年内,客户端编程是否仅会使用HTML5?我们所有人都将成为javascript程序员吗?:)因为这些迹象肯定指向那个方向...

12
拖放编程-它会飞吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 8年前关闭。 我所知道的所有编程语言都是书面的-即以一种或另一种方式将其键入为文本的长度。但是我想知道是否有任何编程语言可以拖放整个程序?要获得一个循环,请在此处选择此框,然后将其拖动到“代码”的那部分,依此类推。如果没有这样的人,如果有人发明了它,它会飞吗? 我个人认为这不是一个好主意,但我想听听您的想法。

2
Oberon真的是“更好的Pascal”吗?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 阅读Niklaus Wirth时,您可能会注意到,尽管Pascal颇受欢迎,但他对Oberon(作为Pascal和Modula的“抛光”继承者)没有得到太多欢迎感到不高兴。我从未在Oberon中做任何事情,但是阅读Paerscal Developers的Oberon页面我确实不喜欢像Delphi / pascal开发人员那样的许多更改。 强制保留字始终为大写 使语言区分大小写 摆脱枚举类型 您如何看待Oberon,从您的角度来看,这真的是“更好的Pascal”吗?

22
您知道哪些有用的替代控制结构?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 SO上也有类似问题。 有时,当我们进行编程时,我们会发现某些特定的控制结构对我们非常有用,但是在我们的编程语言中并不能直接使用。 您认为哪些替代控制结构是组织计算的有用方法? 这里的目标是获得有关代码结构的新思考方式,以改善分块和推理。 您可以创建一个现在不可用的理想语法/语义,或者在现有的编程语言上引用一个鲜为人知的控件结构。 答案应该为新的编程语言或增强实际语言提供思路。 认为这是集思广益,所以发布您认为是疯狂的主意,但在某些情况下可行。 这是关于命令式编程的。


7
OOP如何演变为包含属性的概念
我来自C ++背景,在目前的工作中全力以赴使用C#,并且我刚刚读了很多问答,内容涉及公共领域和属性之间的区别以及此变化和体现的所有来回变化。基本问题(例如此SO帖子和所有相关的链接问题)。所有这些问题都是根据实际存在的差异解决的,这些差异应理所当然地认为存在财产制度,但是我认为最好从所有语言的设计者首先决定支持财产的角度来解决这个问题。地方正在思考(在此处查看 Wikipedia文章中的列表))。OOP是如何从C ++ / Java扩展到Wikipedia文章有趣地标识为方法和成员数据之间的中间地带的: “也就是说,属性位于类的成员代码(方法)和成员数据(实例变量)之间,并且属性提供比公共字段更高的封装级别。” MSDN进一步增加了背景: “尽管从技术上讲,属性在本质上与方法非常相似,但是它们的使用场景却大不相同。应将它们视为智能字段。它们具有字段的调用语法和方法的灵活性。” 我想知道这种中间封装水平对于一般的编程证明是有用的。我假设在表达OOP范式的编程语言的第一个化身中没有这个概念。

2
用外行的话来说,剩下的递归是什么?
根据code.google.com上的一页,“左递归”的定义如下: 左递归只是指任何递归非终结符,当它产生包含自身的语句形式时,其自身的新副本出现在生产规则的左侧。 维基百科提供了两种不同的定义: 就上下文无关文法而言,如果非r产生的任何产品(“替代”)中的最左符号立即(直接/直接向左递归)或通过其他一些非终结符,则该非终结r是左递归定义(间接/隐藏的左递归)再次重写为r。 “如果我们能找到一些非终结符A,那么语法将是左递归的,它最终会得出一个以其自身为左符号的句子形式。” 我只是在这里刚开始进行语言创建,而我在业余时间做。然而,当它归结为选择语言解析器,无论是左递归被该分析器或支持该分析器是一个问题马上来了前沿和中心。查找诸如“句子形式”之类的术语只会引出更多行话,但是“左”递归的区别几乎必须非常简单。请翻译?

2
为什么要对结构使用typedef?
在C语言(ANSI,C99等)中,结构存在于自己的名称空间中。链表的结构可能看起来像这样: struct my_buffer_type { struct my_buffer_type * next; struct my_buffer_type * prev; void * data; }; 然而,对于大多数C程序员来说,自动对这些结构进行如下类型的定义似乎是很自然的: typedef struct tag_buffer_type { struct tag_buffer_type * next; struct tag_buffer_type * prev; void * data; } my_buffer_type; 然后像普通类型一样引用该结构,即get_next_element(my_buffer_type * ptr)。 现在我的问题是:是否有特定原因? 维基百科说http://en.wikipedia.org/wiki/Typedef#Usage_concerns 有些人反对typedef的广泛使用。大多数参数都以typedef仅隐藏变量的实际数据类型为中心。例如,Linux内核黑客和文档编制者Greg Kroah-Hartman阻止将它们用于除函数原型声明以外的任何内容。他认为这种做法不仅不必要地混淆了代码,而且还可能导致程序员意外地滥用大型结构,认为它们是简单的类型。[4] 其他人则认为,使用typedef可以使代码更易于维护。K&R指出使用typedef有两个原因。首先,它提供了使程序更具可移植性的方法。不必更改在程序源文件中出现的所有类型的类型,只需更改单个typedef语句即可。其次,typedef可以使复杂的声明更易于理解。 我个人想知道,使用单独的struct命名空间是否有时没有使用类型定义的结构没有足够的好处,并且由于周围存在着几种C编程文化(我的经验是Windows C编程与Linux C编程有着不同的传统),如果还有其他我不了解的传统。 然后,我对历史考量(C的前身,第一个版本)感兴趣。

2
记录编程语言:参考手册
我们正在寻找整个产品线的文档更新。的那部分包括参考手册用于编程语言用作系统的一部分。 在编写用于编程语言的参考手册时,为使该语言的新手拥有最大的可用性,最好的构造方法是什么? 记录每个关键字的关键方面是什么? 句法 描述 参数-如果适用 返回值-如果适用 用法示例? 还有其他我想念的吗? 概念(例如锁定策略,与性能相关的详细信息)是否也应在本参考手册中进行记录,或者是单独的文档? 这是供外部消费。我们已经有完整的文档集(请参阅:http : //www.rocketsoftware.com/u2/resources/technical-resources)。制定出我们应该做的事情与众不同-我已经有了我的想法,但是和往常一样,我尽量不要仅仅依靠我的观点。 受众:技术开发人员使用我们的数据库和工具来跨许多行业生产软件。

7
C程序员应该知道什么?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 每个体面的C程序员都应该了解/知道的一些概念/技术/语言功能(不包括通用软件工程和类似软件,仅专注于C特定的东西)。我想知道,以便我能够填补我的C知识中的某些空白。

4
什么构成一种编程语言?一种版权是一种编程语言?
我决定创建自己的编程语言,主要是为了娱乐。但是,我对这一切的法律方面感兴趣。 例如,您可以根据特定条款许可特定程序。但是,您如何许可语言?另外,我所指的不仅仅是语言(编译器和VM)的实现,而是标准本身。我所缺少的编程语言还有其他东西吗? 我想通过这种许可实现以下目标: 使其完全成为FOSS(一种语言甚至可以是FOSS,还是该实现可以是FOSS?) 建立自己作为作者的身份(您可以合法地成为语言的作者吗?还是仅仅是实现?) 做到这一点,以便要求使用我的语言的任何人都应将我归于我(MIT风格。请注意,尽管我只是在学习,但我对任何实际做到这一点的人都没有希望。) 我认为解决方案将是分别将我的语言的VM和编译器许可为“官方实现”,然后将设计文档许可为该语言本身。 我在这里到底想念什么?

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.