徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
自由
比浏览器更快的访问!
 

控制流程

指数 控制流程

控制流程(也稱為流程控制)是電腦運算領域的用語,意指在程式執行時,個別的指令(或是陳述、子程序)執行或求值的順序。不論是在宣告式程式語言或是函數程式語言中,都有類似的概念。 在宣告式的程式語言中,流程控制指令是指會改變程式執行順序的指令,可能是執行不同位置的指令,或是在二段(或多段)程式中選擇一個執行。 不同的程式語言所提供的流程控制指令也會隨之不同,但一般可以分為以下四種:.

64 关系: AdaALGOL 60ALGOL 68AppleScript动态内存分配协程子程序宣告式編程尾部递归不动点组合子中央处理器中斷事件迴圈延續性异常处理循環複雜度信号 (计算机科学)分支 (計算機科學)呼叫堆疊冒号函數程式語言BASICC++C语言程序程序自修改程式計數器类 (计算机科学)结构化编程编程语言Edsger Dijkstra面条式代码行號 (程式語言)脚本语言自然数艾茲格·迪科斯徹電腦運算递归 (计算机科学)陳述 (程式)FortranGotoHaskellJavaModula-2Off-side規則Pascal (程式語言)PerlPHPPL/IPython...SchemeUNIXVisual BasicWindows PowerShell控制表條件運算式模組 (程式設計)標記 (程式語言)標識符汇编语言源代码机器语言流程图方法 (電腦科學) 扩展索引 (14 更多) »

Ada

Ada,是一种程序设计语言。它源于美国军方的一个计划,旨在整合美军系统中运行着上百种不同的程序设计语言编写的程序,並提高除錯能力與效率,由Pascal及其他語言擴展而成,比較接近自然語言和數學表達式,並用「Ada」命名以紀念-zh-cn:埃达·洛夫莱斯;zh-tw:愛達·勒芙蕾絲;zh-hk:愛達·勒芙蕾絲;zh-sg:埃达·洛夫莱斯;-(Ada Lovelace)。.

新!!: 控制流程和Ada · 查看更多 »

ALGOL 60

ALGOL 60(源自ALGOrithmic Language 1960的縮寫),一種程式語言,是ALGOL語言家族中的成員之一。根據ALGOL 58的基礎,它在1960年被創造,並影響到其後的CPL、BCPL、B語言、Pascal、Simula、C語言,在程式語言中有著很大的影響力。 它的後繼者是ALGOL 68與ALGOL W。.

新!!: 控制流程和ALGOL 60 · 查看更多 »

ALGOL 68

ALGOL 68(源自ALGOrithmic Language 1968的縮寫),一種指令式程式語言,為ALGOL家族的成員,被認為是ALGOL 60的後繼者。它設計的目標,是提供更廣泛的應用,以及更嚴格的語法定義。.

新!!: 控制流程和ALGOL 68 · 查看更多 »

AppleScript

AppleScript是苹果公司开发的一种脚本语言,可以用来控制运行于Mac OS上的程序,也可以写成独立运行的Applet。最早版本在1993年十月推出,在System 7(System 7.1.1)運行。.

新!!: 控制流程和AppleScript · 查看更多 »

动态内存分配

在计算机科学中, 动态内存分配(Dynamic memory allocation)又称为堆内存分配,是指计算机程序在运行期中分配使用内存。它可以当成是一种分配有限内存资源所有权的方法。 动态分配的内存在被程序员明确释放或被垃圾回收之前一直有效。与静态内存分配的区别在于没有一个固定的生存期。这样被分配的对象称之为有一个「动态生存期」。.

新!!: 控制流程和动态内存分配 · 查看更多 »

协程

与子例程一样,协程也是一种程序组件。相对子例程而言,协程更为一般和灵活,但在实践中使用没有子例程那样广泛。协程源自Simula和Modula-2语言,但也有其他语言支持。协程更适合于用来实现彼此熟悉的程序组件,如合作式多任务,迭代器,无限列表和管道。 协程最初在1963年被提出。.

新!!: 控制流程和协程 · 查看更多 »

子程序

在计算机科学中,子程式(Unterprogramm, Subroutine, procedure, function, routine, method, subprogram, callable unit),是一個大型程式中的某部份程式碼,由一个或多个语句块组成。它負責完成某項特定--,而且相較於其他程式碼,具備相對的獨立性。 一般会有输入参数并有--,提供对过程的封装和细节的隐藏。这些代码通常被整合为软件库。 函数在-zh:程序導向;zh-tw:程序導向;zh-cn:面向过程-的语言中已经出现。是结构(Struct)和-zh:類別;zh-tw:類別;zh-cn:类-(Class)的前身。本身就是对具有相关性语句的归类和对某过程的抽象。.

新!!: 控制流程和子程序 · 查看更多 »

宣告式編程

宣告式編程(Declarative programming)是一種编程范式,与指令式編程相對立。它描述目標的性質,讓電腦明白目標,而非流程。声明式编程不用告诉电脑问题领域,从而避免随之而来的副作用。而指令式编程则需要用算法来明确的指出每一步该怎么做。 声明式编程通常被看做是形式逻辑的理论,把计算看做推导。声明式编程因大幅简化了并行计算的编写难度,自2009起备受关注。 声明式语言包括数据库查询语言(SQL,XQuery),正则表达式,逻辑编程,函数式编程和组态管理系统。 宣告式編程透過函數、推論規則或项重写(term-rewriting)規則,來描述變數之間的關係。它的語言執行器(編譯器或解释器)採用了一個固定的算法,以從這些關係產生結果。 宣告式編程語言通常用作解決人工智能和約束滿足問題。.

新!!: 控制流程和宣告式編程 · 查看更多 »

尾部递归

#重定向 尾调用.

新!!: 控制流程和尾部递归 · 查看更多 »

不动点组合子

不动点组合子(Fixed-point combinator,或不动点算子)是计算其他函数的一个不动点的高阶函数。 函数 f 的不动點是將函數應用在輸入值 x 時,會傳回與輸出值相同的值,使得 f(x).

新!!: 控制流程和不动点组合子 · 查看更多 »

中央处理器

中央处理器 (Central Processing Unit,缩写:CPU),是计算机的主要设备之一,功能主要是解释计算机指令以及处理计算机软件中的数据。计算机的可编程性主要是指对中央处理器的编程。中央处理器、内部存储器和输入/输出设备是现代电脑的三大核心部件。1970年代以前,中央处理器由多个独立单元构成,后来发展出由集成电路制造的中央处理器,這些高度收縮的元件就是所謂的微处理器,其中分出的中央处理器最為复杂的电路可以做成单一微小功能强大的单元。 中央处理器廣義上指一系列可以执行复杂的计算机程序的逻辑机器。这个空泛的定义很容易地将在“CPU”这个名称被普遍使用之前的早期计算机也包括在内。无论如何,至少从1960年代早期开始,这个名称及其缩写已开始在电子计算机产业中得到广泛应用。尽管与早期相比,“中央处理器”在物理形态、设计制造和具体任务的执行上有了极大的发展,但是其基本的操作原理一直没有改变。 早期的中央处理器通常是为大型及特定应用的计算机而定制。但是,这种昂贵的为特定应用定制CPU的方法很大程度上已经让位于开发便宜、标准化、适用于一个或多个目的的处理器类。这个标准化趋势始于由单个晶体管组成的大型机和微机年代,随着集成电路的出现而加速。IC使得更为复杂的中央处理器可以在很小的空间中设计和制造(在微米的數量级)。中央处理器的标准化和小型化都使得这一类数字设备和電子零件在现代生活中的出现频率远远超过有限应用专用的计算机。现代微处理器出现在包括从汽车到手机到儿童玩具在内的各种物品中。.

新!!: 控制流程和中央处理器 · 查看更多 »

中斷

在计算机科学中,中断(Interrupt)是指處理器接收到來自硬體或軟體的信號,提示發生了某個事件,應該被注意,這種情況就稱為中斷。 通常,在接收到来自外围硬件(相对于中央处理器和内存)的异步信号,或来自软件的同步信号之後,處理器將會进行相应的硬件/软件处理。发出这样的信号称为进行中断请求(interrupt request,IRQ)。硬件中断导致处理器通过一个執行資訊切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种執行資訊切换,并将处理导向一段中断处理代码。中断在计算机多任务处理,尤其是即時系统中尤为有用。这样的系统,包括运行于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。.

新!!: 控制流程和中斷 · 查看更多 »

事件迴圈

#重定向 事件环.

新!!: 控制流程和事件迴圈 · 查看更多 »

延續性

在计算机科学和程序设计中,计算续体(continuation)是计算机程序的控制状态的一种抽象表现。 延續性实化了程序状态信息。可以理解为,一个计算续体以数据结构的形式表现了程序在运行过程中某一点的计算状态,相应的数据内容可以被编程语言访问,而不是被运行时环境所隐藏掉。这对实现编程语言的某些控制机制,如异常处理、协程、生成器非常有用。 计算续体包含了当前程序的栈(包括当前周期内的所有数据,也就是本地变量),以及当前运行的位置。一个计算续体的实例可以在将来被用做控制流,被调用时它从所表达的状态开始恢复执行。 Category:控制流程 Category:计算机科学 Category:计算机编程.

新!!: 控制流程和延續性 · 查看更多 »

异常处理

异常处理,是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况(即超出程序正常执行流程的某些特殊条件)。 各种编程语言在处理异常方面具有非常显著的不同点(错误检测与异常处理区别在于:错误检测是在正常的程序流中,处理不可预见问题的代码,例如一个调用操作未能成功结束)。某些编程语言有这样的函数:当输入存在非法数据时不能被安全地调用,或者返回值不能与异常进行有效的区别。例如,C语言中的atoi函数(ASCII串到整数的转换)在输入非法时可以返回0。在这种情况下编程者需要另外进行错误检测(可能通过某些辅助全局变量如C的errno),或进行输入检验(如通过正则表达式),或者共同使用这两种方法。 通过异常处理,我们可以对用户在程序中的非法输入进行控制和提示,以防程序崩溃。 从进程的视角,硬件中断相当于可恢复异常,虽然中断一般与程序流本身无关。 从子程序编程者的视角,异常是很有用的一种机制,用于通知外界该子程序不能正常执行。如输入的数据无效(例如除数是0),或所需资源不可用(例如文件丢失)。如果系统没有异常机制,则编程者需要用返回值来标示发生了哪些错误。.

新!!: 控制流程和异常处理 · 查看更多 »

循環複雜度

循環複雜度(Cyclomatic complexity)也稱為條件複雜度或圈复杂度,是一種軟體度量,是由在1976年提出,用來表示程式的複雜度,其符號為VG或是M。循環複雜度由程式的源代碼中量測線性獨立路徑的個數。此概念有些類似的量測文字複雜度的 ,不過方法不完全相同。 循環複雜度是由程式的來計算:有向圖的節點對應程式中個別的程式碼,而若一個程式執行後會立刻執行另一程式碼,會有邊連結二程式碼對應的節點。圈複雜度可應用在程式的子程序、模組、方法或類別。 麥凱布首先提出一種稱為「基礎路徑測試」(Basis Path Testing)的軟體測試方式,是測試程式中的每一線性獨立路徑,此情形的測試用例個數即為程式的循環複雜度。 「循環複雜度」的名稱有時會讓人誤解,因為此複雜度不只計算程式中的迴圈(循環)個數。循環複雜度是指程式的控制流圖中,若將結束點到啟始點再增加一個邊時,控制流圖中的圈(幾個邊形成封閉路徑)的個數。.

新!!: 控制流程和循環複雜度 · 查看更多 »

信号 (计算机科学)

#重定向 Unix信号.

新!!: 控制流程和信号 (计算机科学) · 查看更多 »

分支 (計算機科學)

在計算機科學中,分支(Branch)是在電腦程式中的一段序列程式碼。它會視情況而執行,主要是看控制流程在這個情況下,是否決定執行它。在高階語言與組合語言,乃至於機器碼寫成的程式中,都可以看到分支的存在。在高階語言中,通常會使用條件語句的形式,把分支包起來,並決定在何種狀況下,應該要執行哪一個分支指令。在組合語言與機器碼層級中,則使用跳躍指令(jump instructions),以標記定義出相對應的分支碼。 Category:控制流程.

新!!: 控制流程和分支 (計算機科學) · 查看更多 »

呼叫堆疊

呼叫堆疊(Call stack--,英文直接简称为“栈”(the stack))别称有:执行栈(execution stack)、控制栈(control stack)、运行时栈(run-time stack)与机器栈(machine stack),是電腦科學中存儲有關正在執行的子程式的訊息的堆疊。有時僅稱「堆疊」,但堆疊中不一定僅存儲子程式訊息。幾乎所有電腦程式都依賴於呼叫堆疊,然而高階語言一般將呼叫堆疊的細節隱藏至後台。 呼叫堆疊最經常被用於存放子程式的返回位址。在呼叫任何子程式時,主程式都必須暫存子程式執行完畢後應該返回到的位址。因此,如果被呼叫的子程式還要呼叫其他的子程式,其自身的返回位址就必須存入呼叫堆疊,在其自身執行完畢後再行取回。在遞迴程式中,每一層次遞迴都必須在呼叫堆疊上增加一條位址,因此如果程式出現無限遞迴(或僅僅是過多的遞迴層次),呼叫堆疊就會產生堆疊溢位。.

新!!: 控制流程和呼叫堆疊 · 查看更多 »

冒号

冒号(: colon),提起下文或总结上文的符号。用途有:.

新!!: 控制流程和冒号 · 查看更多 »

函數程式語言

函數式編程(functional programming)或称函数程序设计,又稱泛函編程,是一種編程典範,它將電腦運算視為數學上的函數計算,並且避免使用程序状态以及易变物件。函數程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。 比起指令式編程,函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。.

新!!: 控制流程和函數程式語言 · 查看更多 »

BASIC

BASIC(來自Beginner's All-purpose Symbolic Instruction Code的縮寫),又譯培基,一種直譯式程序设计语言。名稱字面為意思“初學者的全方位符式指令代碼”,設計給初學者使用的程式語言,在完成編寫後不須經由编译及連結等手續,經過直譯器即可執行,但如果需要單獨執行時仍然需要將其建立成執行檔。.

新!!: 控制流程和BASIC · 查看更多 »

C++

C++是一種使用廣泛的计算机程序設計語言。它是一種通用程序設計語言,支援多重编程模式,例如程序化程序設計、数据抽象、面向对象程序設計、泛型程序設計和设计模式等。 比雅尼·斯特勞斯特魯普博士在贝尔实验室工作期间在20世紀80年代發明並實現了C++。起初,這種語言被稱作“C with Classes”(“包含‘類’的C語言”),作為C語言的增強版出現。随后,C++不斷增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多繼承(multiple inheritance)、标准模板库(standard template library, STL)、异常处理(exception)、运行时类型信息(Runtime type information)、命名空間(namespace)等概念逐漸納入標準。1998年,國際標準組織(ISO)頒布了C++程序設計語言的第一個國際標準ISO/IEC 14882:1998,目前最新标准为ISO/IEC 14882:2017。根據《C++編--程思想》(Thinking in C++)一書,C++與C的代码执行效率往往相差在±5%之間。 C++語言發展大概可以分為三個階段:第一階段從80年代到1995年。這一階段C++語言基本上是傳統類型上的面向对象語言,並且憑藉着接近C語言的效率,在工業界使用的開發語言中佔據了相當大份額;第二階段從1995年到2000年,這一階段由於標準模板庫(STL)和後來的Boost等程式庫的出現,泛型程序設計在C++中佔據了越來越多的比重。當然,同時由於Java、C#等語言的出現和硬體價格的大規模下降,C++受到了一定的衝擊;第三階段從2000年至今,由於以Loki、MPL(Boost)等程式庫為代表的產生式編程和模板元編程的出現,C++出現了發展歷史上又一個新的高峰,這些新技術的出現以及和原有技術的融合,使C++已經成為當今主流程序設計語言中最複雜的一員。.

新!!: 控制流程和C++ · 查看更多 »

C语言

C是一种通用的程式語言,广泛用于系统软件与应用软件的开发。于1969年至1973年間,為了移植與開發UNIX作業系統,由丹尼斯·里奇與肯·汤普逊,以B语言为基础,在贝尔实验室設計、开发出來。 C语言具有高效、灵活、功能丰富、表达力强和較高的可移植性等特点,在程式設計中备受青睐,成为最近25年使用最为广泛的编程语言。目前,C语言編譯器普遍存在於各種不同的操作系统中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了众多後來的程式語言,例如C++、Objective-C、Java、C#等。 二十世纪八十年代,為了避免各開發廠商用的C語言語法產生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言的標準。二十世纪八十年代至今的有关程式開發工具,一般都支持符合ANSI C的語法。.

新!!: 控制流程和C语言 · 查看更多 »

程序

程序(procedure),指特定的一系列動作、行動或操作,而這些活動、動作或操作必須以相同方式執行,藉此在相同環境下恆常得出相同的結果(例如緊急應變程序)。粗略而言,程序可以指一序列的活動、作業、步驟、決斷、計算和工序,當它們保證依照嚴格規定的順序發生時即產生所述的後果、產品或局面。一個程序通常引致一個改變。現在小孩也可以寫程式。.

新!!: 控制流程和程序 · 查看更多 »

程序自修改

程序自修改(Self-modifying code)是指程序在运行期间(Run time)修改自身指令。可能的用途有:病毒利用此方法逃避杀毒软件的查杀,反静态分析,反盗版 ,單晶片程序升级。.

新!!: 控制流程和程序自修改 · 查看更多 »

程式計數器

程序计数器(Program Counter (PC))是一个处理器中的寄存器,用于指示计算机在其程序序列中的位置。它通常称为 Intel x86 和 Itanium 微处理器中的指令指针(IP),有时称为指令地址寄存器(IAR)、指令计数器或只是指令序列器的一部分。 在大部分的處理器,指令指標都是在提取程式指令後就被立即增加;也就是說跳躍指令的目的位址,是由跳躍指令的運算元加上跳躍指令之後下一個指令的位址(位元或字節,視電腦形態而定)來獲得目的地。 处理器通常从存储器中顺序获取指令,但控制传输指令通过在PC中添加一个新值来改变顺序。这些包括“分支”(有时称为“跳转”),“子例程调用”和“返回”。以某些断言的真实为条件的传输可让计算机在不同条件下遵循不同的顺序。 “分支”规定下一条指令从内存中的其他地方获取。“子程序”不仅调用分支,而且还保存 PC 的先前内容。“返回”检索 PC 的保存内容并将其放回去,然后按照子程序调用的指令继续顺序执行。.

新!!: 控制流程和程式計數器 · 查看更多 »

类 (计算机科学)

在物件導向程式設計,类(class)是一种面向对象计算机编程语言的构造,是创建对象的蓝图,描述了所创建的对象共同的和方法。 类的更严格的定义是由某种特定的元数据所组成的内聚的包。它描述了一些对象的行为规则,而这些对象就被称为该类的实例。类有接口和结构。接口描述了如何通过方法与类及其实例互操作,而结构描述了一个实例中数据如何划分为多个属性。类是与某个层的对象的最具体的类型。类还可以有运行时表示形式(元对象),它为操作与类相关的元数据提供了运行时支持。 支持类的编程语言在支持与类相关的各种特性方面都多多少少有一些微妙的差异。大多数都支持不同形式的类继承。许多语言还支持提供封装性的特性,比如访问修饰符。类的出现,为面向对象编程的三个最重要的特性(封装性、继承性、多态性),提供了实现的手段。.

新!!: 控制流程和类 (计算机科学) · 查看更多 »

结构化编程

結構化程式設計(Structured programming),一種編程典範。它採用子程序、、for迴圈以及while迴圈等結構,來取代傳統的 goto。希望藉此來改善计算机程序的明晰性、品質以及開發時間,並且避免寫出麵條式代碼。 結構化程式設計在1960年代開始發展,及朱塞佩·賈可皮尼(Giuseppe Jacopini)於1966年5月在《Communications of the ACM》期刊發表論文,說明任何一個有goto指令的程式,可以改為完全不使用goto指令的程式,後來艾兹赫尔·戴克斯特拉在1968年也提出著名的論文《GOTO陳述有害論》(Go To Statement Considered Harmful),,因此結構化程式設計開始盛行,此概念理論上可以由結構化程式理論所證明,而在實務上,當時也有像ALGOL一樣,有豐富控制結構的程式語言來實現結構化程式設計。.

新!!: 控制流程和结构化编程 · 查看更多 »

编程语言

编程语言(programming language),是用来定义计算机程序的形式語言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。 最早的编程语言是在電腦發明之前產生的,當時是用來控制及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的编程語言,而且每年仍有新的编程語言誕生。很多编程語言需要用指令方式說明計算的程序,而有些编程語言則屬於宣告式編程,說明需要的結果,而不說明如何計算。 编程语言的描述一般可以分為及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如C語言的規格文件也是ISO標準中一部份,2011年後的版本為ISO/IEC 9899:2011,而其他55語言(像Perl)有一份主要的文件,視為是。.

新!!: 控制流程和编程语言 · 查看更多 »

Edsger Dijkstra

#重定向 艾兹赫尔·戴克斯特拉.

新!!: 控制流程和Edsger Dijkstra · 查看更多 »

面条式代码

-zh-cn:意;zh-tw:義;-大利面,面条式代码也是如此的扭曲纠结。 面条式代码(Spaghetti code)是软件工程中反面模式的一种William J. Brown, Raphael C. Malveau, Hays W. "Skip" McCormick, Thomas J. Mowbray (1998).

新!!: 控制流程和面条式代码 · 查看更多 »

行號 (程式語言)

行號是程式語言中的一個用語,是用來識別文本文件各行的數字。最常見的作法是在各行指定不重複的數字,第一行數字為1,後續各行依序加一。 C語言中源代码的行號定義成從檔案開始到指定位置之間,所讀到換行符號的個數再加一。 在一些古老的程式語言(如GW-BASIC)中,行號是程式語法中必需的一部份。 主要原因是當時的作業系統缺乏交互式的文字編輯器,程式編輯器的界面往往只有行编辑器。指定行號可以使編輯器知道要編輯哪一行,也可以在原代碼的特定位置中插入一行。行號也可以將程式實際需要執行的先後順序和輸入程式時的順序區隔開來。 現在的作業系統普遍都有交互式文字編輯器的功能,因此大部份的程式語言都已不需要行號。.

新!!: 控制流程和行號 (程式語言) · 查看更多 »

脚本语言

脚本语言(Scripting language)是为了缩短传统的「编写、编译、链接、运行」(edit-compile-link-run)过程而创建的计算机编程语言。早期的脚本语言经常被称为批处理语言或工作控制语言。一个脚本通常是解释运行而非编译。脚本語言通常都有簡單、易學、易用的特性,目的就是希望能讓程式設計師快速完成程式的編寫工作。而巨集語言則可視為脚本語言的分支,兩者也有實質上的相同之處。 虽然许多脚本语言都超越了计算机简单任务自动化的领域,成熟到可以编写精巧的程序,但仍然还是被称为脚本。几乎所有计算机系统的各个层次都有一种脚本语言。包括操作系统层,如计算机游戏,网络应用程序,字处理文档,网络软件等。在许多方面,高级编程语言和脚本语言之间互相交叉,二者之间没有明确的界限。.

新!!: 控制流程和脚本语言 · 查看更多 »

自然数

数学中,自然数指用于计数(如「桌子上有三个苹果」)和定序(如「国内第三大城市」)的数字。用于计数时称之为基数,用于定序时称之为序数。 自然数的定义不一,可以指正整数 (1, 2, 3, 4, \ldots),亦可以指非负整数 (0, 1, 2, 3, 4, \ldots)。前者多在数论中使用,后者多在集合论和计算机科学中使用,也是 标准中所采用的定义。 数学家一般以\mathbb代表以自然数组成的集合。自然数集是一個可數的,無上界的無窮集合。.

新!!: 控制流程和自然数 · 查看更多 »

艾茲格·迪科斯徹

#重定向 艾兹赫尔·戴克斯特拉.

新!!: 控制流程和艾茲格·迪科斯徹 · 查看更多 »

電腦運算

#重定向 计算 (计算机科学).

新!!: 控制流程和電腦運算 · 查看更多 »

递归 (计算机科学)

遞迴(recursion)在電腦科學中是指一種通過重複將問題分解為同類的子問題而解決問題的方法。 遞迴式方法可以被用於解決很多的電腦科學問題,因此它是電腦科學中十分重要的一個概念。 絕大多數程式語言支援函式的自呼叫,在這些語言中函式可以通過呼叫自身來進行遞迴。計算理論可以證明遞迴的作用可以完全取代迴圈,因此在很多函數程式語言(如Scheme)中習慣用遞迴來實現迴圈。 電腦科學家尼克勞斯·維爾特如此描述遞迴:.

新!!: 控制流程和递归 (计算机科学) · 查看更多 »

陳述 (程式)

#重定向 語句 (程式設計).

新!!: 控制流程和陳述 (程式) · 查看更多 »

Fortran

福傳(Fortran),源自於「公式翻译」(Formula Translation)的縮寫,是一種程式語言。1957年由IBM開發出,是世界上第一个被正式采用並流传至今的高级编程語言。.

新!!: 控制流程和Fortran · 查看更多 »

Goto

GOTO是一条可以在许多计算机编程语言中找到的语句。它是英文单词go和to的组合。当执行这条语句的时候,它将控制流程无条件地转到另一条语句(也叫「跳转」)。跳转语句需要指明標記,在不同语言中,標記可以是标识符或行号。在机器码级别,goto是一种分支的形式。 在一些语言中,可以不用显示地使用goto关键字而实现同样的功能,例如break或continue关键字可以跟随一个标识符。SNOBOL语言支持一种语句的后缀形式,可以在本条语句执行完毕后实现无条件跳转。 GOTO语句被大部分高级语言支持,只有很少的高级语言不支持GOTO语句。例如,goto是一个Java语言的保留字,但是不允许使用。.

新!!: 控制流程和Goto · 查看更多 »

Haskell

Haskell()是一种标准化的,通用的纯函數程式語言,有非限定性语义和强静态类型。它的命名源自美国逻辑学家哈斯凱爾·加里,他在数理逻辑方面上的工作使得函数式编程语言有了广泛的基础。在Haskell中,“函数是第一類物件”。作为一门函數程式語言,主要控制结构是函数。Haskell语言是1990年在编程语言Miranda的基础上标准化的,并且以λ演算为基础发展而来。这也是为什么Haskell语言以希腊字母「λ」(Lambda)作为自己的标志。Haskell具有“证明即程序、命题为类型”的特征, with 2 sections by William Craig, see paragraph 9E。.

新!!: 控制流程和Haskell · 查看更多 »

Java

Java是一種廣泛使用的電腦程式設計語言,擁有跨平台、物件導向、泛型程式設計的特性,广泛应用于企业级Web应用开发和移动应用开发。 任職於昇陽電腦的詹姆斯·高斯林等人于1990年代初开发Java語言的雛形,最初被命名为Oak,目標設定在家用电器等小型系統的程式语言,應用在电视机、电话、闹钟、烤面包机等家用电器的控制和通訊。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代網際網路的发展,Sun公司看見Oak在網際網路上应用的前景,于是改造了Oak,於1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 Java编程语言的风格十分接近C++语言。继承了C++语言面向对象技术的核心,Java舍弃了C++语言中容易引起错误的-zh-hans:指针; zh-hant:指標;-,改以-zh-hans:引用; zh-hant:參照;-取代,同時移除了C++中的--和多重继承特性,改用接口取代,增加垃圾回收器功能。在Java SE 1.5版本中引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱特性。昇陽電腦对Java语言的解释是:「Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言」 Java不同於一般的编译語言或直譯語言。它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编写,到处运行”的跨平台特性。在早期JVM中,这在一定程度上降低了Java程序的运行效率。但在J2SE1.4.2发布后,Java的執行速度有了大幅提升。 与传统型態不同,Sun公司在推出Java時就将其作为开放的技术。全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容。“Java语言靠群体的力量而非公司的力量”是 Sun公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同,此外,微软公司後來推出了与之竞争的.NET平台以及模仿Java的C#语言。後來Sun公司被甲骨文公司併購,Java也隨之成為甲骨文公司的產品。 現時,行動作業系統Android大部分的代碼採用Java 程式設計語言編程。.

新!!: 控制流程和Java · 查看更多 »

Modula-2

Modula-2是由图灵奖获得者尼克劳斯·维尔特(Niklaus Wirth)所提出的一个程式語言。Modula-2之名是根據其3個編譯單元的模組而來,這些模組分別為程式模組(Program Module),定義模組(Definition Module)及執行模組(Implementation Module)。 Wirth根據其早期對Pascal、模組程式語言(Modula)或稱為Modula-1程式語言及Alto電腦的經驗來定義Modula-2。在1976至1977年間,Wirth在Xerox Palo Alto研究中心與一群設計Alto電腦的工作夥伴一同工作,次年,他開始一個在瑞士聯邦理工學院資訊研究所的Lilith個人電腦計畫。該計畫主要的原則乃是以Modula-2為Lilith的系統程式語言,而以Lilith為Modula-2的組織架構。由於不需組譯器(Assembler),該語言不僅適用於編寫高階的應用程式,也應適用於編寫低階,與機器相關的編碼程式(Machine-Dependent Coding),用裝置的操控與儲存體的配置。 該語言本身與Lilith結構之設計,都以優雅及簡單為原則,在整個Lilith計畫的生命期中(1978-1988),作業系統、繪圖套裝軟體、資料庫系統、網路協議、檔案伺服器及許多其他系統和應用模組都是藉著Modula-2發展出來的。 Modula-2設計是讓其程式模組得以重複使用(Reuse)。它藉著提供一些標準程式庫,如異常處置(Exception Handling)、字串處理(String Processing)、輸入/輸出(I/O)及並行程式設計(Concurrent Programming)等來降低語言本身的複雜度。 一個Modula-2的定義模組(Definition Module)定義抽象化資料(Data Abstraction)的介面規格。一個定義模組是與其相對應的實作模組(Implementation Module)個別分開來編譯。一旦編譯好就不必再改變。一個定義模組(Definition Module)包含對常數、類型(Type)、變數及程序標頭的宣告。只有那些可能會被其他程式設計師引用到的程式標頭才會被宣告在定義模組內。那些相對應的執行模組包括區域性的常數、類型、變數宣告;以及外部程序和內部實作所需用到的程序定義。 程式是由上而下(Top-Down)的方式發展,其步驟乃是先建立若干定義模組,之後再隨著需要建立實作模組的部分。每一個實作模組可在其被呼叫前對其區域性的資料結構設定初始值。Modula-2也需偵測在實作模組內的資料是否已過時而導致資料的不一致。 Modula-2程式語言有幾項特色使其在電腦科學的發展過程中有著功不可沒的功勞。首先,它所提出的電腦架構、語言和作業環境的整合概念是一項創舉;其次,它強調程式設計師在使用者介面的設計上,至少需花費用同實作程式設計時所耗費的成本和努力。最後,它提出對抽象化資料的簡化。.

新!!: 控制流程和Modula-2 · 查看更多 »

Off-side規則

#重定向 越位规则.

新!!: 控制流程和Off-side規則 · 查看更多 »

Pascal (程式語言)

Pascal是一个有影响的面向对象和面向过程编程语言,由尼克劳斯·维尔特在1968年9月设计,在1970年发行,作为一个小型的和高效的语言,意图鼓励使用结构化编程和数据结构进行良好的编程实践。 称作Object Pascal的一个衍生是为面向对象编程设计的。.

新!!: 控制流程和Pascal (程式語言) · 查看更多 »

Perl

Perl是高階、通用、直譯式、動態的程式语言家族。最初设计者拉里·沃尔為了讓在UNIX上進行報表處理的工作變得更方便,決定開發一個通用的腳本語言,而在1987年12月18日發表。目前,Perl语言家族包含两个分支Perl 5以及Perl 6(开发中)。 Perl借用了C、sed、awk、shell脚本以及很多其他程式語言的特性。其中最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。 2000年开始,目前拉里·沃尔开始開發Perl 6,來作為Perl的後繼;不過,Perl 6語言的語法有很多轉變,所以Perl 6被視為Perl家族中的另一個語言。 Perl语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。.

新!!: 控制流程和Perl · 查看更多 »

PHP

PHP(全称:PHP:Hypertext Preprocessor,即“PHP:超文本预处理器”)是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用。PHP的语法借鉴吸收C语言、Java和Perl等流行计算机语言的特点,易于一般程序员学习。PHP的主要目标是允许网络开发人员快速编写动态页面,但PHP也被用于其他很多领域。 PHP最初是由勒多夫在1995年开始开发的;現在PHP的標準由the PHP Group維護。PHP以PHP License作為許可協議,不過因為這個協議限制了PHP名稱的使用,所以和開放原始碼許可協議GPL不相容。 PHP的應用範圍相當廣泛,尤其是在網頁程式的開發上。一般來說PHP大多執行在網頁伺服器上,透過執行PHP程式碼來產生使用者瀏覽的網頁。PHP可以在多數的伺服器和作業系統上執行,而且使用PHP完全是免費的。根據2013年4月的統計資料,PHP已經被安裝在超過2億4400萬個網站和210萬台伺服器上。 PHP在windows上有专门的官方移植编译项目,并且分多个VC编译器版本和线程安全特性来提供不同的版本支持。.

新!!: 控制流程和PHP · 查看更多 »

PL/I

PL/I(),源自第一編程語言(Programming Language One的縮寫),一種程序式、指令式程式語言。由IBM公司在1950年代发明的第三代高级编程语言,用于IBM的MVS、或迪吉多的VAX/VMS等操作系统中。 在系统软件,图像,仿真,文字处理,网络,商业软件等领域均可应用。 有些类似PASCAL语言。.

新!!: 控制流程和PL/I · 查看更多 »

Python

Python( ),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以視之為一種改良(加入一些其他程式語言的優點,如物件導向)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比於C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 与Scheme、Ruby、Perl、Tcl等动态类型编程语言一样,Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。 Python 解释器本身几乎可以在所有的操作系统中运行。Python的正式直譯器CPython是用C语言编写的、是一個由社群驱动的自由软件,目前由Python软件基金会管理。.

新!!: 控制流程和Python · 查看更多 »

Scheme

Scheme是一种函数式编程语言,是Lisp的两种主要方言之一(另一种为Common Lisp)。不同于Common Lisp,Scheme遵循極簡主義哲学,以一个小型语言核心作为标准,加上各种强力语言工具(语法糖)来扩展语言本身。 麻省理工學院與其他院校曾采用Scheme教授计算机科学入門課程。著名的入門教材《-zh-hans:计算机程序的构造和解释;zh-hant:電腦程式的構造和解釋-》(SICP)利用Scheme來解釋程序設計 。Scheme的廣泛受眾被視為一個主要優勢,然而不同實現之間的差異成為了它的一個劣勢。 Scheme最早由麻省理工學院的蓋伊·史提爾二世與傑拉德·傑伊·薩斯曼在1970年代發展出來,並由兩人發表的「λ論文集」推廣開來。 Scheme語言與λ演算關係十分密切。小寫字母「λ」是Scheme語言的標誌。 Scheme的哲学是:设计计算机语言不应该进行功能的堆砌,而应该尽可能减少弱点和限制,使剩下的功能显得必要。Scheme是第一個使用靜態作用域的Lisp方言,也是第一个引入“干净宏”和第一类续延的编程语言。.

新!!: 控制流程和Scheme · 查看更多 »

UNIX

UNIX,一种计算机操作系统,具有多任务、多用户的特征。于1969年,在美国AT&T公司的贝尔实验室开发類UNIX(UNIX-like)。.

新!!: 控制流程和UNIX · 查看更多 »

Visual Basic

Visual Basic(VB)是由微軟公司开发的包含环境的事件驱动编程语言。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速應用程式開發(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松地使用VB提供的组件快速建立一个应用程序。.

新!!: 控制流程和Visual Basic · 查看更多 »

Windows PowerShell

PowerShell(包括Windows PowerShell and PowerShell Core)是微軟公司开发的任务自动化和組態管理框架,由.NET Framework和.NET Core是构建的命令行界面殼層相关脚本语言组成,最初仅Windows组件,后于2016年8月18日开源并跨平台支持。 在PowerShell中,管理任务通常由cmdlets(发音为command-lets)执行,这是执行特定操作的专.NET类。可以将cmdlet集合至脚本、可执行文件(一般是独立应用程序)中,或通过常规.NET类(或WMI / COM对象)实例化。通过访问不同数据存储中的数据由PowerShell运行,如资源管理器或注册表。.

新!!: 控制流程和Windows PowerShell · 查看更多 »

控制表

控制表是一個決定控制流程或是主要影響控制流程的表。關於控制表的結構或內容沒有硬性的規定,其特點是其可以影響控制流程的能力。這類表格的設計有時稱為「表格驅動設計」(不過後者多半是指由外部的表格自動生成程式碼,而不是在程式中的表格)。以有限狀態機為基礎的自动机编程有時會用控制表為其實現方式。若控制表有幾個不同的層次,其行為就類似。 控制表有時會以的方式表示,其中會有對應的條件表示式及子程序。控制表可以簡化一些類似的程式敘述,而且若是二維的控制表,在閱讀及更新上都比一維特性的程式碼要容易維護,有時控制表甚至可以讓非程式設計師來維護。電腦科學家高德納在1974年提出的論文《Structured Programming with go to Statements》中就提到「多路分支是一種重要的程式設計技術,但常常被一些數量不足的if指令取代」。.

新!!: 控制流程和控制表 · 查看更多 »

條件運算式

在計算機科學中,--(conditional expressions),又稱--、條件表示式,是一種程式語言的功能,它可以用來決定當程式指定的布爾運算值為真或假時,程式接下來將會採取的行動。 在命令式编程中,通常稱為條件陳述(conditional statements),又稱條件語句,在函數式編程中,通常稱為條件運算式(conditional expressions)或條件結構(conditional constructs)。.

新!!: 控制流程和條件運算式 · 查看更多 »

模組 (程式設計)

軟體模塊(Module)是一套一致而互相有緊密關連的軟體組織。它分別包含了程式和資料結構兩部份。 現代軟體開發往往利用模塊作合成的單位。 模塊的介面表達了由該模塊提供的功能和調用它時所需的元素。 模塊是可能分開地被編寫的單位。這使他們可再用和允許廣泛人員同時協作、編寫及研究不同的模塊。.

新!!: 控制流程和模組 (程式設計) · 查看更多 »

標記 (程式語言)

程式語言中的標記是加在源代碼中識別用的字串,大部份的語言都將標記視為標識符(identifier),後面要加一個冒號作為識別。 在許多高階語言中標記會用來標示Goto指令的終點。在組合語言中標記則是用來標示跳躍指令(如JMP)的終點。也時也會利用標記來作為程式的分段。Fortran及BASIC語言支援數字型的標記,也就是行號。標記也在调试時用來識別已編譯過程式的進入點。.

新!!: 控制流程和標記 (程式語言) · 查看更多 »

標識符

標識符(英文對應詞:identifier,縮寫為ID),又稱為識別碼,是一個用來識別物件的名稱,識別對象可能是概念、具體可數的物體或是不可數的物質。標識符可能是字、編號、字母、符號,也可能是由上述元素所組成。 在编程语言中,标识符就是程序员自己规定的具有特定含义的词,比如类名称,属性名称,变量名等。.

新!!: 控制流程和標識符 · 查看更多 »

汇编语言

汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器,或其他可编程器件的低级语言。在不同的设备中,汇编语言对应着不同的机器语言指令集。一种汇编语言专用于某种计算机系统结构,而不像许多高级语言,可以在不同系统平台之间移植。 使用汇编语言编写的源代码,然后通过相应的汇编程序将它们转换成可执行的机器代码。这一过程被称为汇编过程。 汇编语言使用助记符(Mnemonics)来代替和表示特定低级机器语言的操作。特定的汇编目标指令集可能会包括特定的操作数。许多汇编程序可以识别代表地址和常量的标签(Label)和符号(Symbols),这样就可以用字符来代表操作数而无需采取写死的方式。普遍地说,每一种特定的汇编语言和其特定的机器语言指令集是一一对应的。 许多汇编程序为程序开发、汇编控制、辅助调试提供了额外的支持机制。有的汇编语言编寫工具经常会提供巨集,它们也被称为--汇编器。 现在汇编语言已不像其他大多數的程序設計語言一樣被廣泛用于程序設計,在今天的實際應用中,它通常被應用在底層硬件操作和高要求的程序優化的场合。驅動程序、嵌入式操作系統和實時運行程序都会需要組合語言。.

新!!: 控制流程和汇编语言 · 查看更多 »

源代码

源代码(Source code),也称源程序,是指一系列人类可读的计算机语言指令。 在现代程序语言中,源代码可以是以书籍或者磁带的形式出现;但最常用的格式是文本文件,这种典型格式的目的是为了编译出计算机程序。计算机源代码的最终目的是将人类可读的文本翻译成为计算机可以执行的二进制指令,这种过程叫做编译,通过编译器完成。.

新!!: 控制流程和源代码 · 查看更多 »

机器语言

机器语言(machine language)是一種指令集的體--。这种指令集称为機器碼(machine code),是電腦的CPU可直接解讀的資料。 機器碼有時也被稱為原生碼(Native Code),這個名詞比較強調某種程式語言或函式庫與執行平台相關的部份。.

新!!: 控制流程和机器语言 · 查看更多 »

流程图

-- 流程图是表示算法、工作流或流程的一种框图表示,它以不同类型的框代表不同种类的步骤,每两个步骤之间则以箭头连接。这种表示方法便于说明解决已知问题的方法。流程图在分析、设计、记录及操控许多领域的流程或程序都有广泛应用。.

新!!: 控制流程和流程图 · 查看更多 »

方法 (電腦科學)

在物件導向程式設計中,方法(Method;Methode; Méthode)指的是類別(所謂的類別方法、靜態方法或工廠方法)、或者是物件(所謂的實體方法)兩者其中之一的一種子程式。如同程序化程式語言的程序,一個方法通常以一系列的語句所組成,並以之完成一個動作。其可以藉由輸入一組參數以制訂所需的動作,且一部分的方法可能會有輸出值(所謂的返回值)。方法的目的是提供一個機制,以存取(對於讀和寫)物件或類別的私有資料儲存區。.

新!!: 控制流程和方法 (電腦科學) · 查看更多 »

重定向到这里:

流程控制控制流控制結構

传出传入
嘿!我们在Facebook上吧! »