Implementing Dependent Types in pi-forall
本讲义介绍最小依赖类型语言 pi-forall 的设计及其类型检查器实现,源自2023年俄勒冈编程语言暑期学校课程。
2023-07-11 cs.PL
A Comparative Case Study of Code Reuse With Language Oriented Programming
在软件设计中重用高级概念的能力和重用实现它们的代码的能力之间存在着差距。面向语言编程(LOP)是一种软件开发范式,旨在通过广泛使用领域特定语言(DSL)来缩小这一差距。使用LOP,高级可重用概念成为可重用DSL构造,并在DSL实现中完成它们到代码级概念的转换。特定的产品是使用DSL代码实现的,因此只重用高级概念。在本文中,我们提供了两种实现方法之间的比较:(a)使用外部DSL与投影语言工作台(MPS);和(b)使用内部DSL与LOP语言(Cedarian)。为了演示如何在每种方法中实现重用,我们提出了一个小的案例研究,LOP是用来建立一个软件产品线(SPL)的计算器软件。
2011-03-30 cs.PL cs.SE
Lazy Evaluation: A Comparative Analysis of SAS MACROs and R Functions
AbbVie Inc.(艾伯维公司)
本文比较了SAS宏和R函数中延迟求值的机制,分析了其对编程效率的影响,并通过示例说明了不同策略的差异。
2026-01-14 cs.PL
A Reference Interpreter for the Graph Programming Language GP 2
GP 2是一种实验性的程序设计语言,用于通过图形转换进行计算. GP 2的一个初始解释器,用函数式语言Haskell编写,提供了一个简洁和结构简单的参考实现。尽管它的简单性,解释器的性能是足够的一系列测试程序的比较调查。它还为开发更复杂的实现提供了一个平台。
2015-04-10 cs.PL
Comparative Analysis of Widely use Object-Oriented Languages
University of Management and Technology(管理与技术大学)
针对面向对象入门语言难以选择且缺乏统一评估方法的问题,本文提出一个依据技术与环境特征评估常用面向对象语言的综合比较框架。
2023-06-02 cs.AI cs.PL
From Dynamic to Lexical: A Comparative Exploration of Scoping Rules in SAS and R
AbbVie Inc.(艾伯维公司)
本文比较了SAS和R中动态与词法作用域规则,分析了其对代码行为的影响及优化方法。
2026-01-14 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
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
Using Code Snippets to Teach Programming Languages
本研究在WMG开展暑期实习项目,从教育视角评估代码片段(CSs)在编程教学中的应用,发现代码长度、交互性等因素影响学习效果,并据此提出有效学习资源的设计方案。
2025-05-31 cs.PL
Exploring and Benchmarking High Performance & Scientific Computing using R R HPC Packages and Lower level compiled languages A Comparative Study
R是一种强大的开源程序设计语言,主要用于统计计算。许多统计研究领域的数据集规模都在迅速增长。方法上的进步推动模拟的使用增加。一种常见的方法是使用并行/并发计算。本文概述了在ACI(一个PSU基础设施)上使用R进行并行计算的技术,并使用C/C++对其进行基准测试。我们回顾了R的可扩展性问题,并研究了在HPC编码中使用R作为主要语言的简单性。我们将研究用于HPC的各种R包,如Rmpi,Rcpp,snow和snowfall。我们利用一系列的算法来进行基准测试,并将用一个代表性的图来说明每个基准测试,以便于理解。本文的结论是更好地理解在高性能计算中使用哪种语言。
2019-04-06 cs.PL
A Newcomer In The PGAS World -- UPC++ vs UPC: A Comparative Study
分区全局地址空间(PGAS)“世界”中的一个新人已经到达了它的1.0版本:统一并行C++(UPC++)。UPC++针对通信不规则或细粒度的分布式数据结构。关键的抽象是全局指针,通过RPC的异步编程,期货和承诺。UPC++ API用于移动非连续数据,并使用不同的最佳访问方法处理内存,类似于现代C++中使用的那些。在这项研究中,我们提供了在UPC++中实现的两个内核:作为偏微分方程求解器的一部分的稀疏矩阵向量乘法(SpMV),以及在2D域上实现热方程。本文提供了这两个内核的代码清单,以显示UPC和UPC++之间编程风格的差异。我们使用单节点、多节点硬件和众核硬件(英特尔至强融核Knight's Landing)对UPC和UPC++进行了性能比较。
2021-02-06 cs.DC cs.PF cs.PL
Smart Contract Languages: a comparative analysis
Università degli Studi di Cagliari(卡利亚里大学);Università Ca’ Foscari Venezia(威尼斯大学);Università di Padova(帕多瓦大学);Technical University of Denmark(丹麦技术大学);Università degli Studi di Trento(特伦托大学)
本文比较分析了主要区块链平台上智能合约语言的特性,评估其易用性、安全性和编程风格,并提出了一套涵盖广泛用例的基准测试。
2024-08-08 cs.CR cs.PL
Extending Object-Oriented Languages by Declarative Specifications of Complex Objects using Answer-Set Programming
许多应用程序需要复杂结构的数据对象。如果所考虑的对象受到不同的应用程序特定的约束,则开发用于创建此类对象的新算法解决方案或调整现有算法解决方案可能是一项重要且昂贵的任务。但是,通常以声明方式描述所需的对象相对容易。在本文中,我们建议使用答案集编程(ASP)--一个完善的声明式编程范式从该地区的人工智能--实例化对象的标准面向对象的程序设计语言。特别是,我们扩展了Java的声明性规范,所需的对象可以使用可用的ASP求解器技术自动生成。
2011-12-06 cs.AI cs.PL
R scripting libraries for comparative analysis of the correlation methods to identify factors affecting Mariana Trench formation
马里亚纳海沟是地球上最深的地方。它横跨太平洋的四个板块:马里亚纳、加罗林、太平洋和菲律宾。沟槽的形成是由各种环境因素的复杂相互作用引起的。本研究的目的是描述和表征各种影响因素的形成马里亚纳海沟地貌和大陆边缘环境使用R编程语言和数学算法的相关方法R代码编写。为了记录影响马里亚纳海沟的地质、构造、地理、海洋学和测深学特征系统,综合运用了统计方法、地理信息系统和R编程代码。回答的问题如下:哪些因素对马里亚纳海沟的形态影响最大,它们在多大程度上影响了它的发展?与陡度、倾角和展布程度相比,海沟基底沉积厚度对海沟形成是否更重要?采用Pearson相关系数、Spearman相关系数、Kendall相关系数、数值相关图、相关矩阵和互相关系数等3种计算方法对环境影响因子进行分析。相关图矩阵由R脚本库计算和可视化。编程工具、数理统计和地理空间分析的复杂使用使我们能够对马里亚纳海沟的超深渊环境有不同的理解。结果表明,几何因素(tg°坡度角)、地质因素(沉积厚度)和构造因素得分最高。研究结果进一步表明,构造板块、海沟基底沉积厚度和地震活动区对海沟地貌起着至关重要的作用。
2018-11-18 cs.PL physics.geo-ph
Comparative analysis of large data processing in Apache Spark using Java, Python and Scala
本研究基于Apache Spark与Apache Iceberg,对比Java、Python、Scala处理不同规模及复杂度数据的ETL性能,发现小数据量下Python更快,大数据量及复杂操作中Scala、Java更高效,可为数据处理流程优化提供参考。
2025-10-21 cs.DB cs.DC cs.PL
The Role of Functional Programming in Management and Orchestration of Virtualized Network Resources Part I. System structure for Complex Systems and Design Principles
这是作者在2018年1月在斯洛伐克科希策举行的“三个\CO“(可组合性,可理解性,正确性)冬季学校和2019年6月在匈牙利布达佩斯举行的夏季学校所做讲座的后续讲座笔记的第一部分。在这一部分中,我们解释了函数式编程范式在复杂软件系统管理中的作用,以及函数式编程的概念如何在设计这样的系统中发挥重要作用。实现函数式编程概念的关键先决条件是遵循定义良好的设计原则和规则正确设计系统结构。这是本讲座的主要目标,向学生介绍正确的系统建模。此外,我们还解释了新的新兴技术是如何设计的,以这种方式,他们执行的系统,符合设计规则的启发函数式编程的发展。鉴于当前的网络发展和虚拟化概念,这一点非常重要,这将需要网络服务和功能中的许多功能编程概念,这将在这些课堂讲稿的第二部分中讨论。这些笔记提供了对该主题的介绍,目的是解释问题及其解决方法的原则,方法和技术。工作的例子和练习作为教材,学生可以从中学习如何使用设计原则来建模有效的系统结构。在这里,我们专注于学生理解有效的系统结构的重要性,以协调由业务目标和进一步发展驱动的开发和管理流程。
2021-07-26 cs.PL cs.SE cs.SY
Suspension Analysis and Selective Continuation-Passing Style for Universal Probabilistic Programming Languages
针对PPL中CPS变换导致的不必要闭包分配开销,提出静态挂起分析驱动的选择性CPS变换,并在Miking CorePPL中验证其正确性与多场景显著性能提升。
2024-04-05 cs.PL
Induction, Coinduction, and Fixed Points: A Concise Comparative Survey
在这篇调查文章中(迄今为止,这是一个正在进行的工作)我们使用序理论、集合论、程序设计语言“类型论、一阶逻辑和范畴论中的每一个的语言和约定来呈现归纳和共归纳原理的公式化,以检查这些不同数学学科之间的一些相似性,以及更重要的是,不同性,从而揭示了这些学科之间的确切关系。为此,本文讨论了不动点、预不动点、后不动点、归纳集和归纳型、上归纳集和归纳型、代数和余代数等相关概念。我们通过暗示一种更抽象和统一的处理方法的可能性来结束调查,这种方法使用了范畴理论中的概念,如单子和共单子。
2019-02-28 cs.LO cs.PL math.CT
Tempo: Reconstructing Synchronous Reactive Programming with OCaml 5 Effects
Univ. Orléans, INSA Centre Val de Loire, LIFO UR 4022(奥尔良大学,中央卢瓦尔河谷国立应用科学学院,LIFO UR 4022)
研究能否在普通OCaml 5内重构同步响应式编程核心机制,提出基于代数效果和深度处理程序的Tempo库运行时,通过效果操作界定暂停点、处理程序具体化延续为任务,比较研究量化其开销并确定主导成本的运行时机制。
2026-07-28 cs.LO cs.PL
Is Productivity in Quantum Programming Equivalent to Expressiveness?
针对量子编程范式间表达能力差异不明确的问题,通过比较宿主型(如Qiskit)和独立型(如Q#)量子语言对核心量子算法的实现,以LOC、CC、HC为生产力指标,发现不同范式在表达能力与生产力间存在显著权衡,强调了语言设计的重要性。
2025-04-17 cs.PL cs.SE quant-ph
Performance vs Programming Effort between Rust and C on Multicore Architectures: Case Study in N-Body
历史上,Fortran和C一直是高性能计算(HPC)中的默认程序设计语言。在这两种情况下,程序员都可以使用原语和函数来操纵系统内存并直接与底层硬件交互,从而在响应时间和资源使用方面实现高效的代码。另一方面,在这些类型的语言中生成可维护和可扩展的代码是一个真正的挑战。2010年,Rust作为一种为并发和安全应用程序设计的新程序设计语言出现,它采用了过程式,面向对象和函数式语言的特性。在其设计原则中,Rust的目标是在效率方面与C相匹配,但同时提高代码安全性和生产力。本文介绍了C和Rust在性能和编程工作方面的比较研究,选择作为案例研究的N个计算体(N-Body),在HPC社区的一个流行的问题的模拟。基于实验工作,可以确定Rust是一种减少编程工作量的语言,同时保持可接受的性能水平,这意味着它是C for HPC的可能替代品。
2021-10-19 cs.DC cs.PL cs.SE
Cross-tier web programming for curated databases: A case study
精选的数据库已成为跨科学学科的重要信息来源,并且由于专家的手工工作,通常成为重要的参考资料。来源跟踪、归档和数据引用等功能被广泛认为是策展数据库的重要功能,但实现这些功能具有挑战性,小型数据库项目通常缺乏资源。科学数据库应用程序不仅仅是数据库本身,还包括用于显示数据的Web应用程序的生态系统,以及支持数据整理的应用程序。支持高级策展功能需要更改所有这些组件,目前还没有办法以可重用的方式提供这些功能。已经提出了跨层程序设计语言来简化web应用程序的创建,其中开发人员用单个统一的语言编写应用程序。因此,数据库查询和更新可以用与程序其余部分相同的语言编写,至少在原则上,应该可以通过程序转换提供可重用的策展功能。作为第一步,重要的是要建立现实的策展数据库可以实现在一个跨层的程序设计语言。在本文中,我们描述了这样一个案例研究:在链接程序设计语言中重新实现真实世界科学数据库的Web前端,IUPHAR/BPS药理学指南(GtoDb)。我们展示了语言集成查询等功能如何简化开发过程,并排除常见错误。我们表明,链接实现执行更少的数据库查询,而处理查询所需的时间与Java版本相当。虽然与Java相比,使用Links有一些开销,因为它相对不成熟,但Links版本作为概念验证案例研究是可行的。
2020-10-20 cs.DL cs.PL
Martta: A C++ Language Workbench
面向数据库的编程有望通过增加抽象能力来提高程序员的生产力。结构化编程环境提供了减少语法困难的装置。语言工作台是这两种方法的概念组合,是软件开发的一种相对新颖的方法,迄今为止只在动态分派,运行时编译语言(例如Java)中尝试过。然而,必须记住的是,工程存在几个领域,每个领域都有自己的优先事项。在视频游戏行业中,大型,复杂和多样化的项目经常被开发,效率是至关重要的,因此C++作为开发平台被广泛使用。我探索了一种语言工作台的可能性,这种语言工作台能够从传统的C++开发环境中逐渐过渡到技能和代码。本文是一个语言工作台的设计。它使用了新的技术,包括上下文敏感的事件驱动的输入系统和混合单/多继承类模型,并通过原型实现demonstrates,这是简洁和实用的C++。我驳斥了迄今为止隐含的假设,即语言工作台范式不适用于C++语言,表明C++可以用于创建一个有效的开发框架,否则纯C++编程环境中使用。
2014-03-15 cs.PL cs.SE
Rust vs. C for Python Libraries: Evaluating Rust-Compatible Bindings Toolchains
本研究评估了Rust的PyO3 Python绑定工具链与ctypes和cffi的性能及易用性,发现其能实现最先进性能且无需担心API兼容性。
2025-06-30 cs.DC cs.PF cs.PL