Choral: Object-Oriented Choreographic Programming
本文提出首个基于主流抽象的编排式编程语言 Choral,通过引入分布式数据类型概念将编排式与面向对象编程相融合,实现了模块化角色代码生成,并凭借对象传递等特性成为首个高阶编排式语言。
2023-10-19 cs.PL
Shallow EDSLs and Object-Oriented Programming: Beyond Simple Compositionality
嵌入式领域特定语言(Embedded Domain-Specific Languages,EDSL)是各种语言(包括Haskell和Scala)中常见且广泛使用的DSL方法。EDSL有两种主要的实现技术:浅嵌入和深嵌入。询问:浅嵌入非常简单,但在过去,它们因在模块化和重用方面非常有限而受到批评。特别是,经常有人认为在浅嵌入中支持多个DSL解释是困难的。方法:本文认为,浅层EDSL和面向对象编程(OOP)是密切相关的。Gibbons和Wu已经讨论了浅EDSL和过程抽象之间的关系,而Cook讨论了过程抽象和OOP之间的联系。本文中我们通过过程抽象将浅层EDSL直接连接到OOP来实现过渡步骤。关于这种关系的知识使我们能够改进EDSL的实现技术。知识:本文认为,共同的OOP机制(包括继承,子类型,类型细化)增加了模块化和重用的浅EDSL相比,经典的过程抽象,使一个简单的方法来表达多个,可能依赖,解释。基础:我们通过使用Gibbons和Wu的例子来进行论证,其中Haskell使用过程抽象来建模一个简单的浅EDSL。我们在Scala中重新编码EDSL,并使用改进的OO启发的Haskell编码。我们进一步说明了我们的方法与案例研究重构深外部SQL查询处理器,使其更加模块化,浅,嵌入式。重要性:这项工作之所以重要,有两个原因。首先,从知识的角度来看,这项工作建立了浅嵌入和面向对象程序设计之间的联系…
2019-02-01 cs.PL
Implementing a Language for Distributed Systems: Choices and Experiences with Type Level and Macro Programming in Scala
多层程序设计语言通过在单个一致的代码库中开发分布式系统来降低开发分布式系统的复杂性。编译器或运行时将分布式系统的组件的代码分离,从而能够对诸如数据表示、串行化和网络协议之类的低级实现细节进行抽象。我们的ScalaLoci语言允许开发人员在类型级别声明不同的组件及其架构关系,允许关于分布和远程通信的静态推理,并保证跨组件的静态类型安全。编译器将多层程序分割成特定于组件的代码,并自动生成通信样板。组件之间的通信可以通过使用反应式编程声明性地指定组件之间的数据流来建模。在本文中,我们报告了我们的设计和我们的经验,我们的语言功能嵌入到Scala作为主机语言的实现。我们展示了如何结合Scala的高级类型级编程和它的宏系统来丰富语言的新抽象。我们评论的挑战,我们遇到的,我们为我们目前的实施和大纲的建议,一个改进的宏系统,以支持嵌入特定领域的抽象的用例开发的解决方案。
2020-02-14 cs.PL
Resources: A Safe Language Abstraction for Money
智能合约是在现代区块链平台上实现潜在复杂交易的程序。在快速发展的区块链环境中,智能合约程序设计语言必须允许用户编写富有表现力的程序来管理和转移资产,同时提供强大的保护来抵御复杂的攻击。为了满足这一需求,我们在Move语言中为数字货币编程提供了灵活可靠的抽象[Blackshear et al. 2019]。Move使用了新颖的线性资源类型[Girard 1987],其语义借鉴了C++11 [Stroustrup 2013]和Rust [Matsakis and Klock 2014]:当一个资源值被分配给一个新的内存位置时,之前保存它的位置必须无效。此外,资源类型只能由其声明模块中的过程创建或销毁。我们提出了一个可执行的字节码语言的资源,并证明它享有资源安全,守恒属性的程序值,类似于在物理世界中的质量守恒。
2020-07-23 cs.PL
Towards Efficient Abstractions for Concurrent Consensus
一致性是并发和分布式编程中经常出现的问题。我们提出了一种程序设计语言,具有简单的语义和内置的支持共识的形式进行通信的事务。我们激励需要这样一个结构的一个典型的例子,广义共识,可以自然地编码在我们的语言。然后,我们专注于实现的挑战,可以有效地运行这样的程序。我们建立了一个体系结构,以评估不同的实现方案,并使用它来实验性地评估运行时性能。这是现实的程序设计语言支持共识的研究项目的基础。
2013-05-07 cs.DC cs.PL
From Procedures, Objects, Actors, Components, Services, to Agents -- A Comparative Analysis of the History and Evolution of Programming Abstractions
Sorbonne Université(索邦大学)
本文沿过程到 Agent 的演化脉络,用动作选择、耦合灵活性和抽象层次三维框架比较编程抽象,揭示灵活性、抽象化、自主性与协调等演进动力。
2024-01-18 cs.AI cs.PL cs.SE
Software Transactional Memory with Interactions
软件事务内存(STM)是一种新兴的并发编程抽象,可替代基于锁的同步。大多数STM模型只允许隔离的事务,这在事务在提交之前需要通过共享数据进行交互的多线程编程中是不够的。为了克服这一限制,在本文中,我们提出了开放式事务存储器(OTM),一个编程抽象支持安全,数据驱动的可组合的内存事务之间的相互作用。这是通过放松事务之间的隔离来实现的,仍然确保原子性。该模型允许松耦合的交互,因为事务合并仅由对共享数据的访问驱动,而不需要预先指定参与者。
2020-07-17 cs.PL
On the Origins of Objects by Means of Careful Selection
Huawei(华为)
本文提出了一种用于EO编程语言的对象分类法,旨在为程序员提供导航参考,并为其他面向对象语言的设计提供指导。
2026-07-08 cs.PL
Leroy: Library Learning for Imperative Programming Languages
本研究提出Leroy系统,通过AST转换结合Stitch框架将库学习拓展至命令式语言,经Python子集验证可实现1.04倍代码压缩并能裁剪无效抽象,提升了代码可复用性与维护性。
2024-10-09 cs.PL
A Specification of Open Transactional Memory for Haskell
transmandemory(TM)已经成为一个有前途的抽象并发编程替代基于锁的同步。然而,大多数TM模型只允许隔离的事务,这在事务必须在提交之前通过共享数据进行交互的多线程编程中是不够的。在本文中,我们提出了开放式事务存储器(OTM),一个编程抽象支持安全,数据驱动的可组合的内存事务之间的相互作用。这是通过放松事务之间的隔离来实现的,仍然确保原子性:不同事务的线程可以通过访问共享变量进行交互,但随后它们的事务必须一起提交-实际上,这些事务是透明合并的。该模型允许松耦合的交互,因为事务合并仅由对共享数据的访问驱动,而不需要预先指定参与者。在本文中,我们提供了一个规范的OTM的设置并发Haskell,表明它是一个保守的扩展,目前的STM抽象。特别是,我们提供了一个正式的语义,这使我们能够证明OTM满足\emph{opacity}标准。
2016-02-17 cs.PL
Application specific dataflow machine construction for programming FPGAs via Lucent
现场可编程门阵列(FPGA)具有加速特定HPC代码的潜力。然而,即使随着高级综合(HLS)的出现,FPGA程序员也可以用C或C++编写代码,对此类器件进行编程仍然需要相当多的专业知识。这在很大程度上是因为这些架构是建立在CPU或GPU的Von Neumann抽象之上的。因此,通过命令式语言对FPGA进行编程并不是最佳的,并且可能会导致底层架构上的算法的第一个版本和最终版本之间存在非常显著的性能差异,其中步骤通常不明显,并且需要相当多的专业知识。在这份立场文件中,我们认为,应利用建立在Cumblow原则基础上的语言来实现FPGA的快速构造代码,这类似于程序员采用开发专门用于其应用的定制Cumblow机器的抽象。这是我们的信念,可以学到很多东西,从一代的编程语言,在20世纪70年代和80年代流行的通用编程机器,我们介绍了Lucent这是一个现代的衍生物的Lucid,并作为一个工具来探索这一假设。朗讯的理念是通过为开发人员提供最合适的语言级抽象,为FPGA提供高程序员生产力和性能。Lucent的重点是非常支持HPC内核的加速,而不是嵌入式电子和电路级,我们通过示例简要概述了该语言的驱动。
2021-04-10 cs.PL
High level programming abstractions for leveraging hierarchical memories with micro-core architectures
微核心架构将许多低内存、低功耗计算核心组合在单个封装中。这些作为加速器是有吸引力的,但由于有限的片上存储器和多层次的存储层次结构,程序员卸载内核的方式需要仔细考虑。在本文中,我们使用Python作为一种工具,探索更高层次的程序设计语言的语义和抽象,以支持卸载的计算内核到这些设备。通过转移到一个引址传递模型,以及利用内存种类,我们证明了能够轻松有效地利用多个层次的存储层次结构,甚至是那些不能直接访问的微核心。使用一个机器学习基准,我们进行实验的Epiphany-III和MicroBlaze的微核心,展示了计算能力与任意大的数据集大小。为了提供我们的研究结果,我们探索了这些技术的性能和功耗效率,证明了虽然这两种微内核技术在其自己的嵌入式硬件类别中具有竞争力,但要达到HPC级GPU还有一段路要走。
2020-10-04 cs.DC cs.PL
Declarativeness: the work done by something else
声明性意味着我们在更高的抽象层次上进行计算机编程。这个模糊的定义将声明性与忽略细节的行为等同起来,但它是抽象的一个特例。未指定的部分是一些计算工作。自动化计算和卸载心理处理本质上是同一个概念,这是计算和数学思维的基础。这表明声明性不仅仅是一种特定的风格,而是编程的核心思想。在这里,我们证明了这一论点,并检查其后果教学的系统研究编码的例子,从入门编程课程。选择的语言是Clojure,因为它被证明是新手可以访问的。
2017-11-25 cs.PL
Simply RaTT: A Fitch-style Modal Calculus for Reactive Programming without Space Leaks
函数式反应式编程(FRP)是一种使用信号和事件进行编程的范例,允许用户在高抽象级别上描述反应式程序。要做到这一点,FRP语言必须确保所有程序都是因果关系的,并且可以在不引入空间泄漏和时间泄漏的情况下实现。为此,某些FRP语言不提供对信号的直接存取,而只是提供对信号函数的存取。最近,模态类型已被建议作为一种替代方法,以确保在同步情况下的FRP语言的因果关系,直接存取的信号和事件的抽象。本文提出了一种新的反应式编程模式演算Simply RaTT。与以前的演算不同,Simply RaTT使用Fitch风格的方法来处理模态类型,这简化了类型系统,使程序更加简洁。呼应Krishnaswami以前的结果为不同的语言,我们设计了一个操作语义,安全地执行简单的RaTT程序没有空间泄漏。我们还确定了其他模态FRP语言中存在的时间泄漏的来源:延迟计算中不动点的展开。Simply RaTT型系统消除了这些时间泄漏。
2019-06-11 cs.PL
Where Do Large Language Models Fail on Competitive Programming? A Taxonomy of Failures by Algorithm Type and Difficulty Rating
IIIT Bhubaneswar(布巴内斯瓦尔信息技术研究所);IIT Patna(巴特纳印度理工学院)
通过系统实证研究,发现链式思维推理会显著降低GPT-4o的通过率并增加Claude的编译错误,且错误答案主导了两种模型的失败模式。
2026-06-02 cs.PL cs.SE
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
Vehicle Platooning Simulations with Functional Reactive Programming
函数式语言为验证社区提供了主要的好处。尽管诸如纯净性、强类型系统和计算抽象等特性可以帮助引导程序员避免代价高昂的错误,但当在反应式系统中使用时,这些特性可能会带来挑战。函数式响应式编程是一种范式,它允许用户享受函数式语言的好处,并为响应式环境提供一个简单的接口。我们提出了一个使用Haskell在FRP中构建自主车辆控制器的工具。
2018-03-28 cs.PL
Scalable data abstractions for distributed parallel computations
将程序表示为部件的分层组合的能力是管理软件复杂性的重要工具,并且这提供的关键抽象是将数据的表示与计算分离。许多当前的并行编程模型使用共享存储器模型来提供数据抽象,但是由于非确定性和访问延迟,这不能很好地与大量核一起扩展。本文提出了一个简单的编程模型,允许可扩展的并行程序表示与分布式表示的数据,它提供了程序员的灵活性,采用共享或分布式风格的数据并行在适用的情况下。它能够有效地实现,并且在硬件中提供一小部分原始功能,它可以被编译为直接在硬件上操作,就像基于堆栈的分配在顺序机中的子程序中操作一样。
2012-10-03 cs.DC cs.PL
Do be do be do
我们探讨的设计和实施的弗兰克,一个严格的功能性程序设计语言的双向效果类型系统设计从地面上围绕一个新的变种Plotkin和Pretnar的效果处理抽象。效果处理程序为模块化有效编程提供了一个抽象:处理程序充当命令集合的解释器,这些命令的接口由类型系统静态跟踪。然而,Frank通过概括函数抽象本身的基本机制,消除了对额外效果处理构造的需要。函数只是不解释任何命令的Frank运算符的特殊情况。此外,Frank的操作符可以是多处理程序,可以同时解释来自多个源的命令,而不会干扰函数式编程的直接风格。Frank中的效应类型采用了一种新颖的效应多态形式,避免在源代码中提及效应变量。这是通过向内传播环境异能来实现的,而不是向外累积潜在效果的联合。我们介绍弗兰克的例子,然后给出一个正式的帐户弗兰克类型系统及其语义。我们通过将Frank操作符细化到函数、case表达式和一元处理程序中来引入Core Frank,然后为Core Frank给出一个合理的小步操作语义。使用效果和处理程序进行编程还处于起步阶段。我们对未来的可能性进行了探索,特别是与其他形式的丰富类型系统相结合。
2017-10-03 cs.PL
The Full Abstraction Problem for Higher Order Functional-Logic Programs
开发合适的形式语义对程序设计语言的理解、设计和实现有很大的帮助,并作为软件开发工具(如分析器或部分求值器)的指南。在这个意义上,完全抽象是一个非常理想的属性,表明语义和程序片段的可观察行为之间的完美对应。在这项工作中,我们解决了现代功能逻辑语言的家庭,其中的功能可以是更高的顺序和非确定性的,并通过非确定性的语义是\emph{call-time choice}的全面抽象的问题。我们表明,相对于自然概念的\emph{observation},任何语义的基础上\emph{extensional}功能是不合理的,相反,我们表明,高阶版本的\emph{CRWL},一个众所周知的现有的语义框架的功能逻辑编程,基于\emph{intensional}视图的功能,原来是完全抽象和组合。
2010-02-09 cs.LO cs.PL
Qrisp: A Framework for Compilable High-Level Programming of Gate-Based Quantum Computers
针对量子计算高级编程抽象不足的问题,提出Qrisp框架,通过经典范式启发的编程抽象实现可编译至电路级的量子编程,提升编译效率并降低量子资源需求。
2024-06-20 cs.PL quant-ph
Block-encodings as programming abstractions: The Eclipse Qrisp BlockEncoding Interface
Eclipse Qrisp BlockEncoding Interface(Eclipse Qrisp BlockEncoding接口)
本文提出Eclipse Qrisp框架中的块编码接口,将块编码作为高级编程抽象,展示其在量子算法实现及资源估算中的简化作用。
2026-04-20 cs.ET cs.LG cs.MS
Persistent Iterators with Value Semantics
National University of Singapore(新加坡国立大学)
本文提出持久迭代器,结合了命令式语言的迭代风格与持久数据结构的语义,通过快照容器版本确保安全,实现真正的值语义,提升表达力并消除迭代器失效问题。
2026-04-15 cs.PL
Effect Handling for Composable Program Transformations in Edward2
Google(谷歌);University of Edinburgh(爱丁堡大学)
在程序设计语言社区中,代数效果和处理程序作为一种方便的、模块化的抽象出现,用于控制计算效果。他们已经发现了几个应用程序,包括并发编程,Meta编程,以及最近的概率编程,作为Pyro的Poutines库的一部分。我们调查使用的效果处理程序作为一个轻量级的抽象实现概率程序设计语言(PPLs)。我们将Edward2的现有设计解释为效果处理机制的意外实现,并扩展该设计以支持嵌套的可组合转换。我们证明,这使得简单的复杂的模型转换和推理算法的实现。
2018-11-15 cs.LG cs.PL stat.CO
Program Synthesis using Inductive Logic Programming for the Abstraction and Reasoning Corpus
INESCTEC-FCUP
针对 ARC 对强泛化与推理的挑战,本文提出以手工对象中心 DSL 作为背景知识、用 ILP 从少量网格示例合成逻辑程序的系统,并验证其可解决多种不同推理任务。
2024-05-10 cs.AI cs.LG cs.PL
A Survey of the Proof-Theoretic Foundations of Logic Programming
一些形式系统,如归结和最小模型语义,为逻辑编程提供了一个框架。在本文中,我们将调查使用结构证明理论作为替代基础。在过去的35年里,研究人员一直在使用这个基础来将逻辑编程从一阶经典逻辑的根源提升到直觉和线性逻辑的高阶版本。这些更具表现力的逻辑程序设计语言允许捕获有状态计算和丰富形式的抽象,包括高阶编程、模块化和抽象数据类型。术语级绑定是另一种抽象,在证明理论和这些扩展逻辑程序设计语言中,它们都得到了优雅而直接的处理。逻辑编程也激发了证明理论的新成果,例如涉及极性和聚焦证明的成果。这些最新的研究结果提供了一个高层次的手段,呈现前向链和后向链风格推理之间的差异。在证明论中验证逻辑编程也有助于识别它与函数式编程、演绎数据库和模型检验的联系和区别。
2021-10-30 cs.LO cs.PL
Context-Oriented Programming: A Programming Paradigm for Autonomic Systems
动态软件适应性是自主计算所利用的核心特性之一。然而,开发在运行时间改变其行为以适应操作条件的软件是一项具有挑战性的任务。在文献中已经提出了几种方法来解决这个问题,在不同的和互补的抽象层次:软件体系结构,中间件和编程水平。我们专注于ad-hoc程序设计语言结构可能提供的支持,以支持动态自适应行为。我们介绍了面向上下文的程序设计语言,我们提出了一个框架,该框架的位置在MAPE-K自主循环支持的范例。我们讨论了使用面向上下文的程序设计语言,而不是其他主流方法的基础上,面向动态方面的程序设计语言的优势,并提出了一个案例研究,显示如何提出的编程风格自然适合动态适应的要求。最后,我们讨论了一些已知的问题,并概述了一些开放的研究挑战。
2012-03-30 cs.PL
Unitary Expressions: A Necessary Abstraction for Extensible Quantum Programming Languages and Systems
针对量子计算软件生态中基于名称识别量子门易出错、难维护等问题,研究提出用函数式酉表达式表示法替代,推出含QGL语言、可微分即时编译器和QVM的OpenQudit系统,梯度计算速度领先,可提升量子编程系统的扩展性与易用性。
2025-01-16 cs.PL quant-ph
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
QuB: A Resource Aware Functional Programming Language
管理资源-文件句柄、数据库连接等-是个难题由于资源管理不善而导致的资源泄漏和运行时错误在开发生产代码中是困难的。带有静态类型系统的程序设计语言是确保在编译时检测到错误代码的重要工具。然而,现代静态类型系统在资源管理方面做得很少,因为资源被视为正常值。我们提出了一个类型系统,Qub,基于聚束含义(BI)的逻辑模型资源作为一等公民。我们区分了两种程序对象-受限的和非受限的-和两种函数-共享的和分离的。我们的方法保证资源的正确性,而不损害现有的功能抽象。
2019-12-20 cs.PL
MTP: A Meaning-Typed Language Abstraction for AI-Integrated Programming
University of Michigan(密歇根大学);Jaseci Labs(Jaseci实验室)
本文提出MTP(含义类型化编程)新范式,通过by操作符、MT-IR和MT-Runtime自动化LLM集成,在Python超集语言Jac中实现,显著降低开发复杂度与成本,任务完成速度提升3.2倍且代码量减少45%。
2025-09-15 cs.AI cs.PL
Closing the Performance Gap with Modern C++
在通往Exascale的道路上,程序员面临着越来越大的挑战,即必须从同一代码库支持多种硬件架构。与此同时,随着硬件架构变得越来越多样化,代码的可移植性和性能越来越难以实现。当今的异构系统通常包括两个或更多个完全不同且不兼容的硬件执行模型,诸如GPGPU、SIMD向量单元和通用核,其常规上必须使用表示非重叠编程模型的单独工具链来编程。最近工业界和更广泛的社区对C++语言的兴趣复苏,在并发和并行领域激发了大量的标准化建议和技术规范。这包括最近越来越多的讨论,围绕需要一个统一的,更高层次的抽象和编程模型的并行性在C++标准的目标异构和分布式计算。这种抽象应该与现有的、已经标准化的语言和库功能完美融合,但也应该足够通用,以支持未来的硬件开发。在本文中,我们提出了这样一个更高层次的编程抽象的并行性在C++,其目的是使代码和性能的可移植性在广泛的体系结构和各种类型的并行性的结果。我们提出并比较从运行著名的STREAM基准移植到我们的更高级别的C++抽象与相应的结果从运行它本机获得的性能数据。我们表明,我们的抽象,使性能至少一样好的可比基线基准,同时提供一个统一的编程API的所有比较的目标体系结构。
2022-05-30 cs.DC cs.PL
How to Avoid Making a Billion-Dollar Mistake: Type-Safe Data Plane Programming with SafeP4
P4程序设计语言提供了高级的声明性抽象,将软件的灵活性带到了网络领域。不幸的是,用于在P4中表示分组数据的主要抽象,即报头类型,缺乏基本的安全保证。在过去的几年里,越来越多的程序的经验表明了不安全方法的风险,这通常会导致微妙的软件错误。本文提出了SafeP 4,可编程数据平面,其中所有的数据包数据都保证有一个明确的意义,并满足基本的安全保障,特定于域的语言。我们装备SafeP 4的正式语义和静态类型系统,静态保证头的有效性-一个共同的安全漏洞来源,根据我们对现实世界的P4程序的分析。静态地确保头的有效性是具有挑战性的,因为有效头的集合可以在运行时修改,使其成为动态程序属性。我们的类型系统通过使用一种路径敏感的推理来实现静态安全,这种推理可以跟踪来自条件语句、路由表和控制平面的动态信息。我们的评估表明,SafeP 4的类型系统可以有效地消除常见的故障,在许多现实世界的程序。
2019-06-24 cs.PL
Low-Code Programming Models
本文系统梳理了分散于多个研究领域的低代码编程文献,统一解释了可视化抽象、演示和自然语言等低代码技术的工作原理,旨在赋能公民开发者自动完成任务并降低对专业开发人员的依赖。
2022-05-04 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
Eliminating Network Protocol Vulnerabilities Through Abstraction and Systems Language Design
网络协议消息规范的不正确实现会影响网络系统开发的稳定性、安全性和成本。大多数实现缺陷都属于三类定义良好的消息约束之一。然而,构造网络协议栈和系统的一般过程并不捕获这些分类约束。我们引入了一个系统程序设计语言与新的抽象,捕捉这些约束。我们的编译器综合了标准消息处理操作的安全和有效的实现,并使用全程序分析来确保约束永远不会被违反。我们目前的语言使用OpenFlow协议的例子。
2013-11-13 cs.NI cs.PL
Scheduling Languages: A Past, Present, and Future Taxonomy
本文梳理调度语言的起源、共性与现状,提出分类框架,并呼吁围绕统一基础设施提高抽象、实用性与可移植性。
2024-10-25 cs.DC cs.PF cs.PL
Object-Spatial Programming
本文提出对象-空间编程(OSP)模型,以拓扑感知 archetype 显式表达空间结构与遍历,从而提升表达力并支持局部性、并行与分布优化。
2025-06-07 cs.MA cs.PL cs.SE
An Improved Proof-Theoretic Compilation of Logic Programs
在以前的工作中,我们表明,逻辑编程编译可以给出一个通用的抽象逻辑程序设计语言的证明理论的理由,并证明了这种技术的情况下,遗传Harrop公式及其线性变体。编译后的子句本身就是逻辑公式,除了在与它们的头相匹配的原子目标上存在二阶抽象。在本文中,我们重新审视我们以前的结果,以更详细和更充分的逻辑理由,消除这种虚假的抽象。然后,我们改进所得到的技术,以有效地支持模式良好的程序。
2012-10-05 cs.LO cs.PL
Programming Distributed Collective Processes in the eXchange Calculus
Università di Torino(都灵大学);Alma Mater Studiorum—Università di Bologna(博洛尼亚大学)
针对物联网设备集体自适应编程难题,提出基于交换演算的分布式集体过程抽象,统一整体形成与任务,经案例验证适用于分布式计算。
2025-10-02 cs.AI cs.DC cs.MA
A Modular Framework for Stack-Heap and Value Abstractions (Extended Version)
Ca’ Foscari University of Venice(威尼斯大学)
本文针对高级静态程序分析中不同编程语言内存管理问题,提出并形式化通用内存框架,基于抽象解释理论,通过分裂状态抽象将值与内存分析分离到模块化域,可支持多种语言行为,独立组合不同分析。
2026-07-20 cs.PL cs.SE
Event Synchronization by Lightweight Message Passing
并发ML的事件和事件组合子促进了具有一流同步抽象的模块化并发编程。这些抽象的标准实现依赖于底层语言中对第一类延续的相当复杂的操作。在本文中,我们提出了一个轻量级的实现这些抽象的并发Haskell,一种语言,已经提供了一阶消息传递。我们实现的核心是一个新的分布式同步协议。与以前的几个翻译并发语言的事件抽象相比,我们仍然忠实于事件和事件组合子的标准语义,例如,我们保留了对称性的$\mathtt{choose}$表达选择性通信。
2008-05-27 cs.DC cs.PL
A Semantics Comparison Workbench for a Concurrent, Asynchronous, Distributed Programming Language
已经提出了许多高级语言和库,它们为并发、异步和分布式编程提供了新颖且易于使用的抽象。然而,实现它们的执行模型经常会随着时间的推移而改变--无论是为了提高性能,还是为了将它们扩展到新的语言功能--这可能会影响现有程序的行为和安全属性。SCOOP是一种并发面向对象编程的消息传递方法,它已经提出并实现了多个更改,并对其核心抽象的惯用用法产生了明显的影响。我们提出了一个语义比较工作台SCOOP与全自动和半自动的工具,用于分析和比较不同的执行模型或语义的程序的状态空间。我们证明了它的使用,在检查整个语义的属性的一致性,通过将其应用到一组代表性的程序,并突出了死锁相关的差异之间的主要执行模型的SCOOP。此外,我们证明了工作台的可扩展性,通过概括的形式化的执行模型,以支持最近提出的扩展分布式编程。我们的工作台是基于一个模块化的和参数化的图形转换语义中实现的GROOVE工具。我们将讨论如何利用图转换来原子地对复杂的语言抽象建模,如何使用模型的视觉和代数性质来确定合理性,并强调该方法如何应用于类似的语言。
2017-10-11 cs.DC cs.LO cs.PL
Learning logic programs by discovering higher-order abstractions
University of Oxford(牛津大学);TU Delft(代尔夫特理工大学)
该研究提出高阶重构问题,开发了将其建模为约束优化问题的Stevie系统,可发现高阶抽象压缩逻辑程序,能提升归纳逻辑编程系统的学习性能,且发现的抽象可跨领域迁移。
2024-01-29 cs.AI cs.LG cs.PL
Quantum Control Machine: The Limits of Control Flow in Quantum Programming
本文分析了量子计算机上控制流抽象的实现极限,证明无法直接提升经典条件跳转,并提出 quantum control machine 指令集架构,以充分必要条件支持用量子程序计数器替代逻辑门正确表达控制流。
2024-03-26 cs.AR cs.PL quant-ph
CoolerSpace: A Language for Physically Correct and Computationally Efficient Color Programming
CoolerSpace 通过类型系统约束物理合法的颜色计算,并利用等式饱和优化生成高效程序,在防止颜色编程错误的同时实现最高 5.7 倍加速。
2024-09-04 cs.GR cs.PL
Abstractions for AI-Based User Interfaces and Systems
Cornell University(康奈尔大学);Facebook;Microsoft Research(微软研究院)
基于人工智能的新型用户界面,如自然语言代理,提出了新的工程挑战类别。这些系统需要应对不确定性和模糊性,与机器学习算法接口,并组合来自多个用户的信息以做出决策。我们建议将这些挑战视为语言设计问题。我们描述了三个程序设计语言抽象的三个核心问题的智能系统设计。首先,假设世界支持在替代动作空间上的非确定性搜索。其次,特征类型系统抽象了应用程序和学习算法之间的交互。最后,协作执行的构造在多台机器上扩展了假设的世界,同时控制对私有数据的访问。我们将这些功能视为实现基于人工智能的接口和应用程序的完整语言的第一步。
2017-09-14 cs.AI cs.PL
Bricklayer: An Authentic Introduction to the Functional Programming Language SML
函数式程序设计语言被许多人视为有效利用多核平台计算能力的工具。因此,人们越来越有兴趣在计算机科学课程中尽早引入函数式编程和函数式思维。Bricklayer是一个用SML编写的API,它提供了一组用于创建LEGO工件的抽象,可以使用LEGO Digital Designer查看这些工件。Bricklayer的目标是创建一个问题空间(即,一组乐高工件),它对程序员(尤其是新手程序员)来说是可访问的和吸引人的,同时提供了对函数式程序设计语言SML的真实介绍。
2014-12-16 cs.CY cs.PL
Explaining Constraint Programming
我们在这里讨论约束规划(CP)使用证明理论的角度。为此,我们确定了三个层次的抽象。每个层次都揭示了CP的本质。特别是,最高级别允许我们把CP更接近计算作为演绎范式。在中间层,我们可以解释各种约束传播算法。最后,在最低层,我们可以解决自动生成和优化的约束传播算法的问题。
2006-02-07 cs.AI cs.PL
Towards representation agnostic probabilistic programming
Institute for Visual and Analytic Computing(视觉与分析计算研究所)
本文提出了一种因素抽象方法,实现表示无关的概率编程,允许在统一框架中混合不同表示进行复杂模型推断。
2025-12-25 cs.AI cs.PL
Jolie & LEMMA: Model-Driven Engineering and Programming Languages Meet on Microservices
在微服务领域,模型驱动工程已成为架构设计的强大方法,新的程序设计语言引入了语言抽象,以更有效地处理微服务开发。本文以LEMMA框架和Jolie程序设计语言为代表,对这两种方法如何结合进行了初步的探讨。通过为Jolie开发一个概念元模型,我们引出了这两种方法之间的紧密联系,这表明有很多收获。我们讨论了一些低挂水果,来自我们的发现,并提出了一些有趣的未来方向,从我们的新观点。
2021-04-06 cs.PL cs.SE
Domain-Specific Languages of Mathematics: Presenting Mathematical Analysis Using Functional Programming
我们提出的方法基本的课程“特定领域的数学语言”,目前正在开发的查尔姆斯在应对三年级学生在学习和应用经典数学(主要是真实的和复杂的分析)所面临的困难。其主要思想是鼓励学生从函数式编程的角度来处理数学领域:确定所涉及的主要函数和类型,并在必要时引入新的抽象;给出计算证明;注意数学表达式的语法;最后,组织产生的函数和类型在特定领域的语言。
2016-11-29 cs.CY cs.PL
Whittemore: An embedded domain specific language for causal programming
University of Maryland, College Park(马里兰大学帕克分校);Department of Computer Science(计算机科学系)
本文介绍了Whittemore,因果规划语言。因果编程基于结构因果模型理论,由两个主要操作组成:识别,找到计算因果查询的公式,以及估计,应用公式将概率分布转换为其他概率分布。因果编程提供了抽象来声明模型,查询和分布,语法类似于标准数学符号,并进行严格的因果推理,而不需要底层算法的详细知识。因果推理与真实数据的例子,以及讨论的实施和未来扩展的可能性。
2018-12-21 cs.AI cs.PL stat.ME
Linguistic Relativity and Programming Languages
程序设计语言的使用可以在几十年中兴衰。我们研究了统计计算中常见的split-apply- combine模式,并考虑了它在MATLAB和APL等语言中的调用或实现与R/dapr的不同之处。拼写上的差异说明了语言相对性的概念如何以类似于人类语言的方式应用于程序设计语言。最后,我们讨论了Julia作为一种高性能但通用的动态语言,如何允许用户表达不同的抽象以适应个人偏好。
2018-08-12 cs.MS cs.PL stat.CO