Control flow (original) (raw)
Řídicí struktura (též strukturovaný příkaz, anglicky control flow statement) je v informatice konstrukce pro zápis počítačového programu. Řídicí struktury jsou používány ve vyšších programovacích a skriptovacích jazycích. Rozhodují o dalším provádění programu: větví jeho běh, vytváří cykly nebo jinak mění běh programu.
Property | Value |
---|---|
dbo:abstract | En llenguatges de programació, les estructures de control permeten modificar el flux d'execució de les instruccions d'un programa informàtic. Amb les estructures de control es pot: * D'acord amb una condició, executar un grup o un altre de sentències (If-Then-Else i Select-Case) * Executar un grup de sentències mentre existeixi una condició (Do-While) * Executar un grup de sentències fins que hi hagi una condició (Do-Until) * Executar un grup de sentències un nombre determinat de vegades (For-Next) * Etc Totes les estructures de control tenen un únic punt d'entrada i un únic punt de sortida. Les estructures de control es pot classificar en: seqüencials, iteratives i de control avançades. Això és una de les coses que permet que la programació es regeixi pels principis de la programació estructurada. Els llenguatges de programació moderns tenen estructures de control similars. Bàsicament el que varia entre les estructures de control dels diferents llenguatges és la seva sintaxi, cada llenguatge té una sintaxi pròpia per expressar l'estructura. Altres llenguatges ofereixen estructures diferents, com ara els . (ca) Řídicí struktura (též strukturovaný příkaz, anglicky control flow statement) je v informatice konstrukce pro zápis počítačového programu. Řídicí struktury jsou používány ve vyšších programovacích a skriptovacích jazycích. Rozhodují o dalším provádění programu: větví jeho běh, vytváří cykly nebo jinak mění běh programu. (cs) تدفق السيطرة أو سير عملية التحكم (سريان/جريان)(بالإنجليزية: Control flow) مصطلح في علم الحاسوب ونظرية التحكم، يشير إلى الترتيب الذي تنفذ وتقيّم به العمليات سواء كانت التعليمات أو أوامر حاسوبية أو الجمل البرمجية، في البرمجة الأمرية أو التعريفية. أو سير العمليات في أي نظام كهربي أو ميكانيكي, يدوي أو مؤتمت. (ar) Kontrollstrukturen sind in der Informatik die Vorgabe, in welcher Reihenfolge die Handlungsschritte eines Algorithmus abgearbeitet werden. In imperativen Programmiersprachen werden sie durch Kontrollanweisungen (Steuerkonstrukte) implementiert. Mit Kontrollstrukturen können Programme auf verschiedene Zustände reagieren, indem Programmteile nur bedingt (bedingte Anweisung) oder wiederholt (Schleife) ausgeführt werden. (de) En komputado stirfluo estas la ordo en kiu la ordonoj aŭ komandoj estas plenumataj. Malimplica difino de la stirfluo estas karakteriza trajto de la ordonema programado kontraste al la deklarema (aŭ «funkcia»). En ordonema programlingvo stirflua ordono povas difini alian ordon de plenumado ol la teksta ordo de la ordonoj en la fonta kodo. La sortimento da stirfluaj ordonoj varias depende je la programlingvoj, tamen eblas grupigi ilin laŭ la efiko de ili kaŭzata: * ordono malimplice indikanta la programpunkton (markon, en programada lingvo; adreson de komando, en maŝinkodo), de kie pluiros la programplenumo; * disbranĉigo, «disirejo», ordono kiu elektas por plenumo iun el pluraj «branĉoj» depende je iu kondiĉo; * iteracio, formanta «maŝon» en strirflua diagramo; * voko de nomhava programpeco (proceduro, funkcio, metodo ktp) el unu aŭ pluraj disaj partoj de la programo; * haltigo de la programo. (eo) In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an imperative programming language from a declarative programming language. Within an imperative programming language, a control flow statement is a statement that results in a choice being made as to which of two or more paths to follow. For non-strict functional languages, functions and language constructs exist to achieve the same result, but they are usually not termed control flow statements. A set of statements is in turn generally structured as a block, which in addition to grouping, also defines a lexical scope. Interrupts and signals are low-level mechanisms that can alter the flow of control in a way similar to a subroutine, but usually occur as a response to some external stimulus or event (that can occur asynchronously), rather than execution of an in-line control flow statement. At the level of machine language or assembly language, control flow instructions usually work by altering the program counter. For some central processing units (CPUs), the only control flow instructions available are conditional or unconditional branch instructions, also termed jumps. (en) Informatikako arloan, kontrol-egiturak programa baten exekuzio-fluxua bideratzeko erabiltzen dira. Kontrol-egituren (edo kontrol-sententzien) bitartez, prozesu errepikakor bat hainbat aldiz exekutatu daiteke, edo egiturak erabakiak har dezake. Egitura hauek garrantzi handia dute, programa baten fluxua kontrolatzen baitute behar den heinean. Programazio-lengoaia gehienetan kontrol-egituren kanpo-itxura eta barne-funtzionamendua alda daiteke, baina emaitzari begira berdintasunak aurki daitezke. Hona hemen adibide batzuk: * If-Then-Else: bi sekuentzia multzo ezberdin daude. Multzo horien aurretik baldintza bat dago. Baldintzaren arabera, multzo bat edo bestea exekutatuko da. * Switch-Case: hainbat sekuentzia multzo ezberdin daude. Zein multzo exekutatuko den, aldagai baten balioak finkatuko du. Adibidez: Aldagai bat bikoitia baldin bada, lehen multzoa exekutatuko da. Aldiz, bakoitia baldin bada, bigarren multzoa izango da exekutatuko dena. * While begizta: baldintza bat betetzen den bitartean, sekuentzia multzo bat errepikatuko da. * For begizta: Sententzia multzo bat exekutatuko da zenbait alditan. Kontrol-egitura guztiek sarrera bakarra dute, baina bide desberdinetan bukatu daitezke. Hiru talde ezberdinetan sailkatu daitezke: sekuentzialak edo aukerazkoak, iteratiboak eta aurreratuak (bien arteko konbinazioak). Programazio-lengoaia berri guztiek antzeko kontrol-egiturak dituzte. Horietan aldatzen den gauza bakarra sintaxia da, hau da, egitura idatziz adierazteko modua. (eu) En programmation informatique, une structure de contrôle est une instruction particulière d'un langage de programmation impératif pouvant dévier le flot de contrôle du programme la contenant lorsqu'elle est exécutée. Si, au plus bas niveau, l'éventail se limite généralement aux branchements et aux appels de sous-programme, les langages structurés offrent des constructions plus élaborées comme les (if, if–else, switch…), les (while, do–while, for…) ou encore les appels de fonction. Outre ces structures usuelles, la large palette des structures de contrôle s'étend des constructions de gestion d'exceptions (try–catch…) fréquemment trouvés dans les langages de haut niveau aux particularismes de certains langages comme les instructions différées (defer) de Go. (fr) En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: * De acuerdo con una condición, ejecutar un grupo u otro de sentencias (If-Then-Else) * De acuerdo con el valor de una variable, ejecutar un grupo u otro de sentencias (Switch-Case) * Ejecutar un grupo de sentencias solo cuando se cumpla una condición (Do-While) * Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-Until) * Ejecutar un grupo de sentencias un número determinado de veces (For-Next) Todas las estructuras de control tienen un único punto de entrada. Las estructuras de control se pueden clasificar en: secuenciales, iterativas y de control avanzadas. Esta es una de las cosas que permiten que la programación se rija por los principios de la programación estructurada. Los lenguajes de programación modernos tienen estructuras de control similares. Básicamente lo que varía entre las estructuras de control de los diferentes lenguajes es su sintaxis; cada lenguaje tiene una sintaxis propia para expresar la estructura. Otros lenguajes ofrecen estructuras diferentes, como por ejemplo los comandos guardados. (es) 制御構造(せいぎょこうぞう)は、コンピュータ・プログラミング言語、特に手続き型プログラミングや命令型プログラミングにおいて、ループや飛び越しなどといった、手続き(プロシージャ)中の実行順を順次実行から変化させたり、サブルーチン呼出しやその戻り、などといった制御を行う「文 (プログラミング) 」などの構造(言語の構成要素)である。 制御構造の種類は言語によって様々だが、典型的には以下のようなものがある(用語「ブロック」については、ブロック (プログラミング) の記事を参照)。 * 無条件に実行箇所を移動する(無条件の分岐命令、ジャンプ) * 何らかの条件の成立・不成立に従い、ブロックの実行・不実行を選択する(条件付き分岐命令、選択) * ブロックを繰り返し実行する(ループ) * ジャンプの一種だが、その続きに戻れるもの(サブルーチン呼出、コルーチン) * 継続(特にcall/cc) * プログラムの停止(理論的には重要だが(停止性問題を参照)、実際的にはexitシステムコールなど、OSのプロセス制御機構を使うことが専らであり、言語機能として制御構造で持つ意味は無い) 割り込みとシグナルは制御フローを変化させる別の機構であり、サブルーチンに似ているが、通常は言語内からではなく外部のイベントなどの結果として非同期に発生するものである(言語内から外部のイベントを引き起こし、結果として発生させることもできる例もある。たとえば、ゼロ除算などでそのようになるシステムがある)。自己書き換えコードも副作用によって制御フローを変化させることができる。割り込み的なものを扱うことができるプログラミング言語(の機能)はいくつかある。自己書き換えをプログラマが明示的に扱えるプログラミング言語はあまりないが、初期化の時だけ特別扱いが必要といったコードの最適化に自己書き換えを利用する、処理系の実装上のテクニックといったようなものもある。 「分岐命令」も参照 機械語において制御構造に相当するのは分岐命令で、通常は連続的にカウントが進められるプログラムカウンタを、不連続に変更する命令である。ほぼ全てのプロセッサは(条件付きおよび無条件の)分岐命令を持つ(無いと、理論的に言うと計算可能性を満たさないため、コンピュータとして成立しない)。また、サブルーチン呼出しを(大なり小なりハードウェアによる支援を含んで)サポートする命令を持つプロセッサが多い(こんにち存在する汎用プロセッサの著名なISAでこのサポートの無いのは、60年代の設計であるIBMのSystem/360ぐらいであろう)。全くハードウェアによるサポートが無いと、サブルーチン呼出しに面倒なトリックが必要なことがある。一方で前述のような、ループの処理(レジスタの値をデクリメントし、ゼロでなければジャンプ、といったような)を直接サポートするような命令を持つプロセッサは、専用命令として積極的に持つものもあるが、一般にはあまり多くなく、特にいわゆるRISCでは避けられる。そのため、コンパイラのコード生成は制御構造からジャンプ命令等を適宜組み合わせたコードを生成するように実装される。 (ja) Una struttura di controllo, in informatica e specificatamente nei paradigmi di programmazione imperativa, è un costrutto sintattico di un linguaggio di programmazione la cui semantica afferisce al controllo del flusso di esecuzione di un programma, ovvero servono a specificare se, quando, in quale ordine e quante volte devono essere eseguite le istruzioni che compongono il codice sorgente in base alle specifiche di progetto del software da realizzare. (it) ( 비슷한 이름의 흐름 제어에 관해서는 해당 문서를 참조하십시오.) 제어 흐름(영어: control flow 또는 flow of control)은 프로그램에서 실행되는 각 구문, 명령어나 함수가 호출되는 순서를 의미한다. 한편 제어흐름(制御흐름)을 알고리즘에 따른 명령문을 처리할 때 관련 장치들이 연속적으로 작동되는 과정으로 정의해본다면 제어문은 주어진 조건의 결괏값에 따라서 프로그램의 수행 순서를 제어하거나 문장들의 수행 횟수를 조정하는 문장을 가리킨다. (ko) Control flow of besturingsstroom is een begrip uit de informatica. Het slaat op de (niet-lineaire) volgorde van uitvoering van de instructies in een computerprogramma. Control flow wordt meestal bepaald door het gebruik van besturingsstructuren zoals lussen (while, for), beslissingsstructuren (if, case), spronginstructies en het aanroepen van subprogrammas. (nl) W informatyce przepływ sterowania oznacza zbiór instrukcji i wyrażeń uporządkowanych w kolejności wykonania. W języku programowania instrukcja przepływu sterowania może zmienić przepływ sterowania tak, aby wyrażenia wykonywane były w innej kolejności, niż ta, w jakiej są wypisane w kodzie źródłowym. Pojęcie przepływu danych jest prawie zawsze ograniczane do pojedynczego wątku aplikacji, ponieważ dotyczy ono wykonywania instrukcji po jednej naraz. Rodzaje instrukcji przepływu sterowania różnią się w zależności od języka, ale mimo to mogą być pogrupowane ze względu na efekt, jaki powodują: * Kontynuacja od innego punktu programu (skok) * Warunkowe wykonanie grupy wyrażeń (wybór) * Powtarzanie wykonywania grupy wyrażeń (pętla, odpowiednik skoku do wcześniejszego miejsca w kodzie). * Wykonywanie grupy odległych wyrażeń, po których sterowanie powraca do miejsca wywołania (podprogram, procedura). * Zupełne przerwanie wykonywania programu. Przerwanie to kolejny mechanizm zmieniający przepływ sterowania do określonego podprogramu, lecz dzieje się to w odpowiedzi na sygnały lub zdarzenia zewnętrzne, a nie na stan samej aplikacji. Samomodyfikowanie kodu źródłowego może być również użyte do zmiany przepływu sterowania, lecz przeważnie nie wiąże się ono z wykonaniem żadnej konkretnej instrukcji przepływu sterowania (wyjątek to ALTER w COBOLu). Na najniższym poziomie języka maszynowego lub asemblera, zmianę przepływu sterowania realizuje się poprzez ingerowanie w licznik programu. W wielu procesorach jedynymi dostępnymi instrukcjami zmiany przepływu są skoki warunkowe i bezwarunkowe. Kompilatory języków wysokopoziomowych muszą zatem przetłumaczyć wszystkie istniejące w nich instrukcje, wykorzystując wyłącznie ten ograniczony i uproszczony zestaw, nie zniekształcając przy tym zapisanego za ich pomocą algorytmu. (pl) В інформатиці, потік керування (англ. control flow, англ. flow of control) вказує на порядок в якому окремі команди, інструкції, або виклики підпрограм імперативної або декларативної програми виконуються або обчислюються. Типи операцій потоку керування підтримувані різними мовами різняться, але можуть бути категоризовані за своїм ефектом: * продовження на іншій інструкції (безумовний перехід - jump або goto), * виконання набору інструкцій тільки якщо виконується певна умова (інструкція вибору та умовний перехід), * виконання набору операторів нуль або більше разів, до виконання певної умови (цикли, та команди переходу) * виконання відокремленого набору інструкцій, після чого потік керування зазвичай повертається (підпрограми, Співпрограми та продовження), * зупинка програми, запобігання будь-якому подальшому виконанню (безумовна зупинка). (uk) Em ciência da computação, estrutura de controle (ou fluxo de controle) refere-se à ordem em que instruções, expressões e chamadas de função são executadas ou avaliadas em programas de computador sob programação imperativa ou funcional. Os tipos de estruturas de controle disponíveis diferem de linguagem para linguagem, mas podem ser cruamente caracterizados por seus efeitos. O primeiro é a continuação da execução em uma outra instrução, como na estrutura sequencial ou em uma instrução jump. O segundo é a execução de um bloco de código somente se uma condição é verdadeira, uma estrutura de seleção. O terceiro é a execução de um bloco de código enquanto uma condição é verdadeira, ou de forma a iterar uma coleção de dados, uma estrutura de repetição. O quarto é a execução de instruções distantes entre si, em que o controle de fluxo possivelmente volte para a posição original posteriormente, como chamadas de e corotinas. O quinto é a parada do programa de computador. Interrupções e sinais são mecanismos de baixo nível que podem alterar o fluxo de controle de forma similar a uma sub-rotina, mas geralmente em resposta a algum estímulo externo ou um evento ao invés de uma estrutura de controle em uma linguagem. Em nível de linguagem de máquina, as instruções de estruturas de controle geralmente funcionam ao alterar o contador de programa. Para algumas CPUs, as únicas instruções de estruturas de controle disponíveis são os diversos tipos de jump condicional. (pt) Programflöde är inom datavetenskap en processors exekveringsordning av instruktionerna i ett program. Processorn håller reda på instruktionsföljden via en programräknare, som antingen räknas upp för varje instruktion, eller antar ett värde angivet av en hoppinstruktion, ett undantag eller ett avbrott. Exempel på programflödesstyrande satser i högnivåspråksprogrammering är: If-satser, loopar, goto-satser och funktionsanrop. (sv) В императивном программировании порядок выполнения (порядок исполнения, порядок вычислений) — это способ упорядочения инструкций программы в процессе её выполнения. Инструкции, входящие в программу, могут исполняться как последовательно, одна за другой, так и одновременно; как однократно, так и многократно; последовательность исполнения инструкций может совпадать с последовательностью их расположения в записи программы или не совпадать, а также зависеть как от текущего состояния вычислителя, исполняющего программу, так и от внешних событий, образовывая, таким образом, разнообразные порядки выполнения инструкций. Организация желаемого порядка выполнения может быть осуществлена с помощью различных механизмов, таких как специализированные инструкции вычислителю или управляющие конструкции высокоуровневых языков программирования или встроенные в вычислитель механизмы для прерывания, сохранения и восстановления состояния, модификация и генерация инструкций программы и других. (ru) 控制流程(也稱為流程控制)是電腦運算領域的用語,意指在程式執行時,個別的指令(或是陳述、子程序)或求值的順序。不論是在宣告式程式語言或是函數程式語言中,都有類似的概念。 在宣告式的程式語言中,流程控制指令是指會改變程式執行順序的指令,可能是執行不同位置的指令,或是在二段(或多段)程式中選擇一個執行。 不同的程式語言所提供的流程控制指令也會隨之不同,但一般可以分為以下四種: * 繼續執行位在不同位置的一段指令(無條件分支指令)。 * 若特定條件成立時,執行一段指令,例如C語言的switch指令,是一種有條件分支指令。 * 執行一段指令若干次,直到特定條件成立為止,例如C語言的for指令,仍然可視為一種有條件分支指令。 * 執行位在不同位置的一段指令,但完成後會繼續執行原來要執行的指令,包括子程序、协程(coroutine)及计算续体(continuation)。 * 停止程式,不執行任何指令(無條件的終止)。 中斷以及Unix系統中的信号等較低階的機制也可以造成類似子程序的效果,不過通常這類機制會用來回應外部的事件或是輸入。程序自修改因為其對程式碼的影響,也會影響控制流程,但多半不會有明顯的流程控制指令。 在机器语言或汇编语言中,流程控制是藉由修改程式計數器數值來達到。一些中央處理器只支援條件分支(branch)或是無條件分支(有時會稱為jump)。 (zh) |
dbo:thumbnail | wiki-commons:Special:FilePath/For-loop-diagram.png?width=300 |
dbo:wikiPageExternalLink | https://web.archive.org/web/20180716171336/http:/www.fortran.com/fortran/come_from.html http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf http://www.eecs.ucf.edu/~leavens/JML/jmlrefman/jmlrefman_12.html%23SEC168 http://www.bitsavers.org/pdf/ibm/704/24-6661-2_704_Manual_1955.pdf http://www.php.net/manual/en/language.oop5.iterations.php http://archive.eiffel.com/doc/faq/variant.html https://web.archive.org/web/20070703050443/http:/www.acm.org/classics/oct95/ https://web.archive.org/web/20090824073244/http:/pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/yield https://www.python.org/dev/peps/pep-3136/ |
dbo:wikiPageID | 45459 (xsd:integer) |
dbo:wikiPageLength | 59388 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1122382055 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:PowerShell dbr:Python_(programming_language) dbr:Ruby_(programming_language) dbr:Scala_(programming_language) dbr:Scheme_(programming_language) dbr:Non-strict_programming_language dbr:David_Watt_(computer_scientist) dbr:Declarative_programming dbr:Arithmetic_if dbr:Perl dbr:DRAKON dbr:Visual_Basic_.NET dbr:Default_(computer_science) dbr:Infinite_loop dbr:Input/output dbr:Loop_invariant dbr:Common_Lisp dbr:Control-flow_diagram dbr:Control-flow_graph dbr:Coroutines dbr:Rust_(programming_language) dbr:S-algol dbr:SQL dbr:Esoteric_programming_language dbr:Generator_(computer_programming) dbr:Eiffel_(programming_language) dbr:GOTO dbr:Go_(programming_language) dbr:Branch_(computer_science) dbr:Modula-2 dbr:Considered_harmful dbr:Continuation dbr:Control-flow_integrity dbr:Control_break dbr:Control_flow dbr:Control_flow_analysis dbr:Control_table dbr:Coroutine dbr:Eric_S._Roberts dbr:AppleScript dbr:Lisp_(programming_language) dbr:MATLAB dbr:Machine_language dbr:Smalltalk dbr:Standard_ML dbr:Standard_Template_Library dbr:Strict_programming_language dbr:Structured_programming dbr:Subroutine dbr:Computer_program dbr:Computer_science dbr:Functional_programming dbr:Co-operative_multitasking dbr:Identifier dbr:Function_call dbr:Program_counter dbr:Spaghetti_code dbr:Statement_(computer_science) dbr:Theoretical_computer_science dbr:BASIC dbr:C++ dbr:C++11 dbr:COBOL dbr:C_(programming_language) dbr:C_Sharp_(programming_language) dbr:C_preprocessor dbr:Datamation dbr:Futures_and_promises dbr:Jeroo dbr:Language_construct dbr:Line_number dbr:ALGOL dbr:ALGOL_60 dbr:ALGOL_68 dbr:APL_(programming_language) dbr:Ada_(programming_language) dbr:Curly_bracket_programming_language dbr:Cyclomatic_complexity dbr:D_(programming_language) dbr:Edsger_W._Dijkstra dbr:Erlang_(programming_language) dbr:Exception_handling dbr:FORTRAN_77 dbr:F_Sharp_(programming_language) dbr:Fortran dbr:Fortran_77 dbr:Fortran_90 dbr:PHP dbr:PL/I dbr:Pascal_(programming_language) dbr:Central_processing_unit dbr:Flowchart dbr:Glob_(programming) dbr:Source_code dbr:Type_class dbr:Fixed_point_combinator dbr:Recursion dbr:Haskell_(programming_language) dbr:Asynchronous_I/O dbc:Control_flow dbr:Interrupt dbr:JavaScript dbr:Java_(programming_language) dbr:Tcl dbr:Assembly_language dbr:Block_(programming) dbr:Tail_recursion dbr:Java_Modeling_Language dbr:Shell_script dbr:Donald_Knuth dbc:Articles_with_example_Ada_code dbr:Buffer_overflow_protection dbr:COMEFROM dbr:Template_(programming) dbr:Ternary_operator dbr:Instruction_(computer_science) dbr:Interlisp dbr:Natural_number dbr:OCaml dbr:Object_Pascal dbr:Objective-C dbr:Ole-Johan_Dahl dbr:One_instruction_set_computer dbr:Operator_(programming) dbr:Recursion_(computer_science) dbr:Name_binding dbr:Lookup_table dbr:Loop_variant dbr:Pattern_matching dbr:Software_transactional_memory dbr:Server_(computing) dbr:Unary_function dbr:Virtual_method_table dbr:Visual_Basic dbr:Indent_style dbr:INTERCAL dbr:Imperative_programming dbr:Fortran_95 dbr:S._Rao_Kosaraju dbr:Label_(programming_language) dbr:Lexical_scope dbr:Programming_language dbr:Execution_(computing) dbr:Off-side_rule dbr:Structured_program_theorem dbr:Scheduling_(computing) dbr:Switch_statement dbr:Zahn's_construct dbr:Modularity_(programming) dbr:REBOL dbr:Boolean_datatype dbr:Mythryl dbr:Dynamic_language dbr:Asynchronous_programming dbr:Asynchronous_systems dbr:Class_(programming) dbr:Keyword_(computing) dbr:Signal_(computing) dbr:Conditional_branch dbr:Container_(data_structure) dbr:Main_loop dbr:Code_duplication dbr:Generator_(computer_science) dbr:Stack_canary dbr:Loop-and-a-half dbr:File:For-loop-diagram.png dbr:Lisp_(programminglanguage) dbr:Wiktionary:go dbr:Wiktionary:to |
dbp:wikiPageUsesTemplate | dbt:Citation_needed dbt:Cite_web dbt:Clarify dbt:Commons_category-inline dbt:Distinguish dbt:Dunno dbt:Main_article dbt:No dbt:Note_label dbt:Partial dbt:Ref_label dbt:Reflist dbt:See_also dbt:Short_description dbt:Small dbt:Wikibooks dbt:Yes dbt:Loop_constructs dbt:Python |
dcterms:subject | dbc:Control_flow dbc:Articles_with_example_Ada_code |
gold:hypernym | dbr:Order |
rdf:type | owl:Thing dbo:Eukaryote yago:Abstraction100002137 yago:Cognition100023271 yago:Concept105835747 yago:Content105809192 yago:GrammaticalRelation113796779 yago:Idea105833840 yago:Inflection113803782 yago:LinguisticRelation113797142 yago:Paradigm113804375 yago:PsychologicalFeature100023100 yago:Relation100031921 yago:WikicatProgrammingConstructs yago:WikicatProgrammingLanguageConcepts yago:WikicatProgrammingParadigms |
rdfs:comment | Řídicí struktura (též strukturovaný příkaz, anglicky control flow statement) je v informatice konstrukce pro zápis počítačového programu. Řídicí struktury jsou používány ve vyšších programovacích a skriptovacích jazycích. Rozhodují o dalším provádění programu: větví jeho běh, vytváří cykly nebo jinak mění běh programu. (cs) تدفق السيطرة أو سير عملية التحكم (سريان/جريان)(بالإنجليزية: Control flow) مصطلح في علم الحاسوب ونظرية التحكم، يشير إلى الترتيب الذي تنفذ وتقيّم به العمليات سواء كانت التعليمات أو أوامر حاسوبية أو الجمل البرمجية، في البرمجة الأمرية أو التعريفية. أو سير العمليات في أي نظام كهربي أو ميكانيكي, يدوي أو مؤتمت. (ar) Kontrollstrukturen sind in der Informatik die Vorgabe, in welcher Reihenfolge die Handlungsschritte eines Algorithmus abgearbeitet werden. In imperativen Programmiersprachen werden sie durch Kontrollanweisungen (Steuerkonstrukte) implementiert. Mit Kontrollstrukturen können Programme auf verschiedene Zustände reagieren, indem Programmteile nur bedingt (bedingte Anweisung) oder wiederholt (Schleife) ausgeführt werden. (de) En programmation informatique, une structure de contrôle est une instruction particulière d'un langage de programmation impératif pouvant dévier le flot de contrôle du programme la contenant lorsqu'elle est exécutée. Si, au plus bas niveau, l'éventail se limite généralement aux branchements et aux appels de sous-programme, les langages structurés offrent des constructions plus élaborées comme les (if, if–else, switch…), les (while, do–while, for…) ou encore les appels de fonction. Outre ces structures usuelles, la large palette des structures de contrôle s'étend des constructions de gestion d'exceptions (try–catch…) fréquemment trouvés dans les langages de haut niveau aux particularismes de certains langages comme les instructions différées (defer) de Go. (fr) Una struttura di controllo, in informatica e specificatamente nei paradigmi di programmazione imperativa, è un costrutto sintattico di un linguaggio di programmazione la cui semantica afferisce al controllo del flusso di esecuzione di un programma, ovvero servono a specificare se, quando, in quale ordine e quante volte devono essere eseguite le istruzioni che compongono il codice sorgente in base alle specifiche di progetto del software da realizzare. (it) ( 비슷한 이름의 흐름 제어에 관해서는 해당 문서를 참조하십시오.) 제어 흐름(영어: control flow 또는 flow of control)은 프로그램에서 실행되는 각 구문, 명령어나 함수가 호출되는 순서를 의미한다. 한편 제어흐름(制御흐름)을 알고리즘에 따른 명령문을 처리할 때 관련 장치들이 연속적으로 작동되는 과정으로 정의해본다면 제어문은 주어진 조건의 결괏값에 따라서 프로그램의 수행 순서를 제어하거나 문장들의 수행 횟수를 조정하는 문장을 가리킨다. (ko) Control flow of besturingsstroom is een begrip uit de informatica. Het slaat op de (niet-lineaire) volgorde van uitvoering van de instructies in een computerprogramma. Control flow wordt meestal bepaald door het gebruik van besturingsstructuren zoals lussen (while, for), beslissingsstructuren (if, case), spronginstructies en het aanroepen van subprogrammas. (nl) Programflöde är inom datavetenskap en processors exekveringsordning av instruktionerna i ett program. Processorn håller reda på instruktionsföljden via en programräknare, som antingen räknas upp för varje instruktion, eller antar ett värde angivet av en hoppinstruktion, ett undantag eller ett avbrott. Exempel på programflödesstyrande satser i högnivåspråksprogrammering är: If-satser, loopar, goto-satser och funktionsanrop. (sv) 控制流程(也稱為流程控制)是電腦運算領域的用語,意指在程式執行時,個別的指令(或是陳述、子程序)或求值的順序。不論是在宣告式程式語言或是函數程式語言中,都有類似的概念。 在宣告式的程式語言中,流程控制指令是指會改變程式執行順序的指令,可能是執行不同位置的指令,或是在二段(或多段)程式中選擇一個執行。 不同的程式語言所提供的流程控制指令也會隨之不同,但一般可以分為以下四種: * 繼續執行位在不同位置的一段指令(無條件分支指令)。 * 若特定條件成立時,執行一段指令,例如C語言的switch指令,是一種有條件分支指令。 * 執行一段指令若干次,直到特定條件成立為止,例如C語言的for指令,仍然可視為一種有條件分支指令。 * 執行位在不同位置的一段指令,但完成後會繼續執行原來要執行的指令,包括子程序、协程(coroutine)及计算续体(continuation)。 * 停止程式,不執行任何指令(無條件的終止)。 中斷以及Unix系統中的信号等較低階的機制也可以造成類似子程序的效果,不過通常這類機制會用來回應外部的事件或是輸入。程序自修改因為其對程式碼的影響,也會影響控制流程,但多半不會有明顯的流程控制指令。 在机器语言或汇编语言中,流程控制是藉由修改程式計數器數值來達到。一些中央處理器只支援條件分支(branch)或是無條件分支(有時會稱為jump)。 (zh) En llenguatges de programació, les estructures de control permeten modificar el flux d'execució de les instruccions d'un programa informàtic. Amb les estructures de control es pot: * D'acord amb una condició, executar un grup o un altre de sentències (If-Then-Else i Select-Case) * Executar un grup de sentències mentre existeixi una condició (Do-While) * Executar un grup de sentències fins que hi hagi una condició (Do-Until) * Executar un grup de sentències un nombre determinat de vegades (For-Next) * Etc Altres llenguatges ofereixen estructures diferents, com ara els . (ca) In computer science, control flow (or flow of control) is the order in which individual statements, instructions or function calls of an imperative program are executed or evaluated. The emphasis on explicit control flow distinguishes an imperative programming language from a declarative programming language. A set of statements is in turn generally structured as a block, which in addition to grouping, also defines a lexical scope. (en) En komputado stirfluo estas la ordo en kiu la ordonoj aŭ komandoj estas plenumataj. Malimplica difino de la stirfluo estas karakteriza trajto de la ordonema programado kontraste al la deklarema (aŭ «funkcia»). En ordonema programlingvo stirflua ordono povas difini alian ordon de plenumado ol la teksta ordo de la ordonoj en la fonta kodo. La sortimento da stirfluaj ordonoj varias depende je la programlingvoj, tamen eblas grupigi ilin laŭ la efiko de ili kaŭzata: (eo) En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: * De acuerdo con una condición, ejecutar un grupo u otro de sentencias (If-Then-Else) * De acuerdo con el valor de una variable, ejecutar un grupo u otro de sentencias (Switch-Case) * Ejecutar un grupo de sentencias solo cuando se cumpla una condición (Do-While) * Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-Until) * Ejecutar un grupo de sentencias un número determinado de veces (For-Next) (es) Informatikako arloan, kontrol-egiturak programa baten exekuzio-fluxua bideratzeko erabiltzen dira. Kontrol-egituren (edo kontrol-sententzien) bitartez, prozesu errepikakor bat hainbat aldiz exekutatu daiteke, edo egiturak erabakiak har dezake. Egitura hauek garrantzi handia dute, programa baten fluxua kontrolatzen baitute behar den heinean. Programazio-lengoaia gehienetan kontrol-egituren kanpo-itxura eta barne-funtzionamendua alda daiteke, baina emaitzari begira berdintasunak aurki daitezke. Hona hemen adibide batzuk: (eu) 制御構造(せいぎょこうぞう)は、コンピュータ・プログラミング言語、特に手続き型プログラミングや命令型プログラミングにおいて、ループや飛び越しなどといった、手続き(プロシージャ)中の実行順を順次実行から変化させたり、サブルーチン呼出しやその戻り、などといった制御を行う「文 (プログラミング) 」などの構造(言語の構成要素)である。 制御構造の種類は言語によって様々だが、典型的には以下のようなものがある(用語「ブロック」については、ブロック (プログラミング) の記事を参照)。 * 無条件に実行箇所を移動する(無条件の分岐命令、ジャンプ) * 何らかの条件の成立・不成立に従い、ブロックの実行・不実行を選択する(条件付き分岐命令、選択) * ブロックを繰り返し実行する(ループ) * ジャンプの一種だが、その続きに戻れるもの(サブルーチン呼出、コルーチン) * 継続(特にcall/cc) * プログラムの停止(理論的には重要だが(停止性問題を参照)、実際的にはexitシステムコールなど、OSのプロセス制御機構を使うことが専らであり、言語機能として制御構造で持つ意味は無い) 「分岐命令」も参照 (ja) Em ciência da computação, estrutura de controle (ou fluxo de controle) refere-se à ordem em que instruções, expressões e chamadas de função são executadas ou avaliadas em programas de computador sob programação imperativa ou funcional. Interrupções e sinais são mecanismos de baixo nível que podem alterar o fluxo de controle de forma similar a uma sub-rotina, mas geralmente em resposta a algum estímulo externo ou um evento ao invés de uma estrutura de controle em uma linguagem. (pt) W informatyce przepływ sterowania oznacza zbiór instrukcji i wyrażeń uporządkowanych w kolejności wykonania. W języku programowania instrukcja przepływu sterowania może zmienić przepływ sterowania tak, aby wyrażenia wykonywane były w innej kolejności, niż ta, w jakiej są wypisane w kodzie źródłowym. Pojęcie przepływu danych jest prawie zawsze ograniczane do pojedynczego wątku aplikacji, ponieważ dotyczy ono wykonywania instrukcji po jednej naraz. Rodzaje instrukcji przepływu sterowania różnią się w zależności od języka, ale mimo to mogą być pogrupowane ze względu na efekt, jaki powodują: (pl) В інформатиці, потік керування (англ. control flow, англ. flow of control) вказує на порядок в якому окремі команди, інструкції, або виклики підпрограм імперативної або декларативної програми виконуються або обчислюються. Типи операцій потоку керування підтримувані різними мовами різняться, але можуть бути категоризовані за своїм ефектом: (uk) В императивном программировании порядок выполнения (порядок исполнения, порядок вычислений) — это способ упорядочения инструкций программы в процессе её выполнения. Инструкции, входящие в программу, могут исполняться как последовательно, одна за другой, так и одновременно; как однократно, так и многократно; последовательность исполнения инструкций может совпадать с последовательностью их расположения в записи программы или не совпадать, а также зависеть как от текущего состояния вычислителя, исполняющего программу, так и от внешних событий, образовывая, таким образом, разнообразные порядки выполнения инструкций. (ru) |
rdfs:label | Control flow (en) تدفق السيطرة (ar) Estructura de control (ca) Řídicí struktura (cs) Kontrollstruktur (de) Stirfluo (eo) Estructuras de control (es) Kontrol-egitura (eu) Structure de contrôle (fr) Struttura di controllo (it) 制御構造 (ja) 제어 흐름 (ko) Control flow (nl) Przepływ sterowania (pl) Estrutura de controle (pt) Порядок выполнения (ru) Programflöde (sv) 控制流程 (zh) Потік керування (uk) |
rdfs:seeAlso | dbr:Structured_program_theorem |
owl:differentFrom | dbr:Flow_control_(data) |
owl:sameAs | freebase:Control flow yago-res:Control flow wikidata:Control flow dbpedia-ar:Control flow dbpedia-ca:Control flow dbpedia-cs:Control flow dbpedia-de:Control flow dbpedia-eo:Control flow dbpedia-es:Control flow dbpedia-eu:Control flow dbpedia-fa:Control flow dbpedia-fr:Control flow dbpedia-he:Control flow dbpedia-hr:Control flow dbpedia-is:Control flow dbpedia-it:Control flow dbpedia-ja:Control flow dbpedia-kk:Control flow dbpedia-ko:Control flow dbpedia-ms:Control flow dbpedia-nl:Control flow dbpedia-no:Control flow dbpedia-pl:Control flow dbpedia-pt:Control flow dbpedia-ru:Control flow dbpedia-sh:Control flow dbpedia-sr:Control flow dbpedia-sv:Control flow http://ta.dbpedia.org/resource/கட்டுப்பாட்டு_கட்டமைப்பு dbpedia-uk:Control flow http://ur.dbpedia.org/resource/کنٹرول_فلو dbpedia-vi:Control flow dbpedia-zh:Control flow https://global.dbpedia.org/id/52MUD |
prov:wasDerivedFrom | wikipedia-en:Control_flow?oldid=1122382055&ns=0 |
foaf:depiction | wiki-commons:Special:FilePath/For-loop-diagram.png |
foaf:isPrimaryTopicOf | wikipedia-en:Control_flow |
is dbo:wikiPageDisambiguates of | dbr:Control |
is dbo:wikiPageRedirects of | dbr:Break_(Unix) dbr:Break_statement dbr:Break_statements dbr:Control-flow dbr:Control-flow_statement dbr:Control_flow_statement dbr:Controlflow dbr:Continue_(keyword) dbr:Continue_statement dbr:Program_control_flow dbr:Program_flow_of_control dbr:Flow_control_construct dbr:Control-flow_architecture dbr:Control_construct dbr:Control_flow_architecture dbr:Minimal_structured_control_flow dbr:Loop_(computing) dbr:Until_loop dbr:Program_loop dbr:Flow_of_control dbr:Count_controlled_loop dbr:Counter_controlled_loops dbr:Break; dbr:Continue_(Java) dbr:Control_flag dbr:Control_statement dbr:Control_structure dbr:Control_structures dbr:Program_flow dbr:Program_loops dbr:Exitwhen dbr:Loop_(programming) dbr:Loop_index dbr:Nested_loop |
is dbo:wikiPageWikiLink of | dbr:Power_ISA dbr:Predication_(computer_architecture) dbr:Pyxplot dbr:RoboMind dbr:Robot_Battle dbr:Scheme_(programming_language) dbr:Elementary_comparison_testing dbr:Elif dbr:Nessus_Attack_Scripting_Language dbr:MTropolis dbr:Weighted_Micro_Function_Points dbr:Principle_of_least_privilege dbr:Bash_(Unix_shell) dbr:Befunge dbr:Big_Trak dbr:Boolean_data_type dbr:Bourne_shell dbr:Break_(Unix) dbr:Break_statement dbr:Break_statements dbr:Decider_(Turing_machine) dbr:Declarative_programming dbr:Algorithm dbr:History_of_computing_hardware dbr:Pathwidth dbr:Reserved_word dbr:Resilient_control_systems dbr:Return-oriented_programming dbr:Rewrite_engine dbr:Unix_shell dbr:Verilog dbr:Dead-code_elimination dbr:Debugging dbr:Deep_Blue_(chess_computer) dbr:Delay_slot dbr:Indentation_style dbr:Index_of_computing_articles dbr:Indirect_branch dbr:Infinite_loop dbr:Inline_expansion dbr:Inner_loop dbr:Instruction_list dbr:Instruction_scheduling dbr:Intermediate_representation dbr:Interpreter_(computing) dbr:Inversion_of_control dbr:Loop_invariant dbr:Comparison_of_C_Sharp_and_Java dbr:Comparison_of_Java_and_C++ dbr:Comparison_of_programming_languages_(basic_instructions) dbr:Comparison_of_programming_paradigms dbr:Computer dbr:Conditional_(computer_programming) dbr:Control-flow dbr:Control-flow_diagram dbr:Control-flow_graph dbr:Control-flow_statement dbr:Control_flow_statement dbr:Controlflow dbr:Core_Python_Programming dbr:Analytical_Engine dbr:Rust_(programming_language) dbr:Generator_(computer_programming) dbr:Nesting_(computing) dbr:Object-oriented_programming dbr:One-instruction_set_computer dbr:Prettyprint dbr:Workflow_pattern dbr:Python_syntax_and_semantics dbr:Quil_(instruction_set_architecture) dbr:RUNCOM dbr:Eiffel_(programming_language) dbr:Galaksija_(computer) dbr:Galaksija_BASIC dbr:Glossary_of_artificial_intelligence dbr:Glossary_of_computer_science dbr:Bot_prevention dbr:Branch_(computer_science) dbr:Branch_predictor dbr:Monad_(functional_programming) dbr:Mustache_(template_system) dbr:Continuation dbr:Continuation-passing_style dbr:Continue_(keyword) dbr:Continue_statement dbr:Control-flow_integrity dbr:Control_flow dbr:Control_flow_analysis dbr:Control_table dbr:Criticism_of_Facebook dbr:Unreachable_code dbr:Operational_semantics dbr:TI-BASIC dbr:Program_control_flow dbr:Program_flow_of_control dbr:Apache_Wicket dbr:Array-access_analysis dbr:Array_(data_structure) dbr:Lemniscate_elliptic_functions dbr:Limbo_(programming_language) dbr:Limnor dbr:Call-with-current-continuation dbr:Signal_(IPC) dbr:Smarty_(template_engine) dbr:Stanford_MIPS dbr:Structured_programming dbr:Composability dbr:Computer_program dbr:Computer_programming dbr:Computer_virus dbr:Delimited_continuation dbr:Email_filtering dbr:Hardware_acceleration dbr:Joule_(programming_language) dbr:Memory_pool dbr:Path dbr:Profile-guided_optimization dbr:Program_counter dbr:SQL/PSM dbr:Spaghetti_code dbr:Statement_(computer_science) dbr:Transport_triggered_architecture dbr:Readability dbr:BASIC dbr:99_Bottles_of_Beer dbr:Business_Process_Model_and_Notation dbr:COBOL dbr:C_(programming_language) dbr:C_shell dbr:Trampoline_(computing) dbr:UCBLogo dbr:Data-flow_analysis dbr:Dataflow_architecture dbr:Dataflow_programming dbr:WebAssembly dbr:Web_framework dbr:Do_while_loop dbr:Join_point dbr:Language_construct dbr:Language_primitive dbr:Lazy_evaluation dbr:Logic_synthesis dbr:RTML dbr:ALGOL_58 dbr:AMOS_(programming_language) dbr:AMPL dbr:APL_(programming_language) dbr:Addition dbr:Adobe_ColdFusion dbr:American_fuzzy_lop_(fuzzer) dbr:3APL dbr:Cyclomatic_complexity dbr:Cyclone_(programming_language) dbr:DEC_Alpha dbr:DG/L dbr:Daniel_P._Friedman dbr:DynamoRIO dbr:ECLiPSe dbr:ECMAScript dbr:Ethereum dbr:Event-driven_programming dbr:Exception_handling dbr:Extended_Backus–Naur_form dbr:Ezhil_(programming_language) dbr:F-Script_(programming_language) dbr:F._David_Boswell dbr:F_(programming_language) dbr:F_Sharp_(programming_language) dbr:Fish_(Unix_shell) dbr:For_loop dbr:Forth_(programming_language) dbr:Central_processing_unit dbr:Digital_media_use_and_mental_health dbr:Flow-based_programming dbr:Flow-sensitive_typing dbr:Foreach_loop dbr:Goto dbr:Graph_drawing dbr:History_of_the_Church–Turing_thesis dbr:Iteratee dbr:Iteration dbr:Karel_(programming_language) dbr:Flow_control dbr:Flow_control_construct dbr:Procedural_programming dbr:Rank_(J_programming_language) dbr:Remote_Data_Services dbr:Responsibility-driven_design dbr:HP-42S dbr:HP_30_series dbr:Hardware_description_language dbr:Henri_Poincaré dbr:High_Level_Assembly dbr:Asynchrony_(computer_programming) dbr:JavaScript_syntax dbr:Opaque_predicate dbr:Software_pipelining dbr:Software_testing_tactics dbr:AIMMS dbr:AMD_CodeAnalyst dbr:Abstraction_(computer_science) dbr:KeY dbr:LOOP_(programming_language) dbr:Lava_(programming_language) dbr:Block_(programming) dbr:SystemVerilog dbr:THE_multiprogramming_system dbr:TUTOR dbr:T_(programming_language) dbr:CodeHS dbr:Jackson_structured_programming dbr:Telescript_(programming_language) dbr:Template_processor dbr:While_loop dbr:Modular_programming dbr:Reflective_programming dbr:Digital_signal_processor dbr:Direct_function dbr:Artifact-centric_business_process_model dbr:Automated_planning_and_scheduling dbr:Automatic_parallelization dbr:Busy_waiting dbr:CEEMAC dbr:CLACL dbr:COMEFROM dbr:C_standard_library dbr:Software_framework dbr:Software_testing dbr:SpiderMonkey dbr:Control dbr:Control-flow_architecture dbr:Control_construct dbr:Control_flow_architecture dbr:Control_operator dbr:Guarded_Command_Language dbr:IMacros dbr:IT_process_automation dbr:Instruction_set_architecture dbr:Integer_set_library dbr:Microsoft_Small_Basic dbr:Minimal_structured_control_flow dbr:Obliq dbr:Off-by-one_error dbr:Operating_system dbr:RT-11 dbr:Ragel dbr:Raku_(programming_language) dbr:Ratfor dbr:Rebol dbr:Recursion_(computer_science) dbr:Self-modifying_code dbr:Semipredicate_problem dbr:Setcontext dbr:Software_bug dbr:Lookup_table dbr:Loop-level_parallelism dbr:Loop_fission_and_fusion dbr:Loop_optimization dbr:Loop_splitting dbr:Server_Side_Includes dbr:Service_Control_Manager dbr:Scope_(computer_science) dbr:Sentinel_value dbr:Software dbr:Unit_testing dbr:Until dbr:View_model dbr:Work_Flow_Language dbr:Nested_function dbr:Setjmp.h dbr:Loop_(computing) dbr:Programming_language dbr:Register_spring dbr:Event_(computing) dbr:Event_loop dbr:Evolving_digital_ecological_network dbr:Manifest_expression dbr:Nassi–Shneiderman_diagram dbr:Systems_programming dbr:TI-BASIC_83 dbr:Synchro-Ciné dbr:Off-side_rule dbr:Multimodal_Architecture_and_Interfaces dbr:Multiway_branch dbr:Nondeterministic_programming dbr:Zero_page dbr:Sequence_step_algorithm dbr:Sigreturn-oriented_programming dbr:White-box_testing dbr:Switch_statement dbr:Secondary_School_Mathematics_Curriculum_Improvement_Study dbr:Software_defect_indicator dbr:Outline_of_computer_programming dbr:RotateRight_Zoom dbr:Zahn's_construct dbr:Turing_completeness dbr:Until_loop dbr:TrueType dbr:Program_loop dbr:Flow_of_control |
is rdfs:seeAlso of | dbr:Infinite_loop |
is owl:differentFrom of | dbr:Flow_control_(data) |
is foaf:primaryTopic of | wikipedia-en:Control_flow |