Questions tagged «programming-languages»

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

16
年轻人需要学习指针概念吗?
为什么C大师Dennis Ritchie会在C中引入指针?以及为什么其他编程语言(例如VB.NET或Java或C#)消除了它们?我在Google中找到了一些要点,我也想听听您的评论。他们为什么要消除现代语言中的指针概念? 人们说C是基本语言,而指针是使C强大而又出众且使C仍能与更多现代语言竞争的概念。那么为什么他们要用更现代的语言消除指针呢? 您认为指针知识对于新程序员仍然重要吗?如今,人们正在使用VB.NET或Java,它们支持比C更高级的功能(并且不使用任何指针概念),而我现在看到的许多人(我的朋友)选择这些语言而忽略了C,因为它们支持高级功能。我告诉他们以C开头。他们说,当您在VB.NET或Java中进行高级的操作(在C中无法实现)时,学习指针的概念很浪费。 你怎么看? 更新时间: 我在Google上读到的评论是: 较早的计算机速度太慢且未优化。 使用指针可以直接访问地址,这样可以节省时间,而不是在函数调用中复制它。 使用指针的安全性要差得多,这就是Java和C#不包含指针的原因。 这些以及更多我发现的东西。我仍然需要一些有价值的答案。这将不胜感激。

30
您想在PHP中拥有哪些功能?[关闭]
既然现在是假期,每个人都在许愿,我想知道-您希望PHP将添加哪些语言功能?我对这种语言的一些实用建议/希望很感兴趣。实际上,我的意思是: 可以实际完成的操作(不是:“我希望PHP猜出我的代码的含义并为我修复错误”或“我希望任何代码都可以在5毫秒内执行”) 不需要将PHP更改为另一种语言的东西(不是:“我希望他们放弃$符号并使用空格而不是花括号”或“我希望PHP被编译,静态键入并以#命名”) 不需要破坏所有现有代码的东西(不是:“让我们重命名500个函数并更改它们的参数顺序”) 东西不改变语言或它的一些有趣的方面(不是:“我希望有扩展XYZ协议,支持”或“我想了bug#12345终于固定”) 不仅仅是喧嚣的东西(不是:“我希望PHP不会糟透了”) 有人有美好的祝愿吗? 国防部编辑:Stanislav Malyshev是一名核心PHP开发人员。


4
命令式,过程式和结构化编程之间有什么区别?
通过研究(书籍,维基百科,关于SE的类似问题等),我了解到命令式编程是主要的编程范例之一,您在其中描述了一系列要由计算机执行的命令(或语句)(因此,要求其采取特定措施,因此命名为“命令性”)。到现在为止还挺好。 另一方面,过程式编程是命令式编程的一种特定类型(或子集),您可以在其中使用过程(即函数)来描述计算机应执行的命令。 第一个问题:是否有一种非过程式命令式编程语言?换句话说,没有程序就可以进行命令式编程吗? 更新:第一个问题似乎已得到解答。语言可以是必不可少的,而无需程序化或结构化。一个示例是纯汇编语言。 然后还有结构化编程,这似乎是命令式编程的另一种类型(或子集),它的出现是为了消除对GOTO语句的依赖。 第二个问题:过程式编程和结构化编程有什么区别?您能否拥有一个没有另一个,反之亦然?我们可以说过程编程是结构化编程的一个子集吗?

6
为什么Python如此流行?[关闭]
Python于1991年首次出现,但直到TIOBE排名将有意义的事情量化之后,它才在2004年之前还不为人所知。 发生了什么?是什么引起了对这种13岁语言的兴趣的泛滥?是有原因的,在Python诞生的第一个十年里,Python就没有被认为是Perl的真正竞争对手吗?难道有一个原因是Python再过十年没有再变得相对默默无闻吗? 我个人认为Python是一种非常不错的语言,很高兴我不是唯一的一种。但是它没有企业支持或杀手级功能,无法解释相关性的突然上升。 有人知道这个故事吗?

11
如何确保我实际上在学习编程而不是简单地学习语言的细节?[关闭]
我经常听到一个真正的程序员可以在一周内轻松学习任何语言。有人告诉我,语言只是完成任务的工具。编程是必须学习和掌握的最终技能。 如何确保我实际上在学习编程而不是简单地学习语言的细节?以及我如何开发可应用于所有语言而不仅仅是一种语言的编程技能?

13
OOP中的对象是否必须代表实体?
对象是否必须代表实体? 由一个实体我的意思是这样一个Product,Motor中,ParkingLot等,物理,或甚至一个明确的非物理概念对象-这被很好地定义,其中一些核心数据清楚地属于对象的东西,以及一些功能/方法显然对核心数据起作用。 例如,我可以有一个对象,Demon它本身是一个实体,一个虚构的对象,也许不是物理的,但仍然是一个实体 一个对象可以仅仅是方法的集合,一组与一个共同目标相联系的通用过程吗? 示例:可以在没有实体的情况下调用MotorOperations或的类MotorActions,但是该类内部的方法可以执行以下操作 getMotorDataFromHTMLForm() getMotorManufacturers() selectMotorFromUserRequirements($ requirements) canMotorCanHandleOperatingConditions($ conditions) computePowerConsumptionForMotor($ id) 通常将类定义为对象的中心数据+数据操作。因此,Motor对于可能存在一些与电动机规格有关的电动机变量,并且可能存在将这些数据组合以产生某些结果的操作。 就我而言,这更像是我有一个对数据+ 通过该类传递数据的操作的类,除了临时传递类数据之外,没有任何以“ Motor Operations”为中心的数据。 题 类可以表示无实体的对象吗?如果不是,为什么它们不好/不完整/不以OOP为中心?有什么方法需要在概念上进行更改/改进以符合OOP?

11
当您获得经验时,总体而言,编程是否变得更容易阅读,编写和理解?[关闭]
我是编程的新手,我一直在读书,学习,阅读文章等等。自从开始学习编程以来,我取得了不错的成绩,当我还是一个初学者时,我曾经以为自己对编程有所了解,但是随着我学到更多,我意识到了该领域的困难(实际上所有领域都很困难,但这不是重点)。 如今,我已经编写了功能软件,并且学习了3种语言的BASICS,并且我只是一种语言的中级。当我查看MYSQL,OpenGL编程甚至Visual Studio C ++代码之类的高级内容时,它会让我头疼,甚至在可视化许多网站的HTML源代码时(Google chrome看到的网站上的大多数源代码看起来也很凌乱和无组织。 )这让我很困惑。乍一看似乎很简单,但是当看这些高级的东西时,我只是想知道如何学习到很多东西。 简而言之,问题是,随着程序员的职业发展,这些事情是否对他们而言变得更加清晰。随着学习的深入,上面列出的复杂主题(OpenGL,MySQL,高级html站点)是否变得更易于阅读,编写和理解,或者随着学习的进行变得更加复杂?您如何克服这种感觉,即您是编程世界中的蚂蚁,而这玩意儿正在压垮您呢?


7
什么是早晚绑定?
我不断听到有关早期和晚期绑定的信息,但我不了解它们是什么。我发现以下我不理解的解释: 早期绑定是指在设计时将值分配给变量,而后期绑定是指在运行时将值分配给变量。 有人可以定义两种绑定类型并进行比较吗?

5
是Python解释还是编译?
这只是我在阅读有关解释和编译语言时的一个奇迹。 Ruby无疑是一种解释型语言,因为源代码在执行时由解释器处理。 相反,C是一种编译语言,因为必须先根据机器编译源代码,然后再执行。这样可以更快地执行。 现在开始使用Python: 导入时,Python代码(somefile.py)在同一目录中创建文件(somefile.pyc)。让我们说导入是在python shell或django模块中完成的。导入后,我稍稍更改了代码,然后再次执行导入的功能,以发现它仍在运行旧代码。这表明* .pyc文件是类似于编译C文件后创建的可执行文件的已编译python文件,尽管我无法直接执行* .pyc文件。 当直接执行python文件(somefile.py)(./somefile.py或python somefile.py)时,不会创建.pyc文件,并且按指示解释行为的方式执行代码。 这些建议每次在新过程中导入python代码时都会编译python代码,以创建.pyc,而直接执行时会对其进行解释。 那么我应该将其视为哪种类型的语言?解释还是编译?以及它的效率与解释和编译语言相比如何? 根据Wiki的“ 解释语言”页面,它被列为编译为虚拟机代码的语言,这是什么意思?

5
项目规模和语言的严格程度之间是否存在关联?
我向我的一位同事解释了语言严格性和范式之间的区别,最后我断言: 诸如动​​态语言和解释语言之类的宽容语言最适合用于原型和小型项目或中型Web应用程序。当选择带有Node.js的优雅动态语言(例如Python或JavaScript)时,其好处是: 快速发展, 减少样板代码, 能够吸引年轻的,有创造力的程序员,他们逃离 Java之类的“企业语言”。 静态类型化/编译语言最适合要求更高严格性的应用程序,例如业务关键型应用程序或中型到大型应用程序。 数十年来发展起来的著名范例和模式, 易于进行静态检查, 能够找到许多具有数十年经验的专业开发人员。 严格的语言(例如Haskell,Ada)或技术(例如C#中的代码合同)更适合于优先考虑安全性而不是灵活性(即使Haskell可以非常灵活)的系统,例如生命攸关的系统和预计非常稳定的系统。好处是: 能够在编译时捕获尽可能多的错误, 易于进行静态检查, 易于形式证明。 但是,通过查看大型公司用于大型项目的语言和技术,看来我的主张是错误的。例如,Python已成功用于大型系统,例如YouTube或其他需要大量严格性的Google应用程序。 项目规模与应使用的语言/范例的严格程度之间是否仍然存在关联? 我忘记了要考虑的第三个因素吗? 我哪里错了?

7
这是汇编语言吗?
在我的童年时代,我曾使用MK-61 苏联计算器编程。它具有四个操作寄存器(X,Y,Z,T)和15个存储寄存器。一个程序可以有105个步骤。 我记得它有以下命令: 交换X和Y寄存器 移位寄存器(Z到T,Y到Z,X到Y) 从存储寄存器(1..15)复制到X 从X复制到存储寄存器(1..15) 如果X <0,则转到程序步骤## 使用X和Y值执行运算(+,-,*,/)并将结果放入X 该命令设置了汇编语言吗?使用此设备是否对汇编语言有基本了解? 事实证明,这就是所谓的“按键编程”。 有趣的事实:1988年,类似的计算器(像这样的计算器,但具有与能量无关的内存)被用作太空任务轨迹计算的备用硬件。:-)

9
第一批编译器是如何制作的?
我总是对此感到疑惑,也许我需要一门关于编程语言的良好历史课程。但是,由于当今大多数编译器都是用C编写的,那么最早的编译器是如何编写的(在C之前是AKA),或者是所有语言都只是被解释了? 话虽这么说,我还是什至不了解第一种汇编语言是如何完成的,我理解什么是汇编语言,但是我看不到他们如何使非常第一的汇编语言起作用(例如,他们是如何使第一命令(如mov R21)或w / e设置为等效的二进制代码?

19
除了它的预定用途以外,是否有任何一种语言因其流行而广受欢迎?
采取这种情况: 程序员创建一种语言来解决某些问题。 然后,他发布了这种语言,以帮助其他人解决类似的问题。 另一个程序员发现,对于某些不同类别的问题,它实际上要好得多。 借助于此新应用程序,该语言随后主要在该应用程序中流行。 是否真的有这种情况发生? 换句话说,语言的预期目的是否与语言的实际使用方式或语言是否流行有关?语言具有广告目的甚至重要吗?

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.