标签:#编程范式

共 67 篇文章

結構化程式理論

的方式]] 結構化程式理論也稱為伯姆-贾可皮尼理論或Böhm-Jacopini理論,是一項程式語言研究的結果,說明只要一種程式語言可以依三個方式組合其子程式及調整控制流程,每個可计算函数都可以用此種程式語言來表示。三個調整控制流程的方式為 #執行一個子程式,然後執行下一個(顺序) #依照布尔變數的結果,決定執行二段子程式中的一段(選擇) #重覆執行某子程式,直到特定布尔變數為真為止(循环) 符合上述條件的結構圖需要額外的位元變數(在原始…

Vibe coding

撰寫洗牌的Javascript函式]] vibe coding(有譯氣氛編程、氛圍編程)是一種使用AI輔助的編程范式,程式設計師會用提示描述要處理的問題,提供給軟體開發專用的大型语言模型(LLM)。應用程式的原始碼是由大型語言模型產生,程式設計師的工作從原來的撰寫程式碼,改為指導AI產生程式碼,測試及優化程式碼。vibe coding的提倡者認為這甚至可以讓新手程式設計師在沒有以往软件工程要求技能的情形下,可以產出軟體。批評者則指出,v…

隐式编程

隐式(tacit)编程,或称为函数级编程,是一种编程范型,也叫做无点(point-free)样式。其中函数定义不标示所要运算的被称为“点”的参数,转而函数定义只是其他函数的复合,比如那些操纵参数的组合子。隐式编程有着理论价值,因为严格的使用复合导致程序适配于。隐式编程是特定编程语言的天然样式,这包括了APL的一些现代实现和方言,和串接式语言比如Forth。由于缺少参数命名,认为这种风格导致了不必要的晦涩难懂的人,给它起了个绰号叫做“无意…

基于流程编程

在计算机编程中,基于流程(flow-based)编程,缩写为FBP,是一种编程范型,它将应用定义为黑箱进程的网络,它们经过预先定义的连接,通过消息传递来交换数据,而这里的连接是在“外部”指定给进程的。这些黑箱进程不需要更改内部,就可以无尽的重新连接而形成不同的应用。FBP因而是天然基于构件的。 FBP是一种特殊形式的数据流程编程,它基于了有界缓冲区,带有确定生存时间的信息包,命名端口,和独立的连接的定义。 历史 基于流程编程由J. Pa…

同像性

在计算机编程中,同像性(homoiconicity來自希臘語單詞,homo-意為相同,icon含義表像),是某些编程语言的特殊屬性,这意味着用此语言书写的程序,可用使用这个语言将其作为数据来操纵,因此只要阅读程序自身,就能推论出来这个程序的内部表示。该属性经常被归结成,这个語言将“代碼當作-{zh-hans:数据;zh-hant:資料}-”。 簡介 在同像性編程語言中,程序的主要表示方式,也是属于这个語言自身的原始類型的一种資料結構。這…

事件驅動程式設計

事件驅動程式設計()是一種電腦編程範型。這種模型的程式執行流程是由使用者的動作(如滑鼠的按鍵,鍵盤的按鍵動作)或者是由其他程式的訊息來決定的。相對於批次程式設計(batch programming)而言,程式執行的流程是由程式設計師來決定。批处理(batch)的程式設計在初級程式設計教學課程上是一種方式。然而,事件驅動程式設計這種設計模型是在互動程序(Interactive program)的情況下孕育而生的。 事件驅動程序可以由任何程…

反射式编程

在计算机学中,反射式编程()或反射(),是指计算机程序在运行时()可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。 要注意术语“反射”和“类型内省”()的关系。内省(或称“自省”)机制仅指程序在运行时对自身信息(称为元数据)的检测;反射机制不仅包括要能在运行时对程序自身信息进行检测,还要求程序能进一步根据这些信息改变程序状态或结构。,向过程式编程语言介入了“计算反射”的…

量子編程

量子編程(Quantum programming)是匯編指令序列之行程,稱為量子程序,能夠在量子計算機上運行。量子編程語言使用高級結構化的形式以助表達量子演算法的計算。 量子指令集 量子指令集用於將更高級別的演算法轉換為可以在量子處理器上執行的物理指令。有時這些指令是特定於給定的硬體平台,例如離子阱或。 cQASM cQASM,也稱為通用QASM,是一種與硬體無關的QASM,可保證所有量子編譯以及仿真工具之間的互相操作性。它是由TUDe…

自动机编程

自动机编程(')是編程範式中的一種,是指程式或其中的部份是以有限狀態機(FSM)為模型的程式,有些程式則會用其他型式(也更複雜)的自動機為其模型。 有限狀態機編程(')大致上等同於自动机编程,但有限狀態機編程專指以有限狀態機為模型的程式。 自动机编程有以下的二項特徵: 程式執行的時間中可以清楚劃分成數個自動機的步驟(step),每一個步驟即為一個程式區段,有單一的進入點,可以是一個函數或其他程序。若有需要時,程式區段可以再依其狀態的不同…

编程范型

编程范型、编程范式或程序设计法(),是软件工程中的一类典型的编程风格,指对计算机程序实现进行概念化和结构化的相对高阶的方式。常见的编程范型包括:指令式编程(及其子类过程式编程和面向对象编程)、声明式编程(及其子类函数式编程和逻辑编程)、并发编程、约束编程、数据流编程、泛型编程、元编程和可视化编程等。 编程范型提供并决定了程序员对程序执行的看法。例如,在面向对象编程中,程序员认为程序是一系列相互作用的对象;在函数式编程中,一个程序会被看作…

结构化编程

結構化程式設計(),一種編程典範。它採用子程序、块结构、for迴圈以及while迴圈等結構,來取代傳統的 goto。希望藉此來改善计算机程序的明晰性、品質以及開發時間,並且避免寫出麵條式代碼。 結構化程式設計在1960年代開始發展,及朱塞佩·賈可皮尼(Giuseppe Jacopini)於1966年5月在《Communications of the ACM》期刊發表論文,說明任何一個有goto指令的程式,可以改為完全不使用goto指令的…

归纳编程

归纳编程(IP),是特定领域的自动编程,覆盖了人工智能和计算机编程的一些研究领域,它致力于典型的声明式(逻辑式或函数式)且常为递归式程序的机器学习,它们面向不完全的规定比如输入/输出例子或约束。 依赖于使用的编程语言,有很多种归纳编程。“归纳函数式编程”,使用函数式语言比如Lisp或Haskell。而最特别的 ,使用逻辑式编程语言比如Prolog,和其他逻辑式表述比如描述逻辑。尽管它们已经很突出了,但其他编程语言范式也有使用,比如约束编…

面向特征编程

面向特性编程或面向特性软件开发(,简称:FOSD)是一种在计算机程序设计中用于软件产品线和增量开发的编程模式。软件特性是指软件系统中满足需求或代表设计决策的功能。面向特性编程的主要目标是把软件系统解构为功能,使软件开发更能适应用户和使用场景的需求。初始的基程序仅包含最基本的用户需求和功能, 特性作为选择性的功能精化基程序。这种增量开发、逐步精化的开发方法对于软件产品线可变性实现及演化都提供了较好的支持。 基本开发形式 FOP通过对基程序…

及早求值

及早求值()又譯熱切求值,也被稱為貪婪求值(),是多数传统编程语言的求值策略。 在及早求值中,表达式在它被约束到变量的时候就立即求值。这在简单编程语言中作为低层策略是更有效率的,因为不需要建造和管理表示未求值的表达式的中介数据结构。 及早求值的优点在于节省内存和提高执行速度,比如下面的 Basic 代码: x = 5 + 3 (1 + 5 ^ 2) print x print x + 2 因为第一行代码 x = 5 + 3 (1 + 5…

面向对象程序设计

物件導向程式設計(,缩写:)是種具有物件概念的程式設計典範,同时也是一种程式开发的抽象方针。它可能包含資料、特性、程式碼與方法。对象則指的是類別(class)的实例。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性,物件裡的程序可以訪問及經常修改物件相關聯的資料。在物件導向程式編程裡,電腦程式會被設計成彼此相關的物件。 面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统…

面向切面的程序设计

特性導向程式設計(Aspect-oriented programming,AOP,又译作面向方面程序设计、面向切面程序设计、-{zh-hans:剖面导向程序设计;zh-hant:面向方面的程式設計;}-),是计算机科学中的一种编程范型,旨在将交叉切入关注与作为业务主体的核心关注进行分离,以提高程序代码的模块化程度。“方面”(aspect)通过规定叫做“定点切入”(pointcut)的一种量化或查询,在各种接合点(join point)上…

基于原型编程

基于原型编程()或称为-{zh-cn:原型程序设计; zh-tw:基於原型的編程;}-、原型编程,是面向对象编程的一种风格和方式。在原型编程中,行为重用(在基于类的语言通常称为继承),是通过复制已经存在的原型对象的过程实现的。这个模型一般被认为是无类的、面向原型、或者是基于实例的编程。 原型编程最初的(也是最经典的)例子是编程语言Self,它是由和蘭德爾·史密斯(Randall Smith)开发的。但是无类编程方式最近变得越来越受欢迎,…

并行编程模型

在计算机科学中,并行编程模型(Parallel programming model)是并行计算机架构的抽象化,通过它可方便的表达算法和它们在程序中的合成。判别编程模型的价值可以通过它的通用性:在各种不同架构上能表达多大范围的不同问题,和它的性能:编译的程序在执行时有多高的效率。并行编程模型的实现形式可以是从“顺序编程”语言中调用的函式库,作为现存语言的扩展,或作为全新的语言。 围绕特定编程模型的共识是很重要的,这可导致建造不同的并行计算…

模块化编程

模块化编程(),是强调将计算机程序的功能分离成独立的軟體模組的软件设计技术,軟體模組(Software Module)是模組化編程的基本單元。模块化编程使得每个模块都包含着执行预期功能的唯一方面(aspect)所必需的所有东西。 简介 模块接口表达了这个模块所提供的和所要求的元素。这些在接口中定义的元素可以被其他模块检测到。模块实现包含了工作代码,它们对应于在接口中声明的元素。 模块化编程密切相关于结构化编程和面向对象编程,它们有着相同…

契约式设计

契约式设计(,縮寫為 DbC),一种设计计算机软件的方法。这种方法要求软件设计者为软件组件定义正式的,精确的并且可验证的接口,这样,为传统的抽象数据类型又增加了先验条件、后验条件和不变式。这种方法的名字里用到的“契约”或者说“契约”是一种比喻,因为它和商业契约的情况有点类似。 因为“Design by Contract”是属于Eiffel Software的注册商标,很多开发人员用契約式編程(Programming by Contrac…