Are Programming Paradigms Paradigms? A Critical Examination of Floyd's Appropriation of Kuhn's Philosophy
本文批判性考察了弗洛伊德借用库恩“范式”概念提出“编程范式”的过程,指出其含义已发生根本偏离,并呼吁重新审视该术语在计算领域的使用。
2025-05-03 cs.PL
Several types of types in programming languages
类型是任何现代程序设计语言的重要组成部分,但我们经常忘记,我们现在理解的类型概念与60年代的概念不同。此外,我们将程序设计语言中的“类型”概念与数理逻辑中的同名概念混为一谈,这种识别只是两条不同路径的收敛结果,这两条路径开始时有着不同的目标。本文件将就这一问题提出几点意见(一些是历史性的,一些是概念性的),作为进一步调查的基础。我们要论证的论点是,在程序设计语言中有三种不同的特征在起作用,它们现在都被称为类型:在语言设计中用于指导实现的技术概念;用作建模工具的通用抽象机制;继承自数理逻辑的分类工具。我们将提出三个可能的日期为他们出现在程序设计语言的文献,表明类型的概念在计算机科学的出现是相对独立的逻辑传统,直到库里-霍华德同构将它们之间的明确桥梁。
2016-06-16 cs.PL
A Systematic Mapping Study on Teaching of Security Concepts in Programming Courses
本研究通过系统性映射研究方法,对24篇大学编程课程网络安全概念教学相关文献进行综述,梳理了研究现状与指导准则,指出了未来研究方向与构建教育适用整体性安全框架的需求。
2024-07-10 cs.PL
The C++0x "Concepts" Effort
C++0x是C++程序设计语言的ISO标准修订版的工作名称,原计划于2009年发布,但推迟到2011年。C++0x中最大的语言扩展是“概念”,即用于约束模板参数的特性集合。2008年9月,C++标准委员会投票将概念扩展纳入C++0x,但随后在2009年7月,委员会投票将概念扩展退出C++0x。本文是我对2003年至2009年“概念”工作中的技术挑战和辩论的描述。为了提供一些背景知识,本文还描述了受约束的参数多态性的设计空间,或者通俗地称为受约束的泛型。虽然这篇文章的目的是为了让一般人都能理解,但它的目标读者是具有函数式编程和程序设计语言理论背景的读者。本文来源于2010年3月在牛津大学Spring School on Generic and Indexed Programming的一次演讲。
2011-12-29 cs.PL
Proof-of-Concept Examples of Performance-Transparent Programming Models
特定于机器的优化命令机器以特定的方式运行。由于当前的编程模型在很大程度上保留了未公开的机器细节,因此它们无法容纳此类命令的直接编码。在以前的工作中,我们提出了性能透明的编程模型的设计,以促进这种用例;本报告包含这种编程模型的概念验证示例。我们演示了编程模型抽象如何揭示应用程序的内存占用,向量单元利用率和数据重用,预测精度范围从0到25%。
2018-03-29 cs.PF cs.PL
Indirect Object Representation and Access by Means of Concepts
本文描述了一种程序设计语言中的间接对象表示和访问(ORA)机制。该机制是基于使用一个新的编程结构,这是被称为概念。概念由一个对象类和一个引用类组成,它们都有自己的字段和方法。对象类是OOP中定义的传统类,其实例通过引用传递。引用类的对象是通过值传递的,并且旨在表示对象。引用类用于描述对象如何通过为其标识符和自定义访问过程提供自定义格式来表示和访问。这种使用概念而不是类的编程方法被称为面向概念的编程。它概括了OOP,它的主要优点是它允许程序员不仅描述目标对象的功能,而且描述在访问对象时在后台执行的中间函数。
2007-12-30 cs.PL
Concept-Based Generic Programming in C++
本文通过示例展示 C++ 中基于概念(Concept)的泛型编程技术,强调其作为语言核心部分的实用性,并阐述概念设计的关键理由与起源。
2025-10-09 cs.PL cs.SE
Concept-Oriented Programming: References, Classes and Inheritance Revisited
面向概念编程(COP)的主要目标是描述对象是如何表示和访问的。它使引用(对象位置)成为程序的第一类元素,负责许多难以通过对象建模的重要功能。COP通过引入一个新的构造、概念和一个新的关系、包含,重新思考并概括了类和继承等面向对象的主要概念。一个优点是,仅使用几个基本概念,我们就能够描述目前属于不同编程范式的许多一般思维模式:建模对象层次结构(基于原型的编程),父方法优先于子方法(Beta中的内部方法),模块化横切关注点(面向方面的编程),价值取向(函数式编程)。由于COP仍然向后兼容面向对象编程,它可以被看作是一个前景的发展方向,一个简单而自然的统一编程模型。
2014-09-13 cs.PL cs.SE
Programmable Restoration Granularity in Constraint Programming
在大多数约束编程系统中,提供有限数量的搜索引擎,而用户定制的搜索算法的编程需要低水平的努力,这使得这种算法的部署复杂化。为了减轻这种限制,已经开发了诸如计算空间的概念。计算空间提供了一种粗粒度的恢复机制,因为它们存储了搜索树节点中包含的所有信息。其他粒度是可能的,在本文中,我们提出了在搜索过程中动态适应恢复粒度的情况。为了阐明可编程的恢复粒度,我们提出了一个方面的约束编程系统的恢复,使用面向方面的编程模型。使用Gecode的概念验证实现显示出有希望的结果。
2016-02-04 cs.PL
What we talk about when we talk about monads
计算机科学提供了对编程概念的技术方面的深入理解,但如果我们想了解编程概念如何演变,程序员如何思考和谈论它们以及它们在实践中如何使用,我们需要考虑更广泛的视角,包括历史,哲学和认知方面。在本文中,我们开发了这样一个更广泛的理解单子,编程概念,有一个臭名昭著的正式定义,在几个程序设计语言的语法支持和优雅和强大的声誉,但也恐吓和难以掌握。这篇论文不是一个单子教程。它不会告诉你单子是什么。相反,它可以帮助你理解计算机科学家和程序员如何谈论monads以及他们为什么这样做。为了回答这些问题,我们回顾了程序设计背景下单子的历史,并从科学哲学、数学哲学和认知科学的角度研究了单子的发展。更一般地说,我们提出了一个框架来理解编程概念,认为他们在三个层面:正式的,隐喻和实现。我们的观察是基于科学方法和数学实体的既定结果-认知科学表明,在思考单子时使用的隐喻比广泛接受的更重要,而科学哲学则解释了单子起源的研究范式如何影响和限制它们的使用。最后,我们提供的证据,为什么更广泛的哲学,社会学的编程概念应该感兴趣的程序员。它让我们更好地理解编程概念,并从根本上选择更合适的抽象,如本文结束时的案例研究所示。
2018-03-27 cs.PL
Active Expressions: Basic Building Blocks for Reactive Programming
没有反应式编程的现代软件开发是难以想象的。响应式编程支持对用户输入、网络消息和其他事件做出响应的广泛的当代软件系统。虽然反应式编程是一个活跃的研究领域,但反应式概念的实现仍然具有挑战性。特别是,变化检测是实现反应式概念时的一个困难但不可避免的必要条件。通常,变更检测机制并不打算重用,而是与特定的变更解决机制紧密耦合。因此,开发人员经常不得不重新实现类似的抽象。仍然缺少用于变化检测的可重用原语。为了找到一个合适的原语,我们确定现有的反应概念的共性。我们发现了一类反应概念,基于状态的反应概念。所有基于状态的反应式概念都有一个共同的变化检测机制:它们检测表达式求值结果的变化。在此基础上,我们提出了一种可重用的原语活动表达式。通过抽象变化检测的繁琐实现细节,主动表达式可以简化反应式编程概念的实现。我们评估的设计活动表达式重新实现了一些现有的基于状态的反应式的概念,使用它们。由此产生的实现突出了活动表达式的表现力。当推理反应式编程概念时,活动表达式可以将基本部分与非基本部分分离。通过使用活动表达式作为变更检测的原语,反应式语言构造和运行时支持的开发人员现在可以专注于设计应用程序员应该如何对变更做出反应。最终,我们希望主动表达式能够鼓励人们尝试新的反应式编程概念,并由此产生更多的可供探索的概念。
2017-03-31 cs.PL cs.SE
Concept of the abstract program
本文的目的是改变抽象定义的理论编程模型,已开发多年的Eotvos罗兰大学的程序,以调查的方法,支持设计正确的程序。这种修改的动机是程序的动态特性出现在模型中。这个新的定义的程序给了一只手,扩展模型的概念,子程序,而早期的结果,原来的编程模型被保留。
2012-07-26 cs.PL
The bitwise operations in relation to the concept of set
我们希望这篇文章能帮助编程教师在他的愿望,给一些适当的和有趣的例子。这项工作将是特别有用的学生,未来的程序员,并为他们的讲师。这些程序设计语言C/C++和Java的一些强大方面是低级编程的可能性。实现这种可能性的一些方法是引入标准的逐位操作,在其帮助下,可以直接操作位于计算机存储器中的任意变量的每一位。在目前的研究中,我们将描述一些方法方面的工作与位运算,我们将讨论使用位运算在编程中的好处。本文展示了使用按位运算的一些优点,用集合实现了各种运算。
2021-07-30 cs.PL
Functional Programming and Streams
本文档旨在作为一个独立的教科书章节,用于在主要教学语言为Java的课程中介绍一些函数式编程概念。有关该方法的详细信息,请参阅J. MacCormick的论文“Functional programming,in the数据结构course,in Java”,发表在Journal of Computing Sciences in Colleges(2023)上。
2023-02-18 cs.PL
The C Object System: Using C as a High-Level Object-Oriented Language
C对象系统(Cos)是一个小型的C库,它实现了Clos、Objc和其他面向对象的程序设计语言中可用的高级概念:统一对象模型(类、元类和属性元类)、泛型函数、多方法、委托、属性、异常、契约和闭包。Cos依赖于C程序设计语言的可编程能力来扩展其语法并将上述概念实现为第一类对象。Cos旨在满足几个一般原则,如简单性,可扩展性,可重用性,效率和可移植性,这些在单一的程序设计语言中很少能满足。它的设计是为了提供高效和可移植的消息多分发和消息多转发的实现,这是代码可扩展性和可重用性的核心。有了COS功能,软件应该像脚本语言一样灵活和可扩展,像C编程一样高效和可移植。同样,Cos概念应该大大简化自适应和面向方面的编程以及分布式和面向服务的计算
2010-03-12 cs.PL
Development and Evaluation of Adaptive LearningSupport System Based on Ontology of MultipleProgramming Languages
本文开发并评估了基于跨编程语言本体 CONTINUOUS 和 Elo 评分系统的 ADVENTURE,实验证明其个性化练习推荐能显著改善学习者的正确提交与概念通过情况。
2025-07-26 cs.PL
I CAN HAS SUPERCOMPUTER? A Novel Approach to Teaching Parallel and Distributed Computing Concepts Using a Meme-Based Programming Language
提出了一种新的方法来教授同步和远程存储器访问的并行和分布式计算概念。本文提出的单程序多数据(SPMD)分区全局地址空间(PGAS)模型使用一种面向本科生的过程式程序设计语言。我们建议,有趣的性质的方法可能会产生创造力和兴趣,使用这些概念后,在更清醒的环境。具体来说,我们实现了并行扩展LOLCODE内的源到源编译器足够的并行和分布式算法的发展,通常使用传统的高性能计算语言和API。
2017-03-29 cs.DC cs.PL
Reference Type Logic Variables in Constraint-logic Object-oriented Programming
约束逻辑面向对象的编程,例如使用Muli,促进了商业软件的集成开发,偶尔涉及找到约束逻辑问题的解决方案。面向对象特性的可用性要求将对象也用作逻辑变量,而不是仅限于基本类型的逻辑变量。目前的工作贡献了一个概念,引用类型的逻辑变量的约束逻辑面向对象的编程,考虑到任意类层次结构的程序编写的面向对象的语言。这个概念讨论了约束逻辑面向对象程序和引用类型逻辑变量之间的交互,特别是对逻辑变量的调用和访问,类型操作和等式。此外,它还提出了相应的执行环境如何处理这些交互的方法。
2019-03-01 cs.PL
Do Large Code Models Understand Programming Concepts? Counterfactual Analysis for Code Predicates
Google Research(谷歌研究院);Google DeepMind(谷歌DeepMind)
针对大型代码模型在代码任务中性能卓越但原因不明的问题,提出编程概念谓词反事实分析(CACP)框架,通过黑盒测试10个模型后发现其缺乏对数据流、控制流等编程概念的理解,为探究模型能力本质提供了方法与依据。
2025-02-12 cs.AI cs.LG cs.PL
Logic programming in the context of multiparadigm programming: the Oz experience
Oz是一种多范式语言,支持逻辑编程作为其主要范式之一。多范式语言被设计为支持不同的编程范式(逻辑、函数、约束、面向对象、顺序、并发等)。同样轻松。本文有两个目标:在Oz中给出逻辑编程的教程,并展示逻辑编程如何自然地融入多范式编程的更广泛背景。我们的经验表明,有两类问题,我们称之为算法和搜索问题,逻辑编程可以帮助制定实际的解决方案。数学问题有已知的有效算法。搜索问题没有已知的有效算法,但可以用搜索来解决。Oz对逻辑编程的支持专门针对这两个问题类,使用每个问题类所需的概念。这与Prolog方法相反,Prolog方法用一组概念来针对两个类,这导致对每个类的支持不是最佳的。为了解释算法程序和搜索程序之间的本质区别,我们定义了Oz执行模型。这个模型包含了并发逻辑编程(committed-choice-style)和基于搜索的逻辑编程(Prolog-style)。与Horn子句语法不同,Oz有一个简单的、完全组合的、高阶的语法,它适应了语言的能力。最后,我们总结了从这项工作中吸取的教训,奥兹国的简史,以及奥兹国文学的许多切入点。
2002-08-20 cs.PL
On the Bug-proneness of Structures Inspired by Functional Programming in JavaScript Projects
受函数式编程启发的语言构造已经进入了大多数主流程序设计语言。许多研究人员和开发人员认为,这些结构导致程序更简洁,可重用,更容易理解。然而,很少有研究调查在主流程序设计语言中使用它们的影响。本文量化了JavaScript中与函数式编程相关的四个概念:递归、不变性、惰性求值和函数作为值。我们专注于JavaScript程序,因为这些概念中的一些在语言中的可用性,因为它的灵感来自函数式程序设计语言,以及它的流行。我们挖掘了91个GitHub存储库(2200多万个),其中大部分是用JavaScript编写的(超过50%的代码),从静态和时间角度衡量这些概念的使用情况。我们还测量了错误修复提交删除这些概念的可能性(这将暗示错误倾向)以及它们与代码注释的存在(这将暗示代码难以理解)的关联。我们发现,这些概念被广泛使用(每46.65个,43.59%的人)。此外,高阶函数、不变性和惰性求值相关结构的使用在这些年来一直在增长,而递归、回调和承诺的使用却在减少。我们还发现统计证据表明,除了与不变性相关的结构之外,删除这些结构在bug修复提交中比在其他提交中更不常见。此外,它们的存在与评论大小无关。我们的研究结果表明,函数式编程的概念是很重要的开发人员使用多范式语言,他们的使用不会使程序更难理解。
2022-06-17 cs.PL cs.SE
Constraint-Logic Object-Oriented Programming with Free Arrays
约束逻辑面向对象编程提供了面向对象编程和约束逻辑搜索之间的有用的共生关系。以集成方式使用逻辑变量、约束、非确定性搜索和面向对象编程的能力,有助于在面向对象应用程序中将与搜索相关的程序部分和其他业务逻辑相结合。通过这项工作,我们概念化数组类型的逻辑变量(“自由数组”),从而完成了一套类型的逻辑变量可以假设在约束逻辑面向对象编程。自由数组具有一些有趣的特性,比如长度不确定和对数组元素的访问不确定。
2020-08-31 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
Expectation Programming: Adapting Probabilistic Programming Systems to Estimate Expectations Efficiently
University of Oxford(牛津大学)
我们表明,概率编程系统(PPS)的标准计算管道可能是低效的估计预期,并引入期望编程的概念来解决这个问题。在期望编程中,后端推理引擎的目的是直接估计程序的期望返回值,而不是近似它们的条件分布。这种区别虽然微妙,但使我们能够通过根据我们关心的期望量身定制计算来实现标准PPS计算管道的实质性性能改进。我们实现了一个特定的实例,我们的期望编程的概念,期望编程图灵(EPT),通过扩展PPS图灵允许所谓的目标感知推理自动运行。然后,我们从理论上验证了EPT的统计合理性,并表明它在实践中提供了大量的经验收益。
2022-06-21 cs.LG cs.PL
Better Modeling the Programming World with Code Concept Graphs-augmented Multi-modal Learning
近年来,由于基于最新模型架构的自然语言处理学习方法的设计,代码建模取得了巨大的进展。尽管如此,我们认为,目前的国家的最先进的没有足够的集中在充分的潜力,数据可能带来的学习过程中的软件工程。我们的愿景阐述了利用多模态学习方法来建模编程世界的想法。在本文中,我们探讨了我们的愿景,其目标的基础上的概念图的标识符的目的是利用高层次的领域概念之间的关系,通过特定的语言结构操纵的基本思想之一。特别是,我们建议通过与基于我们的概念图的图神经网络联合学习来增强现有的预训练语言模型。我们进行了初步的评估,显示使用简单的联合学习方法的代码搜索模型的有效性,并提示我们进一步研究我们的研究愿景。
2022-02-21 cs.IR cs.PL cs.SE
Functional Logic Programming with Generalized Circular Coinduction
我们提出了一种方法,以适应功能逻辑编程处理推理coinductively解释的程序,以及归纳解释的程序。为了做到这一点,我们考虑一类有趣的对象,这种共归纳的解释,即正规条款。我们展示了如何通常的数据结构可以适应捕捉这些对象。我们采用Curry的操作语义来解释程序。我们用几个例子来说明这种方法,这些例子显示了我们的方法的工作原理和几种情况下,它可能是有用的。最后,我们建议如何声明性语义可以适当地适应。
2012-03-05 cs.LO cs.PL
Self-composable Programming
许多可变性管理技术依赖于复杂的语言扩展或工具来支持它,虽然这可以提供专用的语法和操作机制,但它难以实际适应,因为将新技术作为开发过程的一部分的成本。我们提出了自组合编程,一种语言驱动的,基于组合的可变性实现,它需要一个面向对象的方法来建模和组成软件中的行为。自组合编程通过提供抽象函数和特定函数的概念引入了行为的层次关系,抽象函数将共性模块化,特定函数继承自抽象函数,并应用精化来包含可变性以实现期望的功能。各种面向对象的技术可以应用在精化过程中,包括显式的基于方法的精化和隐式的基于特征的精化。为了评估潜在的独立性的行为从对象应用面向对象的功能,我们比较它的面向对象的编程概念和经验。
2021-09-14 cs.PL cs.SE
LLM-Aided Customizable Profiling of Code Data Based On Programming Language Concepts
IBM Research(IBM研究院);IIIT Hyderabad(印度信息技术学院海得拉巴分校);NIT Durgapur(杜尔加普尔国家理工学院)
本研究针对代码大语言模型数据集的画像需求,提出LLM辅助的两阶段混合方法,可定制化提取多语言代码的句法与语义概念,准确率表现优异,支持低资源语言与扩展。
2025-03-19 cs.ET cs.IR cs.LG
Domain Views for Constraint Programming
NICTA(澳大利亚国家信息与通信技术研究院);University of Connecticut(康涅狄格大学)
视图是约束编程中的标准抽象:它们可以实现每个约束的单个版本,同时避免创建会减慢传播的新变量和约束。传统的约束编程系统提供{ \em变量视图}的概念,其通过将变量$y$上的所有(域和约束)操作委托给变量$x$来实现类型$y = f(x)$的视图。本文提出了另一种概念{ \em域视图},它只委托域操作。域视图保留了变量视图的优点,但简化了基于值的传播的实现。域视图也支持非内射视图,显著扩展了视图的范围。实验结果证明了域视图的实际好处。
2014-01-21 cs.AI cs.PL
Theory of Programs
从初等集合论的一些概念建立起来的程序、程序设计和程序设计语言的一般理论。作为定理,导出被经典编程方法视为公理的性质。涵盖顺序和并发计算。
2015-12-07 cs.PL cs.SE
Induction, Coinduction, and Fixed Points in PL Type Theory
最近,我们提出了一个简明的调查制定的归纳和共归纳原则,以及一些概念,与他们有关,在程序设计语言类型论和其他四个数学学科。在类型论中的表述涉及这些概念的单独表述,首先是在函数式程序设计语言的类型论中,其次是在面向对象的程序设计语言的类型论中。在这篇文章中,我们表明,分离这两个配方有助于展示一些基本的差异结构子类型,主要在功能程序设计语言,和名义子类型,主要在面向对象的程序设计语言-包括差异有关类型否定和有关存在的归纳类型,共归纳类型,和近似。在这篇文章中,我们还激发了相互共归纳和相互共归纳类型,以及它们的近似,我们简要地讨论了这些概念与面向对象编程(OOP)类型论的潜在相关性。
2019-02-26 cs.LO cs.PL math.CT
Reasoning About a Service-oriented Programming Paradigm
本文介绍了一种新的分布式应用程序开发方法:面向服务的方法。这是一个概念文件的基础上,我们的经验,在开发一个理论和编程服务的语言。理论形式化和语言解释器都向我们展示了一种新的编程范式存在的证据。在本文中,我们说明了它的基本特征。
2009-06-22 cs.DC cs.PL
The Autonomous Data Language -- Concepts, Design and Formal Verification
本文提出自主数据范式和AuDaLa语言,通过形式化方法实现高效并行编程与验证。
2025-06-24 cs.DC cs.PL
Toward Functionality Oriented Programming
提出了面向功能的程序设计的概念,并讨论了面向功能的程序设计的一些方面:(1)实现独立的基本类型和泛型集合类型;(2)实现独立的语法要求和建议;(3)统一的文档和代码;(4)跨模块接口;(5)跨语言程序设计方案。最后给出了一个面向功能的程序设计原型。
2011-02-18 cs.HC cs.PL
How Programming Concepts and Neurons Are Shared in Code Language Models
LMU Munich & Munich Center for Machine Learning(慕尼黑大学及慕尼黑机器学习中心);Sorbonne Université & CNRS, ISIR(索邦大学及国家科学研究中心,ISIR)
本文通过少样本翻译任务和神经元激活分析,揭示了代码语言模型中多种编程语言与英语在概念空间中的共享机制,发现高度对齐的编程语言难以识别语言特定神经元且更接近模型概念空间。
2025-06-01 cs.CL cs.PL cs.SE
Orthogonal Persistence Revisited
潜在的长期存在的大量程序和数据的社会和经济重要性已经引起了商业和研究界的广泛关注。在这里,我们集中讨论一组称为持久编程的方法和技术。特别是,我们审查程序设计语言支持的概念,正交持久性,一种技术的对象的统一处理,无论其类型或寿命。虽然持久性编程的研究已经变得不流行,我们展示了这个概念是如何开始出现作为现代系统的一个主要组成部分。我们将这些尝试与正交持久性的原始原理联系起来,并给出了一些关于未来如何利用这一概念的提示。
2010-06-17 cs.DB cs.PL
The concept of class invariant in object-oriented programming
本文提出一种面向对象程序验证的类不变式证明规则,系统解决回调、隐秘访问和引用泄漏三大难题,并能处理文献中的挑战性示例。
2024-01-20 cs.PL cs.SE
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
Programming Really Is Simple Mathematics
本文基于初等集合论,以零公理方式重构编程基础,用三种操作和子集操作符定义规格、程序及正确性,推导出经典编程定律并机械验证。
2025-02-27 cs.LO cs.PL cs.SE
Making Neural Programming Architectures Generalize via Recursion
University of California, Berkeley(加州大学伯克利分校)
从经验上讲,试图从数据中学习程序的神经网络表现出较差的泛化能力。此外,传统上很难推理出这些模型的行为超出了一定的输入复杂性水平。为了解决这些问题,我们提出用一个关键的抽象来增强神经架构:递归。作为一个应用程序,我们实现了递归神经程序员解释器框架上的四个任务:小学加法,冒泡排序,拓扑排序和快速排序。我们表现出优越的推广性和可解释性与少量的训练数据。递归将问题分成更小的部分,并大大减少了每个神经网络组件的域,使其易于证明整个系统行为的保证。我们的经验表明,为了使神经架构能够鲁棒地学习程序语义,有必要引入递归这样的概念。
2017-04-21 cs.LG cs.NE cs.PL