T2Script Programming Language
事件驱动编程在现代计算机科学的许多领域都有应用。在事件驱动的程序设计语言中,用户通过触发事件与程序交互。我们提出了一种新的方法,我们表示命令事件驱动的编程中,用户通过事件和命令与程序进行交互。我们描述了一种新的程序设计语言,T2脚本,这是基于命令事件驱动的范例。T2Script已经在一个工业产品中实现并使用。我们描述了新的T2Script语言的原理,基本概念和先进的编程技术。我们评估新的语言,并显示它的优点和局限性。
2011-01-28 cs.PL
On the extreme power of nonstandard programming languages
Suenaga和Hasuo介绍了一种非标准的程序设计语言${\bf While}^{\bf dt}$,它可以模拟混合系统。我们证明了为什么${\bf While}^{\bf dt}$是不适合建模的实际计算。
2018-11-18 cs.PL
A Linear Logic Programming Language for Concurrent Programming over Graph Structures
我们已经设计了一种新的逻辑程序设计语言称为LM(线性融合)编程基于图形的算法在声明式的方式。我们的语言是基于线性逻辑,一个表达逻辑系统,逻辑事实可以消费。因为LM集成了经典逻辑和线性逻辑,所以LM比其他逻辑程序设计语言更有表现力。LM程序自然是并发的,因为事实是由图数据结构的节点划分的。计算在节点级别执行,而通信发生在连接的节点之间。在本文中,我们提出了我们的语言的语法和操作语义,并说明其使用通过一些例子。
2014-05-14 cs.PL
The Comprehensive Blub Archive Network: Towards Design Principals for Open Source Programming Language Repositories
许多流行的开源编程语言(例如Perl、Ruby或Python)都有用于分发打包源代码的系统,软件开发人员在使用该特定程序设计语言时可以使用这些系统。本文将考虑设计这样一个开源代码库时应遵循的设计原则。
2021-04-01 cs.PL
Revisiting Language Support for Generic Programming: When Genericity Is a Core Design Goal
内容:Stepanov定义的泛型编程是一种通过只考虑底层数据类型和操作的必要属性来编写高效和可重用算法的方法。泛型编程已被证明是一种有效的手段,构建可重用的软件组件库的语言,支持它。泛型相关的语言设计的选择发挥了重要作用,如何有利于泛型编程在实践中。询价:几种主流的程序设计语言(如Java和C++)最初都是在没有泛型的情况下创建的;后来逐渐添加了支持泛型编程的特性。因此,关于支持泛型编程的现有文献大多侧重于将泛型编程改造为现有语言,并确定相关的实施挑战。当使用为泛型编程而设计的语言进行编程时,编程体验是否明显更好,或者是否与以前的语言设计选择不同?方法:我们研究Magnolia,一种旨在体现泛型编程的语言。Magnolia是一种基于代数规范的语言设计方法的代表。我们重复了一个著名的实验,通过实现Boost Graph Library的一个子集来仔细检查Magnolia的泛型编程工具,并反思我们的开发经验。知识:我们发现,在以前的研究和工作的主题确定为支持Stepanov风格的泛型编程的关键功能的习惯用法没有告诉一个完整的故事。我们澄清了它们中的哪一个更像是达到目的的手段,而不是支持泛型编程的基本功能。基于Magnolia的开发经验,我们将变元确定为泛型编程的一个附加关键特性,并指出属性泛型的局限性和挑战。接地:我们的工作使用文献中用于评估语言通用编程功能的众所周知的框架来评估Mag…
2022-11-03 cs.PL
Comparative Studies of 10 Programming Languages within 10 Diverse Criteria - a Team 10 COMP6411-S10 Term Report
这是一个关于程序设计语言的调查:C++,JavaScript,ANOJ,C#,Haskell,Java,PHP,Scala,Scheme和JavaScript。我们的调查工作涉及这十种程序设计语言的比较研究,以下标准:安全编程实践,Web应用程序开发,Web服务组合,基于OOP的抽象,反射,面向方面,函数式编程,声明式编程,批处理脚本和UI原型。我们在上述标准的背景下研究这些语言,以及它们为每个语言提供的支持水平。
2010-08-20 cs.PL
User-Centered Programming Language Design: A Course-Based Case Study
近来,已经提出了以用户为中心的方法来改进程序设计语言的设计。为了探索这些方法可能对新手程序设计语言设计师有什么好处,我们教了一个以用户为中心的程序设计语言设计方法的集合,一组8名学生。我们观察到,自然编程和可用性研究帮助学生完善他们的语言设计,并确定改进的机会,即使在课程项目的时间很短。
2020-11-15 cs.PL
MyProLang - My Programming Language: A Template-Driven Automatic Natural Programming Language
现代计算机程序设计语言由复杂的语法规则支配。它们与自然语言不同;它们需要大量的手工工作和大量的学习和实践,个人才能熟练并编写正确的程序。计算机编程是一门困难、复杂、不熟悉、非自动化的学科,对每个人来说都是一门具有挑战性的学科,特别是对学生、新程序员和最终用户来说。本文提出了一种新的程序设计语言和一种基于源代码生成的计算机应用程序编写环境。它主要是一种模板驱动的自动自然命令式程序设计语言,称为MyProLang。它利用GUI模板生成专有的自然语言源代码,而不是让计算机程序员手动编写代码。MyProLang是五个元素的混合。专有的自然程序设计语言,具有简单的语法规则和表达语法;自动化模板,自动生成指令,从而最大限度地减少学习和培训时间; NLG引擎,生成自然指令;源到源编译器,分析,解析和构建可执行文件;以及人体工程学IDE,包含各种功能,其作用是简化软件开发过程。MyProLang希望让编程对所有人开放,包括学生、程序员和最终用户。从这个意义上说,任何人都可以开始系统地编程,以自动化的方式和自然语言;而不必浪费时间学习如何制定指令和安排表达式,而不必忍受不熟悉的结构和符号,也不必为语法错误而烦恼。从长远来看,这提高了软件开发的生产力、质量和上市时间。
2012-04-01 cs.PL
Comparing Selected Criteria of Programming Languages Java, PHP, C++, Perl, Haskell, AspectJ, Ruby, COBOL, Bash Scripts and Scheme Revision 1.0 - a Team CPLgroup COMP6411-S10 Term Report
比较程序设计语言是软件工程师讨论的一个常见话题。很少有语言变得足够流行,以至于只有少数人使用它们,或者在研究或教育中找到自己的位置;但是专业程序员在他们的职业生涯中可以轻松使用几十种不同的语言。为了跟上不断变化的编程范式、硬件发展等,每年都会设计、指定和实现多种程序设计语言。在本文中,我们对以下十种程序设计语言进行了比较研究:Haskell、Java、Perl、C++、Auscel J、COBOL、Ruby、PHP、Bash编程语言和Scheme。安全编程实践、Web应用程序开发、Web服务设计和组合、基于面向对象的抽象、反射、面向方面、函数式编程、声明式编程、批处理脚本和用户界面原型设计。
2010-08-20 cs.PL
Probabilistic Programming Concepts
现今存在大量不同的概率程序设计语言,它们都用原语扩展了传统的程序设计语言,以支持复杂的结构化概率分布的建模。这些语言中的每一种都使用自己的概率原语,并具有特定的语法,语义和推理过程。这使得很难理解底层的编程概念,也很难理解不同语言之间的差异。为了更好地理解概率编程,我们确定了一些核心的编程概念的基础上使用的各种概率语言的原语,讨论了执行机制,他们需要和使用这些定位国家的最先进的概率语言及其实现。在这样做的同时,我们专注于逻辑程序设计语言,如Prolog,这已经开发了20多年的概率扩展。
2013-12-16 cs.PL
Language Interoperability in Control Network Programming
控制网络编程(CNP)是一种编程范式,它被描述为“原语+控制网络=控制网络程序”。它是一种图形编程。控制网络是一个递归的图形系统;它可以是一个纯粹的描述规范的问题正在解决。显然,“绘制”控制网络不包括任何编程。基本动作是基本的、容易理解的、明确规定的动作。最终,他们必须被编程。从历史上看,它们通常用Free Pascal编码。原语的实际代码从来没有被认为是重要的。“算法”的本质是由它的控制网络来表示的。CNP一直是软件应用程序开发的一种简单快速的方法,实际上只涉及很少的实际编程。语言互操作性(在同一个软件项目中使用不同的语言)是软件开发中的一个突出趋势。这在CNP中比在其他编程范例中更重要、更自然。在这里,互操作性实际上意味着可以使用以各种程序设计语言编写的原语。当前的报告描述了我们使用多语言原语集创建应用程序的第一步。大多数流行和有趣的程序设计语言都已经解决了:Python,Java和C。我们将展示如何使用这些“非本机”语言编写的原语创建应用程序。我们考虑同时使用所有这四种程序设计语言中的原语(多语言CNP)的示例。我们还讨论了无编程的CNP编程(无语言CNP)。
2018-08-28 cs.PL
AIOS Compiler: LLM as Interpreter for Natural Language Programming and Flow Programming of AI Agents
Rutgers University(罗格斯大学)
本文提出CoRE系统,利用LLM作为解释器,统一自然语言、伪代码和流程编程,构建语言智能体,并引入外部记忆和工具调用以增强执行能力。
2024-05-21 cs.AI cs.CL cs.LG
Semantics of Programming Languages: A Tool-Oriented Approach
通过更加关注基于语义的工具生成,程序设计语言语义可以显著增加其影响。最终,这可能会导致“语言设计助手”包含大量的语义知识。
1999-11-26 cs.PL
Proceedings 14th International Workshop Quantitative Aspects of Programming Languages and Systems
本卷包含第14届程序设计语言和系统(QAPL)定量方面国际研讨会的后续会议记录,该研讨会于2016年4月2日至3日在荷兰埃因霍温举行,是ETAPS 2016的卫星研讨会。
2016-10-25 cs.PL
Deep Probabilistic Programming Languages: A Qualitative Study
IBM Research(IBM研究公司/IBM研究(注:IBM Research通常译为IBM研究,属于企业研究机构,按要求提取到公司级别))
深度概率程序设计语言试图将深度学习的优势与概率程序设计语言的优势结合起来。如果成功,这将是机器学习和程序设计语言的一大步。不幸的是,到目前为止,这种新的语言很难使用和理解。本文通过解释深度概率程序设计语言直接解决了这个问题,并通过描述其当前的优势和劣势间接解决了这个问题。
2018-04-17 cs.AI cs.PL
On GitHub's Programming Languages
GitHub是使用最广泛的社交、分布式版本控制系统。它拥有约1000万注册用户,托管超过1600万个公共存储库。它的用户群也非常活跃,因为GitHub在Alexa最受欢迎的100个网站中排名第一。在这项研究中,我们收集了GitHub的全部状态。这样做,使我们能够研究生态系统的新方面。虽然GitHub是数百万用户和存储库的所在地,但对用户活动时间序列的分析显示,只有大约10%的用户可以被认为是活跃的。收集的数据集使我们能够调查程序设计语言的流行程度和用户,存储库和程序设计语言之间的关系模式的存在。通过对用户-仓库提交矩阵应用k-均值聚类方法,我们发现程序设计语言的两个明确的集群与其余的分开。一个集群形式为“Web编程”语言(Java Script,Ruby,PHP,CSS),第二个集群形式为“面向系统的编程”语言(C,C++,Python)。进一步的分类,让我们可以在GitHub中建立一个程序设计语言使用的系统发育树。此外,我们更详细地研究了前1000个存储库的主要和辅助程序设计语言。我们使用各种指标(如代码行百分比和PageRank)对这些辅助程序设计语言进行排名。
2016-03-01 cs.PL
A Differential-form Pullback Programming Language for Higher-order Reverse-mode Automatic Differentiation
反向模式自动微分(AD)-反向传播的推广-可以自然地表示为差分1-形式的回调的观察,我们设计了一个简单的高阶程序设计语言与一流的微分算子,并提出了一个减少策略,它完全模拟反向模式AD。我们证明我们的减少策略,通过解释我们的语言在任何差分$λ$ -类别,满足哈恩-巴拿赫分离定理,并表明,减少策略精确地捕捉反向模式AD在一个真正的高阶设置。
2020-02-19 cs.CL cs.LO cs.PL
On the Transferability of Pre-trained Language Models for Low-Resource Programming Languages
University of British Columbia(不列颠哥伦比亚大学);Singapore Management University(新加坡管理大学);JetBrains Research(JetBrains研究院)
Ahmed和Devanbu最近的一项研究报告说,使用多语言数据集编写的代码语料库来微调多语言预训练语言模型(PLM),与使用仅用一种程序设计语言编写的代码语料库相比,可以实现更高的性能。然而,没有进行分析,就微调单语PLM。此外,某些程序设计语言本质上是不同的,并且用一种语言编写的代码通常不能与其它语言互换,即,Ruby和Java代码具有非常不同的结构。为了更好地理解单语和多语言PLM如何影响不同的程序设计语言,我们调查1)在Ruby上的PLM的性能两个流行的软件工程任务:代码摘要和代码搜索,2)策略(选择程序设计语言),以及微调多语言PLM的Ruby,和3)性能的微调PLM在Ruby上给定不同的代码长度。在这项工作中,我们分析了一百多个预先训练和微调的模型。我们的研究结果表明:1)多语言PLM具有较低的性能时间比(BLEU,METEOR,或MRR分数在微调持续时间)相比,单语PLM,2)我们提出的策略,选择目标程序设计语言微调多语言PLM是有效的:它减少了微调的时间,但在代码摘要和代码搜索任务中实现了更高的性能,以及3)我们提出的策略在不同的码长上一致地显示出良好的性能。
2022-04-05 cs.CL cs.PL cs.SE
Comparative Studies of 10 Programming Languages within 10 Diverse Criteria -- a Team 7 COMP6411-S10 Term Report
当今世界上有很多种程序设计语言,每种语言都有其优点和缺点。在本文中,我们将讨论十种程序设计语言:C++,C#,Java,Groovy,JavaScript,PHP,Scheme,Haskell和Askell J。我们从十个不同的标准对这十种语言进行了总结和比较。例如,默认更安全的编程实践,Web应用程序开发,基于OO的抽象等,最后,我们将给出我们的结论,哪些语言是合适的,哪些是不适合在某些情况下使用。我们还将提供证据和我们的分析,为什么有些语言比其他语言更好,或者在某些标准上比其他语言更有优势。
2010-09-01 cs.PL
Modelling the Evolution of Programming Languages
程序设计语言是允许指示机器和共享算法信息的工程语言;它们对社会有很大的影响,因为它们是几乎所有信息技术人工制品的基础,并且它们是当前软件技术爆炸的核心。程序设计语言的历史以创新、多样化、横向转移和社会影响为标志;此外,它代表了人类语言进化和技术进化之间的中间案例研究。在本文中,我们研究应用达尔文的解释程序设计语言的进化,通过讨论在何种程度上的生物学的进化机制,可以应用到这个领域。我们表明,一些进化的积木可以识别领域的计算机语言,但我们也确定了关键问题。这项细致的研究远非水晶般清晰,而是显示出一种有用的工具,可以评估有关程序设计语言遗传学的最新结果。最后,我们表明,丰富的进化模式,如共同进化,宏观进化趋势,生态位建设和扩展,可以有效地应用到程序设计语言,并提供有趣的解释工具。
2015-10-15 cs.PL
Design and Implementation of a Reversible Object-Oriented Programming Language
高级可逆程序设计语言很少,而且通常只提供底层机器细节的基本抽象。现代程序设计语言提供了大量的语言结构和范例,以促进抽象接口的设计,但我们目前对可逆程序设计语言的这些功能的适用性的理解非常有限。我们介绍了第一个可逆的面向对象的程序设计语言,ROOPL,支持用户定义的数据类型,类继承和子类型多态性。该语言扩展了现有可逆命令式语言的设计,并允许在可逆机器上有效实现。我们提供了一个形式化的语言语义,类型系统,我们通过实现一个可逆的图灵机模拟器证明了计算的通用性的语言。ROOPL语句是局部可逆的,不会增加程序大小或计算复杂性,并且该语言提供了对每个类方法的逆语义的直接存取。我们描述了从ROOPL到可逆汇编语言PISA的无垃圾翻译所需的技术,并提供了所述技术的完整实现。我们的研究结果表明,面向对象编程的核心语言功能进行了可逆计算领域的一些能力。
2017-07-25 cs.PL
Templet: a Markup Language for Concurrent Programming
在本文中,我们提出了一种新的方法来描述网络的相互作用的进程在传统的程序设计语言。特殊的程序设计语言或顺序语言的扩展通常被设计来表达并发执行的语义。使用C++、Java、C#和其他语言中的库是更实用的并发编程方式。然而,该方法导致人工编码的工作量增加。此外,股票编译器不能检测到这些库中的编程模型相关的语义错误。新的置标语言和基于标记代码的自动编程技术可以解决这些问题。本文提供了置标语言的详细规范,但没有讨论其实现细节。该语言用于当前和未来的多核和众核系统的编程。
2014-12-02 cs.DC cs.PL
Contents of COMP6411 Summer 2010 Final Reports on Comparative Studies of Programming Languages
本索引涵盖了加拿大蒙特利尔康考迪亚大学2010年夏季COMP6411课程的课堂笔记和期末课程项目报告,4个团队对程序设计语言的比较研究,试图比较一组通用标准及其对大约10种不同程序设计语言的适用性,其中5种语言选择由教师提供,5种由每个团队选择,每个学生单独比较10种语言中的两种,然后团队对所有语言进行总结综合。10种语言。他们的研究结果张贴在这里,以供进一步参考,比较研究和分析。
2014-04-19 cs.PL
Imprompt: A Language Framework for Prompt Programming
该研究针对现有提示编程框架的问题,提出Imprompt语言框架。通过基础研究、结构化提示阐释、定义编译器、探索类型化概念等方法,实现编译器和类型检查器并评估,为提示编程领域贡献编程语言基础。
2026-11-04 cs.AI cs.CL cs.PL
Multi-Lingual Development & Programming Languages Interoperability: An Empirical Study
本研究基于GitHub和Stack Overflow大规模数据集,实证分析了多语言开发实践与进程内编程语言互操作性,发现C语言是互操作核心支柱,并提出了简单互操作性指南,为未来工具开发奠定基础。
2024-11-13 cs.PL
A Metamodel of Unit Testing for Object-Oriented Programming Languages
单元测试是一种用于验证程序的一部分的准确性和正确功能的方法。这项工作包括研究的关系和方法来测试面向对象的编程(OOP)程序,并提出了一个元模型,使程序员编写测试,同时编写源代码进行测试,利用OOP程序设计语言的关键功能,如继承,多态性等。
2009-12-18 cs.PL
Minuska: Towards a Formally Verified Programming Language Framework
本文提出形式化编程语言框架 Minuska,通过 MinusLang 定义语言并在 Coq 中实现和验证参数化解释器,从而为生成的语言工具提供可证明正确性保证。
2024-09-17 cs.PL
Extensibility in Programming Languages: An overview
本文通过文献综述概述编程语言可扩展性,识别宏、模块、类型和反射等关键主题及跨主题属性,旨在激励未来语言设计者批判性考虑可扩展性。
2025-10-15 cs.PL
Design and Implementation of Probabilistic Programming Language Anglican
Anglican是一个概率编程系统,旨在与Clojure和其他JVM语言互操作。我们介绍了程序设计语言英国,概述了我们的设计选择,并深入讨论了英国的语言和运行时,包括基于宏的编译,扩展的CPS为基础的评估模型,概率范式,如分布,随机过程和推理算法的功能表示的实现。我们表明,概率函数语言可以有效地实现,并与传统的函数语言紧密集成,只有适度的计算开销。我们还展示了如何先进的概率建模概念自然映射到功能的基础。
2016-11-30 cs.PL
Replacing ANSI C with other modern programming languages
用其他现代程序设计语言(如Python或Java)取代ANSI C语言可能是技术大学的一个实际辩论话题。那些主要兴趣不在编程领域的研究人员似乎更喜欢现代和更高级的语言。保持标准语言ANSI C作为工程师和微控制器编程、机器人和数据采集课程的主要工具是另一个强烈的不同意见趋势。面向函数和面向对象的语言可能是实际争论中的另一个突出话题。
2014-12-18 cs.CY cs.PL
The role of concurrency in an evolutionary view of programming abstractions
在本文中,我们研究如何并发已体现在主流程序设计语言。特别是,我们依靠从生物学中借来的进化论来讨论塑造程序设计语言发展的主要历史里程碑和关键概念。我们研究了一般的开发过程,偶尔深入到一些语言,试图揭示与特定编程特征相关的进化谱系。我们主要关注并发性,讨论了当今并发编程中涉及的不同抽象层次,并强调了它们对应于不同层次的解释。然后,我们评论理论研究的作用,寻求合适的编程抽象,回顾改变工作框架的重要性和寻找的方式,每隔一段时间。这篇文章并不打算对现代主流程序设计语言进行综述:从这个意义上说,它是非常不完整的。相反,它的目的是指出一些评论,并在进化的角度下将它们联系起来,以便掌握一个统一的,但不是简单化的程序设计语言开发过程的观点。
2015-07-28 cs.PL
C++ programming language for an abstract massively parallel SIMD architecture
这项工作的目的是定义和实现一个扩展的C++语言,以支持SIMD编程范式。C++程序设计语言已被扩展以表达由中央控制处理器和N维环形数字处理器阵列组成的抽象SIMD机的所有潜力。很少有扩展被添加到标准C++中,目的是最大限度地减少程序员学习新语言的努力,并保持编译代码的高性能。所提出的语言已实现为一个移植的GNU C++编译器上的SIMD超级计算机。
2000-05-19 cs.PL
Comparative Studies of Programming Languages; Course Lecture Notes
程序设计语言课程比较研究的讲义,COMP6411,在加拿大魁北克蒙特利尔康考迪亚大学工程与计算机科学学院计算机科学与软件工程系授课。这些笔记包括一本汇编的书,主要是来自维基百科、自由百科全书、比较程序设计语言一书和其他资源(包括我们自己的)的相关文章。原始记录由Paquet博士编辑。
2010-08-04 cs.PL
A Survey of Quantum Programming Languages: History, Methods, and Tools
量子计算机编程是从量子计算、计算机科学、数学(特别是量子逻辑、lambda演算和线性逻辑)的多学科研究中出现的一个新的学科领域,并且工程试图构建第一台非平凡的量子计算机。本文简要回顾了大约在2007年底为量子计算机编程的历史、方法和提出的工具。它的目的是提供一个广泛的,但非详尽的工作,导致目前的最先进的量子计算机编程。此外,它试图分析量子程序员所需的编程工具,使用这种分析来预测该领域的发展方向,并为量子程序设计语言工具的进一步发展提出建议。
2008-04-07 cs.PL
Proceedings 5th Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software
PLACES 2013(全称:并行和通信中心软件的程序设计语言方法)是PLACES研讨会系列的第六版。自2008年第一届PLACES加入DisCoTec之后,自2009年以来,该研讨会每年都是ETAPS的一部分,现在是ETAPS卫星活动的一部分。今年,PLACES是ETAPS 2013上参加人数最多的研讨会。开办这一系列讲习班是为了促进新的程序设计语言思想应用于为并行和通信是内在方面的系统开发软件这一日益重要的问题。这包括用于多核和众核系统、加速器和大规模分布式和/或面向服务的系统的软件。PLACES的范围包括新的程序设计语言特性、全新的程序设计语言设计、新的类型系统、新的语义方法、新的程序分析技术和新的实现机制。
2013-12-08 cs.PL
A Multilingual Python Programming Language
针对编程语言依赖英语的问题,提出基于Python的转译器UniversalPython,支持用母语编写代码,已实现乌尔都语,未来扩展多语言以降低编程门槛。
2025-10-10 cs.PL
Phoenix -- The Arabic Object-Oriented Programming Language
计算机程序是由计算机中央处理单元从计算机存储器内执行的一组电子指令。它的目的是控制计算机的功能,使其能够执行各种任务。基本上,计算机程序是由人类使用程序设计语言编写的。程序设计语言是一组语法规则和词汇,用于指导计算机程序的正确编写。在实践中,大多数现有的程序设计语言都是在讲英语的国家编写的,因此它们都使用英语来表达它们的语法和词汇。然而,许多其他程序设计语言是用非英语语言编写的,例如,中国的BASIC,中国的Python,俄罗斯的Rapira和阿拉伯的Loughaty。本文讨论了一种新的程序设计语言Phoenix的设计与实现。它是一种通用的、高级的、命令式的、面向对象的、编译的阿拉伯语程序设计语言,使用阿拉伯语作为语法和词汇。Phoenix的核心是一个编译器系统,它由六个组件组成,它们是预处理器、扫描器、解析器、语义分析器、代码生成器和链接器。所进行的实验说明了Phoenix语言的几个强大功能,包括函数、while循环和算术运算。作为未来的工作,更先进的功能,包括继承,多态性,文件处理,图形用户界面,和网络的发展。
2019-05-24 cs.PL
FMS: Functional Programming as a Modelling Language
本文介绍了功能建模系统(FMS)。该系统介绍了函数建模语言(FML),这是一个基于函数编程概念的NP完全搜索问题的建模语言。在内部,我们将FML规范转换为答案集程序以获得模型。我们给出了一个新的FML语言的一般概述,以及如何在系统中处理这种语言。我们给出了系统的一步一步的演练,指出哪些功能已经到位,以及哪些改进仍然是可能的。
2018-08-23 cs.PL
Multi-Language Probabilistic Programming
本文提出MultiPPL,一种概率多语言,实现两种概率编程语言的互操作,结合精确离散推理与近似重要性采样,支持异构概率程序的推理,并证明其可靠性。
2025-02-26 cs.PL
A Reference Interpreter for the Graph Programming Language GP 2
GP 2是一种实验性的程序设计语言,用于通过图形转换进行计算. GP 2的一个初始解释器,用函数式语言Haskell编写,提供了一个简洁和结构简单的参考实现。尽管它的简单性,解释器的性能是足够的一系列测试程序的比较调查。它还为开发更复杂的实现提供了一个平台。
2015-04-10 cs.PL
Programming Language Case Studies Can Be Deep
针对编程语言“范式巡览”课程缺乏深度的问题,本文提出将语言巡览与范式巡览分离,通过以人为中心的编程语言课程的深度案例研究,依托人文社科知识基础开展教学,提升课程深度。
2024-07-10 cs.PL
Benchmarking the Status of Default Pseudorandom Number Generators in Common Programming Languages
在计算机科学的许多领域,从神经网络到优化,对随机数的需求不断增长。因此,大多数常见的程序设计语言都提供了对伪随机数生成器的简单访问。然而,这些发电机并不都是平等的,经验验证以前已经表明一些在关键方面存在缺陷。由于程序设计语言的不断变化,我们使用大量的统计测试对各种PRNG进行了相同的经验基准测试,并发现虽然一些语言多年来已经有了显着的改进,但仍然存在默认PRNG无法提供足够随机结果的情况。
2021-09-20 cs.PL
Language Support for Declarative Future Commitments
顺序编程和工作流编程是描述计算处理的两种有用但完全不同的方法。在这两者中,顺序编程是我们教给所有程序员的,并得到程序设计语言的支持,无论是过程式的、面向对象的还是函数式的。我们将工作流作为问题分解的次要样式,用于特殊情况,如分布式或网络处理。这两种风格提供了互补的优势,但事实上,它们采用了完全不同的延续所有权模型,这妨碍了我们以一种允许在单一程序设计语言中教授和使用它们的方式将它们集成的能力。本文介绍了一种程序设计语言构造,声明性的未来承诺,允许更好地集成两者。
2011-08-23 cs.PL
A Constraint and Object Oriented Fifth Generation Programming Language and its Compiler and Runtime System
自LISP语言问世以来,第五代程序设计语言已经发展了几十年。然而,与第四代程序设计语言相比,第五代程序设计语言由于语义晦涩、问题表示严谨、推理能力有限等原因,一直没有得到广泛应用。为此,本文提出的第五代程序设计语言COOL(Constraint and Object Ordered Language)克服了以往第五代程序设计语言语义直观、处理问题条件限制严格等问题,提高了其推理能力。具体改进如下:第一,COOL支持面向过程和面向对象,便于在生产项目中应用;第二,COOL支持表达式作为函数声明和函数返回,提高了对数学公式的语言亲和力,支持将函数参数嵌入函数名字符串,使函数命名更接近自然语言。使数学问题更容易描述;第三,COOL引入了加权机制,通过累积加权加速推理过程。第四,COOL在编程中引入了正向和反向函数的概念,这样计算机就可以推断和执行具有逻辑顺序约束的问题。第五,计算机可以通过回溯算法和动态规划算法,利用正解过程推导出逆解过程,从而使计算机能够推导出具有时序约束的问题。第六,引入预执行步骤,将程序的推理和函数查询过程与执行过程分离,提高程序的执行速度。
2022-06-02 cs.PL
Interpreted Programming Language Extension for 3D Render on the Web
有一些工具可以简化程序员的2D/3D图形开发。有时,这些并不是所有需要商业许可证或基于试用的用户都可以直接访问,或者在使用它们之前需要很长的学习时间。在现代社会,发布最终程序的时间对于公司的成功至关重要,也是为了节省资金。然后,如果程序员能够使用已知的程序设计语言来处理工具以最大限度地缩短开发时间,那么他们就可以以最少的努力按时交付最终程序。这个概念是本文的目标,提供一个工具来创建3D渲染在一个熟悉的程序设计语言,以加快Web开发时间的过程。我们提出了一个扩展的解释程序设计语言与一个简单的语法在Web上显示3D图形生成一个模板,在一个众所周知的Web程序设计语言,它可以被定制和扩展。我们的建议是基于Lua程序设计语言作为程序员的输入语言,提供一个Web编辑器,解释其语法和导出模板在WebGL超过JavaScript,也得到即时输出在Web浏览器中。测试表明,我们的方法的有效性专注于编写的代码行,也得到了预期的输出使用一些计算资源。
2020-04-03 cs.PL
Context-Oriented Programming: A Programming Paradigm for Autonomic Systems
动态软件适应性是自主计算所利用的核心特性之一。然而,开发在运行时间改变其行为以适应操作条件的软件是一项具有挑战性的任务。在文献中已经提出了几种方法来解决这个问题,在不同的和互补的抽象层次:软件体系结构,中间件和编程水平。我们专注于ad-hoc程序设计语言结构可能提供的支持,以支持动态自适应行为。我们介绍了面向上下文的程序设计语言,我们提出了一个框架,该框架的位置在MAPE-K自主循环支持的范例。我们讨论了使用面向上下文的程序设计语言,而不是其他主流方法的基础上,面向动态方面的程序设计语言的优势,并提出了一个案例研究,显示如何提出的编程风格自然适合动态适应的要求。最后,我们讨论了一些已知的问题,并概述了一些开放的研究挑战。
2012-03-30 cs.PL
Can Programming Languages Boost Each Other via Instruction Tuning?
Institute of Software, Chinese Academy of Science(中国科学院软件研究所);Peking University(北京大学);Huawei Co., Ltd.(华为技术有限公司)
本研究通过指令微调实验,发现编程语言间可相互促进,如Python训练的模型提升Java的pass@1达17.95%,HTML训练模型提升Java达15.24%,并公开了训练数据。
2023-09-03 cs.AI cs.CL cs.PL
@C -- augmented version of C programming language
介绍了C程序设计语言的扩充版本。该语言是由一系列低级和高级设施完成的,以扩大语言的使用范围,以适应各种计算系统、操作和用户。通过类似于其他基于C语法的语言的情况下使用的解释和管理来管理有问题的和未定义的语言元素,解决了歧义和不一致。所提出的增强完整性元素,通过@C方法,通过与标准版本的兼容性保留了C语言的精神及其基本特征,但也允许复兴并将C语言带到当前的程序设计语言状态。
2022-12-19 cs.FL cs.PL
Dual-Language General-Purpose Self-Hosted Visual Language and new Textual Programming Language for Applications
本文提出PWCT2,一种双语言通用自托管可视化编程语言,基于新设计的Ring文本语言开发,实现36倍代码生成加速和20倍存储节省,并在Steam上获得广泛使用。
2025-09-24 cs.PL cs.SE
A declarative extension of parsing expression grammars for recognizing most programming languages
解析表达式语法是描述语法的流行基础。不幸的是,程序设计语言的一些语法仍然难以用纯PEG识别。一些臭名昭著的例子出现了:C/C ++中typedef定义的名称,Python中基于缩进的代码布局,以及许多脚本语言中的HERE文档。为了识别这样的PEG-硬语法,我们已经解决了PEG的声明性扩展。“声明性”扩展意味着没有传统上用于实现扩展解析行为的编程语义动作。Nez是我们扩展的PEG语言,包括符号表和条件解析。本文证明了使用Nez扩展可以实现许多实用的程序设计语言,如C,C\#,Ruby和Python,其中涉及PEG-硬语法。
2015-11-26 cs.PL
Benchmarking LLM Code Generation for Audio Programming with Visual Dataflow Languages
Columbia University(哥伦比亚大学);Barnard College, Columbia University(巴纳德学院,哥伦比亚大学);Eastlake High School(伊斯特莱克高中)
本文基准评测了LLM在音频可视化编程语言中通过元编程和JSON直接节点生成两种表示层级的代码生成表现,发现元编程在代码形式良好时语义正确性更高,且提示加入随机性与循环可提升生成代码复杂度。
2024-09-01 cs.AI cs.CL cs.PL
From Theory to Systems: A Grounded Approach to Programming Language Education
我提出了一种新的方法来教授研究生级别的程序设计语言课程,重点是使用系统编程思想和语言,如WebAssembly和Rust来激励PL理论。利用学生以前使用低级语言的经验,本课程展示了如何使用类型系统和PL理论来避免学生在实践中遇到的棘手的现实世界错误。我反思了在斯坦福大学两年的教学课程设计和经验教训,表明整合系统思想可以为学生提供更接地和愉快的程序设计语言教育。课程表、课程笔记和作业都可以免费获得:http://cs242.stanford.edu/f18/
2019-04-14 cs.CY cs.PL
Designing a pi-based Programming Language in the .NET framework: CLR interoperability from the Programmer's point of view
互操作性是程序设计语言与基于不同语言和范例的系统一起工作的能力。目前,许多广泛使用的高级语言实现都提供了对外部功能的访问。在本文中,我们提出了一些想法,专注于一个程序员在这方面所希望的构造的类型的互操作性。
2017-03-15 cs.PL cs.SE
A Functional Programming Language with Versions
虽然现代软件开发大量使用版本化包,但程序设计语言很少在其语义中支持版本的概念,这使得软件更新更加庞大和不安全。本文提出了一种本质上支持版本的程序设计语言。其主要目标是设计核心语言功能,以支持在一个程序中的多个版本,并建立一个适当的概念,类型安全与这些功能。所提出的核心演算称为Lambda VL,具有版本化的值,每个值在不同版本下包含不同的值。我们的类型系统的建设作为一个扩展的coeffect演算的版本映射到计算资源。类型系统保证程序存在有效的版本组合。演算使程序设计语言能够在程序中使用包的多个版本。它将作为设计高级语言功能(如模块系统和语义版本)的基础。
2021-07-15 cs.PL