Code generation (compiler) (original) (raw)

About DBpedia

Ein Codegenerator ist ein Computerprogramm für die Softwareentwicklung. Er übersetzt Modelle, die in UML, XML, Struktogrammen, Entscheidungstabellen oder einer anderen formalen Sprache erstellt wurden, in eine Programmiersprache (C, C++, Assembler, …) der gewählten Zielplattform. Er erzeugt Quellcode (Codegenerierung), der danach mit anderen Programmteilen zu einem Programm verbunden wird. Das Erzeugnis eines Codegenerators wird (wenn auch selten) als Generat bezeichnet. Im Compilerbau ist der Codegenerator der Teil eines Compilers, der während des Kompiliervorgangs Maschinencode erzeugt.

Property Value
dbo:abstract في علم الحاسوب، يطلق مصطلح توليد الشفرة (بالإنجليزية code generation) على العملية التي يقوم بها المترجم لتحويل الشفرة المصدرية المكتوبة بلغة وسيطة إلى شكل جاهز للتنفيذ من قبل الآلة. عادةً ما يقوم المترجمون المتطورون بتمريرات متعددة عبر أشكال وسيطة متنوعة.يتم استخدام هذه العملية متعددة المراحل لأن العديد من خوارزميات تحسين التعليمات البرمجية (بالإنجليزية Program optimization )يسهل تطبيقها في وقت واحد، ولأن الإدخال إلى تحسين واحد يعتمد على المعالجة المكتملة التي تم إجراؤها بواسطة تحسين آخر. كما تسهل هذه المنظمة إنشاء مترجم واحد يمكنه استهداف أبنية متعددة، حيث تحتاج آخر مراحل توليد الشفرة (the backend) إلى التغيير من هدف إلى هدف.(لمزيد من المعلومات حول تصميم المترجم، انظر إلى المترجم .) يتكون الإدخال إلى مولد الشفرة عادةً من شجرة تحليل(بالإنجليزية parse tree) أو شجرة بناء مجردة(بالإنجليزية abstract syntax tree) . يتم تحويل الشجرة إلى تسلسل خطي من التعليمات، عادة في لغة وسيطة مثل شفرة الثلاثة عناوين ( بالإنجليزية Three-address code). مراحل أخرى من التجميع قد أو قد لا يشار إليها باسم «توليد الشفرة»،اعتمادًا على ما إذا كانت تنطوي على تغيير كبير في تمثيل البرنامج. (ar) Generování kódu je v informatice proces, při kterém překladačem generovaný kód je převáděn na mezijazyk, jenž reprezentuje zdrojový kód náležité formy (např. strojový kód), kterou lze snadno realizovat pomocí stroje. Sofistikované kompilátory obvykle provádějí přes různé přechodné formy. Tento vícestupňový proces, je nutný proto, že mnoho algoritmů pro optimalizace kódu je jednodušší použít jeden po druhém nebo proto, že vstup na jeden optimalizaci závisí na zpracování prováděné jinou optimalizací. Tato organizace také usnadňuje vytvoření jednotného kompilátoru, který může cílit na více architektur. Pouze jako poslední z etap generování kódu (backend), se musí změnit od cíle k cíli. (Pro více informací o konstrukci kompilátorů viz překladač.) Vstup do generátoru kódu se obvykle skládá z derivačního stromu nebo syntaktického stromu. Strom je převeden na lineární posloupnost instrukcí. Obvykle v mezijazyku, jako je tříadresní kód. Další fáze kompilace může nebo nemusí být nazývána jako generování kódu podle toho, zda zahrnuje či ne významné změny v zastoupení programu. (cs) La generació de codi és en programació d'ordinadors una de les fases mitjançant la qual un compilador converteix un programa sintàcticament correcte en una sèrie d'instruccions a ser interpretades per una màquina. L'entrada en aquesta fase ve representada, típicament, per un , un , o una ; la maquina destinta pot ser un microprocessador o una màquina abstracta tal com una màquina virtual o un llenguatge intermedi, llegible per un humà. Compiladors més sofisticats realitzen múltiples traduccions en cadena (pipelining) amb la finalitat de poder construir codis per múltiples plataformes i evitar haver de construir totes les capes del compilador. En termes més generals, la generació de codis és usada per construir programes d'una manera automàtica evitant que els programadors hagin d'escriure el codi a mà. La generació de codi pot realitzar-se en , , o temps de compilació. Els són un exemple de generadors de codis. (ca) Ein Codegenerator ist ein Computerprogramm für die Softwareentwicklung. Er übersetzt Modelle, die in UML, XML, Struktogrammen, Entscheidungstabellen oder einer anderen formalen Sprache erstellt wurden, in eine Programmiersprache (C, C++, Assembler, …) der gewählten Zielplattform. Er erzeugt Quellcode (Codegenerierung), der danach mit anderen Programmteilen zu einem Programm verbunden wird. Das Erzeugnis eines Codegenerators wird (wenn auch selten) als Generat bezeichnet. Im Compilerbau ist der Codegenerator der Teil eines Compilers, der während des Kompiliervorgangs Maschinencode erzeugt. (de) In computing, code generation is part of the process chain of a compiler and converts intermediate representation of source code into a form (e.g., machine code) that can be readily executed by the target system. Sophisticated compilers typically perform multiple passes over various intermediate forms. This multi-stage process is used because many algorithms for code optimization are easier to apply one at a time, or because the input to one optimization relies on the completed processing performed by another optimization. This organization also facilitates the creation of a single compiler that can target multiple architectures, as only the last of the code generation stages (the backend) needs to change from target to target. (For more information on compiler design, see Compiler.) The input to the code generator typically consists of a parse tree or an abstract syntax tree. The tree is converted into a linear sequence of instructions, usually in an intermediate language such as three-address code. Further stages of compilation may or may not be referred to as "code generation", depending on whether they involve a significant change in the representation of the program. (For example, a peephole optimization pass would not likely be called "code generation", although a code generator might incorporate a peephole optimization pass.) (en) La génération de code natif est l'étape du processus de compilation transformant l'arbre syntaxique abstrait enrichi d'informations sémantiques en code machine ou en bytecode spécialisé pour la plateforme cible. C'est l'avant-dernière étape du processus de compilation qui se situe avant l'édition des liens. La phase de génération de code natif inclut généralement : * Le choix des instructions à émettre ; * L'ordonnancement des instructions : dans quel ordre émettre les instructions. L'ordonnancement est une optimisation de la vitesse d'exécution qui peut être critique pour les architectures pipelinées ; * L'allocation de registres : l'allocation des variables aux registres du processeur. (fr) En programación, la generación de código es una de las fases mediante el cual un compilador convierte un programa sintácticamente correcto en una serie de instrucciones a ser interpretadas por una máquina. La entrada en esta fase viene representada, normalmente, por un , un Árbol de Sintaxis Abstracta, o una ; la máquina destino puede ser un microprocesador o una máquina abstracta tal como una máquina virtual o un lenguaje intermedio, legible por un humano. Compiladores más sofisticados realizan múltiples traducciones en cadena (pipelining) con el fin de poder construir código para múltiples plataformas y evitar tener que construir todas las capas del compilador. En términos más generales, la generación de código: es usada para construir programas de una manera automática evitando que los programadores tengan que escribir el código a mano. La generación de código puede realizarse en tiempo de ejecución, , o Tiempo de compilación. Los compiladores JIT son un ejemplo de generadores de código. (es) コード生成(英: Code Generation)とは、コンパイルの最終段階であり、ソースコードの意味が実現された目的コードを生成する過程である。「何らかの目的コード」が具体的には、機械語である場合もあれば、アセンブリ言語である場合もあれば、バイトコードや、場合によっては「ソースコード側が比較すれば高水準であるのに対して低水準な側であると言える言語(例えばC言語など)」ということもある。同程度の水準の言語間の変換を指すトランスパイルなどという語も近年はできた。 (ja) Generowanie kodu – ogół czynności dokonywanych podczas kompilacji, w których na podstawie abstrakcyjnej reprezentacji kodu źródłowego (przeważnie pewnego drzewa) generowany jest kod niskopoziomowy – asembler, kod wykonywalny, lub rzadziej kod w języku pośrednim. (pl) Een codegenerator is een stuk software dat tot doel heeft bron-, markup- of objectcode aan te maken (te genereren) op basis van een abstracte beschrijving. Dit kan zowel een invoerbestand in een of ander formaat zijn, maar ook de interne representatie van een (deel van een) programma of bibliotheek in het werkgeheugen van een compiler. Deze techniek wordt veelal gebruikt om grote tabellen te genereren in talen zoals C of C++, maar vormt ook een vast onderdeel van compilers. (nl) Кодогенерация — часть процесса компиляции, когда специальная часть компилятора, кодогенератор, конвертирует синтаксически корректную программу в последовательность инструкций, которые могут выполняться на машине. При этом могут применяться различные, в первую очередь машинно-зависимые оптимизации. Часто кодогенератор является общей частью для множества компиляторов. Каждый из них генерирует промежуточный код, который подаётся на вход кодогенератору. Обычно на вход генератора кода подаётся или абстрактное синтаксическое дерево. Дерево преобразуется в линейную последовательность инструкций промежуточного языка (например, в трехадресный код). Сложные компиляторы, как правило, делают несколько проходов через различные промежуточные формы кода. Этот многоступенчатый процесс используется потому, что многие алгоритмы оптимизации кода проще реализовать каждый отдельно, или же потому, что какой-то шаг оптимизации зависит от результата отработки другого шага. Кроме того, при такой организации, легко создать один компилятор, который будет создавать код для нескольких платформ, так как достаточно заменить последний шаг генерации кода (бэкэнд, англ. backend). Дальнейшие этапы компиляции могут и не относиться к «генерации кода», в зависимости от того, насколько значительными будут изменения, вносимые ими. Так, локальная оптимизация вряд ли может называться «генерацией кода», однако сам генератор кода может включать в себя этап локальной оптимизации. (ru) 在计算中,代码生成是指編譯器的代码生成器将源代码的中間語言转换为机器可以轻松执行的形式(例如机器语言)的过程。通常一个解析树或一个抽象語法樹要输入進代码生成器。 (zh) Генерація коду або кодогенерація — частина процесу компіляції, коли спеціальна частина компілятора, кодогенератор, конвертує синтаксично коректну програму в послідовність інструкцій, які можуть виконуватися на машині. При цьому можуть застосовуватися різні, в першу чергу машинно-залежні оптимізації. Часто кодогенератор є спільною частиною для багатьох компіляторів. Кожен з них генерує проміжний код, який подається на вхід кодогенератору. Зазвичай, на вхід генератора коду подається дерево розбору або абстрактне синтаксичне дерево. Дерево перетвориться в лінійну послідовність інструкцій проміжної мови. Складні компілятори, як правило, роблять кілька проходів через різні проміжні форми коду. Цей багатокроковий процес використовується тому, що багато алгоритмів оптимізації коду простіше реалізувати окремо, або ж тому, що якийсь крок оптимізації залежить від результату обробки другого кроку. Окрім того, при такій організації легко створити один компілятор, який буде створювати код для кількох платформ, так як достатньо замінити останній крок генерації коду (англ. backend ). Подальші етапи компіляції можуть і не належати до «генерації коду», в залежності від того, наскільки значними будуть зміни, що вносяться ними. Так, локальна оптимізація навряд чи може називатися «генерацією коду», проте сам генератор коду може включати в себе етап локальної оптимізації. (uk)
dbo:wikiPageID 189015 (xsd:integer)
dbo:wikiPageLength 7027 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1082906962 (xsd:integer)
dbo:wikiPageWikiLink dbr:Processor_register dbr:Opcode dbr:Algorithm dbr:Algorithmic_efficiency dbr:Regular_expression dbr:Variable_(programming) dbr:Debugging dbr:Debugging_data_format dbr:Instruction_scheduling dbr:Instruction_selection dbr:Intermediate_representation dbr:Register_allocation dbr:Peephole_optimization dbr:Comparison_of_code_generation_tools dbr:Compiler dbr:Run_time_(program_lifecycle_phase) dbr:Source-to-source_compiler dbr:Compiler-compiler dbr:Computing dbr:Three-address_code dbr:Transformational_grammar dbr:Backus–Naur_form dbr:C++ dbr:C_(programming_language) dbc:Machine_code dbr:Transcompiler dbr:Just-in-time_compilation dbr:Data_transformation dbr:Data_type dbr:Formal_language_theory dbr:Machine_code dbr:Source_code dbr:Profiling_(computer_programming) dbr:Recursion dbr:Java_(programming_language) dbr:Abstract_syntax_tree dbc:Compiler_construction dbr:Parse_tree dbr:Program_transformation dbr:Automatic_programming dbr:Instruction_pipeline dbr:Instruction_set dbr:Integrated_development_environment dbr:Intermediate_language dbr:YACC dbr:Multipass_compiler dbr:Source-code_generation dbr:Finite_state_machine dbr:Reflection_(computer_science) dbr:Code_optimization dbr:Postorder_traversal
dbp:wikiPageUsesTemplate dbt:Authority_control dbt:Refimprove dbt:Reflist dbt:Short_description
dcterms:subject dbc:Machine_code dbc:Compiler_construction
gold:hypernym dbr:Process
rdf:type owl:Thing dbo:Election
rdfs:comment Ein Codegenerator ist ein Computerprogramm für die Softwareentwicklung. Er übersetzt Modelle, die in UML, XML, Struktogrammen, Entscheidungstabellen oder einer anderen formalen Sprache erstellt wurden, in eine Programmiersprache (C, C++, Assembler, …) der gewählten Zielplattform. Er erzeugt Quellcode (Codegenerierung), der danach mit anderen Programmteilen zu einem Programm verbunden wird. Das Erzeugnis eines Codegenerators wird (wenn auch selten) als Generat bezeichnet. Im Compilerbau ist der Codegenerator der Teil eines Compilers, der während des Kompiliervorgangs Maschinencode erzeugt. (de) コード生成(英: Code Generation)とは、コンパイルの最終段階であり、ソースコードの意味が実現された目的コードを生成する過程である。「何らかの目的コード」が具体的には、機械語である場合もあれば、アセンブリ言語である場合もあれば、バイトコードや、場合によっては「ソースコード側が比較すれば高水準であるのに対して低水準な側であると言える言語(例えばC言語など)」ということもある。同程度の水準の言語間の変換を指すトランスパイルなどという語も近年はできた。 (ja) Generowanie kodu – ogół czynności dokonywanych podczas kompilacji, w których na podstawie abstrakcyjnej reprezentacji kodu źródłowego (przeważnie pewnego drzewa) generowany jest kod niskopoziomowy – asembler, kod wykonywalny, lub rzadziej kod w języku pośrednim. (pl) Een codegenerator is een stuk software dat tot doel heeft bron-, markup- of objectcode aan te maken (te genereren) op basis van een abstracte beschrijving. Dit kan zowel een invoerbestand in een of ander formaat zijn, maar ook de interne representatie van een (deel van een) programma of bibliotheek in het werkgeheugen van een compiler. Deze techniek wordt veelal gebruikt om grote tabellen te genereren in talen zoals C of C++, maar vormt ook een vast onderdeel van compilers. (nl) 在计算中,代码生成是指編譯器的代码生成器将源代码的中間語言转换为机器可以轻松执行的形式(例如机器语言)的过程。通常一个解析树或一个抽象語法樹要输入進代码生成器。 (zh) في علم الحاسوب، يطلق مصطلح توليد الشفرة (بالإنجليزية code generation) على العملية التي يقوم بها المترجم لتحويل الشفرة المصدرية المكتوبة بلغة وسيطة إلى شكل جاهز للتنفيذ من قبل الآلة. عادةً ما يقوم المترجمون المتطورون بتمريرات متعددة عبر أشكال وسيطة متنوعة.يتم استخدام هذه العملية متعددة المراحل لأن العديد من خوارزميات تحسين التعليمات البرمجية (بالإنجليزية Program optimization )يسهل تطبيقها في وقت واحد، ولأن الإدخال إلى تحسين واحد يعتمد على المعالجة المكتملة التي تم إجراؤها بواسطة تحسين آخر. كما تسهل هذه المنظمة إنشاء مترجم واحد يمكنه استهداف أبنية متعددة، حيث تحتاج آخر مراحل توليد الشفرة (the backend) إلى التغيير من هدف إلى هدف.(لمزيد من المعلومات حول تصميم المترجم، انظر إلى المترجم .) (ar) La generació de codi és en programació d'ordinadors una de les fases mitjançant la qual un compilador converteix un programa sintàcticament correcte en una sèrie d'instruccions a ser interpretades per una màquina. L'entrada en aquesta fase ve representada, típicament, per un , un , o una ; la maquina destinta pot ser un microprocessador o una màquina abstracta tal com una màquina virtual o un llenguatge intermedi, llegible per un humà. Compiladors més sofisticats realitzen múltiples traduccions en cadena (pipelining) amb la finalitat de poder construir codis per múltiples plataformes i evitar haver de construir totes les capes del compilador. (ca) Generování kódu je v informatice proces, při kterém překladačem generovaný kód je převáděn na mezijazyk, jenž reprezentuje zdrojový kód náležité formy (např. strojový kód), kterou lze snadno realizovat pomocí stroje. Vstup do generátoru kódu se obvykle skládá z derivačního stromu nebo syntaktického stromu. Strom je převeden na lineární posloupnost instrukcí. Obvykle v mezijazyku, jako je tříadresní kód. Další fáze kompilace může nebo nemusí být nazývána jako generování kódu podle toho, zda zahrnuje či ne významné změny v zastoupení programu. (cs) In computing, code generation is part of the process chain of a compiler and converts intermediate representation of source code into a form (e.g., machine code) that can be readily executed by the target system. (en) En programación, la generación de código es una de las fases mediante el cual un compilador convierte un programa sintácticamente correcto en una serie de instrucciones a ser interpretadas por una máquina. La entrada en esta fase viene representada, normalmente, por un , un Árbol de Sintaxis Abstracta, o una ; la máquina destino puede ser un microprocesador o una máquina abstracta tal como una máquina virtual o un lenguaje intermedio, legible por un humano. Compiladores más sofisticados realizan múltiples traducciones en cadena (pipelining) con el fin de poder construir código para múltiples plataformas y evitar tener que construir todas las capas del compilador. (es) La génération de code natif est l'étape du processus de compilation transformant l'arbre syntaxique abstrait enrichi d'informations sémantiques en code machine ou en bytecode spécialisé pour la plateforme cible. C'est l'avant-dernière étape du processus de compilation qui se situe avant l'édition des liens. La phase de génération de code natif inclut généralement : (fr) Кодогенерация — часть процесса компиляции, когда специальная часть компилятора, кодогенератор, конвертирует синтаксически корректную программу в последовательность инструкций, которые могут выполняться на машине. При этом могут применяться различные, в первую очередь машинно-зависимые оптимизации. Часто кодогенератор является общей частью для множества компиляторов. Каждый из них генерирует промежуточный код, который подаётся на вход кодогенератору. (ru) Генерація коду або кодогенерація — частина процесу компіляції, коли спеціальна частина компілятора, кодогенератор, конвертує синтаксично коректну програму в послідовність інструкцій, які можуть виконуватися на машині. При цьому можуть застосовуватися різні, в першу чергу машинно-залежні оптимізації. Часто кодогенератор є спільною частиною для багатьох компіляторів. Кожен з них генерує проміжний код, який подається на вхід кодогенератору. (uk)
rdfs:label توليد الشيفرة (ar) Generació de codi (ca) Generování kódu (cs) Codegenerator (de) Generación de código (es) Code generation (compiler) (en) Génération de code natif (fr) コード生成 (ja) Codegenerator (nl) Generacja kodu (pl) Кодогенерация (ru) 代码生成 (zh) Генерація коду (uk)
owl:sameAs freebase:Code generation (compiler) yago-res:Code generation (compiler) http://d-nb.info/gnd/4010346-8 wikidata:Code generation (compiler) dbpedia-ar:Code generation (compiler) dbpedia-ca:Code generation (compiler) dbpedia-cs:Code generation (compiler) dbpedia-de:Code generation (compiler) dbpedia-es:Code generation (compiler) dbpedia-fa:Code generation (compiler) dbpedia-fr:Code generation (compiler) dbpedia-hu:Code generation (compiler) dbpedia-ja:Code generation (compiler) dbpedia-nl:Code generation (compiler) dbpedia-no:Code generation (compiler) dbpedia-pl:Code generation (compiler) dbpedia-ru:Code generation (compiler) dbpedia-uk:Code generation (compiler) dbpedia-zh:Code generation (compiler) https://global.dbpedia.org/id/8kzR
prov:wasDerivedFrom wikipedia-en:Code_generation_(compiler)?oldid=1082906962&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Code_generation_(compiler)
is dbo:wikiPageDisambiguates of dbr:Code_generation
is dbo:wikiPageRedirects of dbr:Intermediate_code_generation
is dbo:wikiPageWikiLink of dbr:PowerDesigner dbr:Processor_register dbr:Proof_assistant dbr:Protocol_Buffers dbr:QB64 dbr:Meta-object_System dbr:X87 dbr:One-pass_compiler dbr:Scriptcase dbr:Algorithmic_efficiency dbr:History_of_compiler_construction dbr:Register_renaming dbr:DDObjects dbr:ETAS dbr:Instruction_scheduling dbr:Intel_8086 dbr:Intermediate_representation dbr:Comparison_of_C_Sharp_and_Java dbr:Compiler dbr:Treelang dbr:GNU_Compiler_Collection dbr:Genshi_(templating_language) dbr:Glasgow_Haskell_Compiler dbr:Glossary_of_computer_science dbr:GrGen dbr:Mirah_(programming_language) dbr:MLton dbr:Small-C dbr:Compile_time dbr:Compiler-compiler dbr:Compilers:_Principles,_Techniques,_and_Tools dbr:Frontend_and_backend dbr:Microsoft_Phoenix dbr:Programming_language_theory dbr:Maximal_munch dbr:BLISS dbr:C_Sharp_(programming_language) dbr:Agnostic_(data) dbr:TomSym dbr:Data_transformation_(computing) dbr:Domain-specific_language dbr:Code_generation dbr:JetBrains_MPS dbr:Language-based_security dbr:Eclipse_(software) dbr:PL/C dbr:PLECS dbr:PROPT dbr:Generator dbr:RascalMPL dbr:Regular_tree_grammar dbr:Greg_Nelson_(computer_scientist) dbr:Assembly_language dbr:LLVM dbr:SymPy dbr:High-level_language_computer_architecture dbr:Thunk dbr:XPL dbr:Martin_Fowler_(software_engineer) dbr:C-- dbr:Classification_Tree_Method dbr:Emitter dbr:OCaml dbr:Open64 dbr:OpenLisp dbr:Oracle_BI_server dbr:Raku_(programming_language) dbr:Sencha_Touch dbr:WxPHP dbr:Xtext dbr:Runtime_(program_lifecycle_phase) dbr:Runtime_system dbr:Semantic_dictionary_encoding dbr:Sieve_C++_Parallel_Programming_System dbr:Sethi–Ullman_algorithm dbr:Executable_UML dbr:Multi-pass_compiler dbr:Simul dbr:S/SL_programming_language dbr:Tracing_just-in-time_compilation dbr:Intermediate_code_generation
is foaf:primaryTopic of wikipedia-en:Code_generation_(compiler)