Questions tagged «languages»

根据维基百科,语言是获取和使用复杂的通信系统的人的能力,而语言是这种系统的任何特定示例。语言的科学研究称为语言学。

6
为什么XML确切地称为“语言”?
我一直想知道为什么XML的名称为L。 XML本身不执行任何操作。它只是一种数据存储格式,而不是一种语言!语言“做”事情。 使XML“完成”工作(将其转变为某种语言)的方法是xmlns在其根元素中添加属性。只有这样,它才能告诉环境它的含义。 一个示例是XHTML。它是活动的,具有链接,超文本,样式等,均由触发xmlns。否则,XHTML文件只是标记节点中的一堆数据。 那么为什么XML被称为语言呢?它什么也没描述,什么也没解释,只是。 编辑:也许我的问题应该更广泛。由于当前的答案是“因为XML是以SGML命名的,而XML是以GML的命名的,等等”,所以问题应该是,为什么标记语言(如XML)被称为语言? 哦,还有WRT的近票:不,我不是在问X。我是在问L!


8
如何编写可以从(几乎)任何编程语言调用的一组函数?
我想找到一种编写可以通过语言绑定(或其他框架)从任何其他编程语言访问的API的方法。是否有可能做到这一点?如果是这样,哪种编程语言最适合编写“跨语言” API?我的目标是创建可以从正在使用的任何编程语言中访问的一组函数,这样就无需手动以每种语言重新编写整个API。
33 api  languages  binding 

13
语言不区分大小写的关键字[关闭]
我们正在尝试编写自定义脚本语言。有人建议通过提供不区分大小写的关键字来使语言宽容。 我个人不喜欢这个主意,但是我的团队中很少有人倾向于这个主意,说它将使最终用户满意!给出了诸如FORTRAN,BASIC,SQL之类的语言示例,称它们不区分大小写。 这是一个好主意吗?

3
动态语言有真正的优势吗?[关闭]
首先,我想说Java是我曾经使用过的唯一语言,所以请原谅我对此主题的无知。 动态类型的语言允许您将任何值放在任何变量中。因此,例如,您可以编写以下函数(伪代码): void makeItBark(dog){ dog.bark(); } 您可以在其中传递任何值。只要该值具有bark()方法,代码就会运行。否则,将引发运行时异常或类似情况。(如果我对此有误,请纠正我)。 貌似,这为您提供了灵活性。 但是,我阅读了一些有关动态语言的文章,人们说的是,在以动态语言设计或编写代码时,您会考虑类型并将其考虑在内,就像使用静态类型语言一样。 因此,例如,在编写makeItBark()函数时,您打算让它只接受“可能吠叫的东西”,而您仍然需要确保仅将这些东西传递给它。唯一的区别是,当您犯错时,编译器现在不会告诉您。 当然,此方法有一个优点,那就是在静态语言中,要实现“此函数接受任何可能吠叫的东西”,您需要实现一个显式Barker接口。不过,这似乎是次要的优势。 我想念什么吗?通过使用动态类型的语言,我实际上可以获得什么?

9
是否有遵循最小化开发方法的编程语言?
我发现,当语言被认为与商业软件相同时,总是不断需要添加新功能来证明新版本的合理性。 最终版本1.0是否存在或存在某些语言?当然,错误修复不受此约束,但是功能集始终保持不变吗? 这样,该语言中的每个功能都可以很好地组合在一起,并且由于向后兼容性,在过时的功能仍然存在的情况下,似乎并没有将它们固定在一起。 我假设有些学术语言是这样的吗?但是,是否有遵循该想法的商业上成功的语言?随附的库也可以免费获得新功能,但是语言始终保持不变。 我可以举一个例子,我最喜欢的一种C#语言,我经常使用它,每个发行版中都添加了越来越多的功能。要利用这些优势,我必须放弃实际的任务,花大量的时间学习这些任务,而不是掌握一些琐碎的概念并将它们自己组合起来,以轻松地解决更复杂的问题。 因此,我想我正在寻找一种最小化的方法,该方法应使所有内容保持一致,合理并尽可能正交。

6
幸存的MATLAB和R作为顽固的程序员[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我喜欢用似乎适合硬核程序员的语言进行编程。(我最喜欢的是Python和D。)MATLAB是为工程师而设计的,R是为统计学家设计的,看来这些语言是为那些不是硬核程序员并且不像硬核程序员那样思考的人设计的。我总是觉得它们使用起来有些尴尬,在某种程度上,我无法理解为什么。这是我设法确定的一些问题: (两者):在没有真正原语的情况下,极端强调向量和矩阵。 (两者):基本字符串操作的难度。 (两者):对基本数据结构(如哈希表和“实数”,即类型参数和可嵌套数组)的支持缺乏或尴尬。 (两者):即使按照解释语言标准,它们也确实非常慢,除非您向后弯腰以对代码进行矢量化处理。 (两者):它们似乎并非旨在与外界互动。例如,这两个程序都是相当庞大的程序,需要一些时间才能启动,并且似乎没有设计成使简单的文本过滤器程序易于编写。此外,缺乏良好的字符串处理能力使得文件I / O几乎不可能以任何非常标准的形式出现。 (两者):面向对象似乎具有很强的固定感觉。是的,您可以做到,但是在C语言中,它比OO更加习惯。 (两者):没有明显,简单的方法来获取引用类型。没有指针或类引用。例如,我不知道您如何使用这两种语言滚动自己的链接列表。 (MATLAB):您不能将多个顶级函数放在一个文件中,因此建议使用很长的函数并进行剪切和粘贴编码。 (MATLAB):整数显然不存在为一流的类型。 (R):基本的内置数据结构似乎太高级了,文档却很少,并且鉴于我在类似但较低级别的数据结构上的经验,似乎从未达到我期望的效果。 (R):该文档散布在各处,几乎无法浏览或搜索。就我所知,即使D通常因不良的文档而被淘汰,但仍然相当残破。 (R):至少据我所知,没有好的IDE。同样,即使是D,这是一个社区规模较小的相当Alpha的语言,其效果也更好。 总的来说,如果存在足够全面的库,我还希望可以用通用语言将普通的旧库轻松替换为MATLAB和R。在更新的通用语言中尤其如此,其中包括许多面向库作者的功能。 为什么R和MATLAB在我看来如此奇怪?您是否注意到其他任何主要问题,可能会使这些语言对铁杆程序员变得陌生?当需要使用它们时,有哪些好的生存技巧? 编辑:从我得到的一些答案中我看到一个问题。当我分析数据时,我强烈希望拥有一个包含整个管道的脚本。这意味着需要使用通用语言。我讨厌不得不编写一个脚本来“清理”数据并将其吐出,然后再编写一个脚本以在完全不同的环境中将其读回,等等。我发现在某些工作中使用MATLAB / R和一个完全不同的语言具有完全不同的地址空间和思维方式,其他语言将成为巨大的摩擦源。此外,我知道存在胶合层,但是它们似乎总是非常复杂并且是摩擦的根源。
25 languages  r  matlab 

8
哪种非理论,实用的编程语言没有保留关键字?
我一直在寻找一种没有保留关键字的实用编程语言,但没有运气。 我正在为自己的娱乐和娱乐而设计一种编程语言,现在还不需要添加任何关键字,这就是导致我进行搜索和提出问题的原因: 我认为对于语言的最终用户而言,给编译器编写者带来便利并不重要。如今,计算机已经足够强大,可以从上下文中推断出含义。作家在写小说时只需要标记名词,动词等,为什么程序员必须用function x() {}or set x = 1或var x = 1etc 标记函数和变量?我何时可以从语句的上下文中推断出它是函数声明或调用,还是标签是对值的赋值或对该标签值的引用? 这是我当前的解析器正在做的事情的一个具体示例,不需要保留的关键字来支持通常会产生一些杂音的常见事物,例如funcor functionor decor not。 功能声明 sum3(a,b,c) -> a + b + c. 功能调用 x = sum3(1,2,3). 名为x的匿名函数 x = (a,b,c) -> a + b + c. y = x(1,2,3). 我想知道为什么关键字对成功的编程语言如此重要?
22 theory  languages 

7
是应该学习一种新语言,还是应该只专注于您已经知道的语言并增加其知识?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 哪种方法更有益和更有成效?


8
什么构成了无效的编程语言?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 想象一下,您当选为IEEE或类似机构的死因裁判官,而您不得不说一种编程语言已经死了。您会寻找什么迹象?是否有不知道它们已经死了的僵尸语言?
18 languages 

6
此时,Java的公共领域是否只是一个悲剧的历史设计缺陷?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 在这一点上,Java似乎是正统的,基本上不应将公共字段用于对象状态。(我不一定同意,但这与我的问题无关。)考虑到这一点,可以说从今天开始的今天,很显然Java的公共领域是语言设计的错误/缺陷?还是有一个合理的论据,即使在今天,它们仍然是语言的有用和重要的一部分? 谢谢! 更新:我知道更优雅的方法,例如C#,Python,Groovy等。我不是直接在寻找这些示例。我真的只是想知道是否还有人在掩体深处,喃喃地谈论着真正的公共场所有多美妙,群众如何全都是羊,等等。 更新2:显然,静态的最终公共字段是创建公共常量的标准方法。我指的是将公共字段用于对象状态(甚至是不可变状态)。我认为应该将公共字段用作常量而不是状态,这似乎是一种设计缺陷,一种语言的规则应自然而然地通过语法而不是准则来强制执行。

4
当您不知道某物如何实际工作时,该如何编码?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 2年前关闭。 我最近学习了C,并且想启动一个项目来巩固我的知识。我决定制作一个非常简单的文本编辑器,例如vim。我面临的问题是,我真的不知道文本编辑器的工作原理,也不知道可以从谷歌那里学到什么。 对其进行谷歌搜索导致了vim的GitHub回购,这对我来说毫无用处,因为代码库很大而且代码使我感到困惑。我还找到了使用C制作文本编辑器的教程,其功能类似于vim。 尽管我考虑过学习这些教程,但感觉却像在作弊。vim开发人员如何在没有特定教程的情况下弄清楚如何编码vim?还是从更简单的文本编辑器开始?他们如何仅从语言知识及其文档中找出答案? 在不直接遵循教程的情况下开始编写此文本编辑器到底需要什么?我想想到的另一个示例是:Dennis Ritchie和Ken Thompson如何编写Unix的代码?我对OS的功能有所了解,但对如何将其放入代码中一无所知。我想念的是什么?如何将这种语言知识转化为实际的实际使用?
14 c  languages 

2
为什么C#比Java具有更多的功能?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 请注意,这并不意味着是Java vs. C#参数。我是一位没有C#经验的Java程序员,出于好奇而问。 我在C#上做了一些阅读,似乎它比Java具有更多的功能。一些例子: 类型推断。 dynamic 关键词。 代表们 可选参数。 Lambda和LINQ (我实际上不知道它们是什么)。 属性。 但是,Java实际上没有C#所没有的任何功能。 我的问题是:为什么C#比Java具有更多的本机功能?为何Java多年来一直没有添加其中的某些内容,例如Properties或type Inference?Java语言设计人员是否采用更简单的方法?这是什么原因呢?
14 java  c#  languages 

1
java.util软件包中用于堆栈的对象约束语言(OCL)
我即将参加考试,并且正在查看过去的论文,以期获得一些期望的想法。我对以下内容有些困惑,如果有人可以给出示例答案,我将不胜感激。 在OCL中为以下每个操作(包括在java.util包的Stack类中)写入前置条件和后置条件: (1)布尔型empty()-测试此堆栈是否为空 (2)E peek()-在不从堆栈中移除的情况下,查看此堆栈顶部的对象 (3)E pop()-删除此堆栈顶部的对象,并将该对象作为此操作的值返回 (4)E push(E item)-将一个项目推到此堆栈的顶部 这里E表示堆栈中元素的类型。 我的尝试如下: Boolean empty() pre: none post: self -> IsEmpty() = true //should this be result -> IsEmpty() = true because it returns a boolean value? E peek() pre: self -> NotEmpty() = true post: result = ??? // I …
10 design  languages  object  ocl 

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.