Optimizing compiler (original) (raw)
- En ciencias de la computación, un compilador optimizador es un compilador que trata de minimizar ciertos atributos de un programa informático con el fin de aumentar la eficiencia y rendimiento. Las optimizaciones del compilador se aplican generalmente mediante una secuencia de transformaciones de optimización, algoritmos que transforman un programa para producir otro con una salida semánticamente equivalente pero optimizado. Generalmente hay varios aspectos que se desean optimizar: 1. * Optimización temporal: Reducir el tiempo de ejecución del programa. 2. * Optimización espacial: Reducir la cantidad de espacio en memoria que ocupa el programa en ejecución. 3. * Reducir el tamaño del programa. 4. * Minimizar la potencia consumida por un programa (debido a las computadoras portátiles). La optimización se realiza después de la generación de código de todo el programa o de un elemento ejecutable del programa (función, procedimiento, etc), por ende es dependiente del contexto. La condición que ha de cumplir es que el código optimizado se ha de comportar igual que el código de partida, excepto por ser más rápido o ocupar menos espacio. Se ha demostrado que algunos problemas de optimización de código son NP-completo, o incluso indecidibles. En la práctica, factores como la voluntad del programador que debe esperar a que el compilador complete sus tareas, imponen límites superiores en las optimizaciones que las que una simple implementación del compilador puede proporcionar (la optimización es un proceso muy intensivo que generalmente necesita mucho procesamiento y memoria para llevarse a cabo). En el pasado, las limitaciones de memoria de las computadoras también eran un factor importante en la limitación de las optimizaciones que se podían realizar. Debido a todos estos factores, la optimización rara vez produce una salida de forma óptima (valga la redundancia), y el hecho de que una optimización pueda impedir el rendimiento en algunos casos, hace que, sean para mejorar el uso de los recursos en los programas típicos. La optimización es el campo donde se hace más investigación en los compiladores hoy en día. Las tareas del front-end (exploración, análisis sintáctico, análisis léxico, análisis semántico) son bien conocidas y, sin optimizar, la generación de código es relativamente sencilla. La optimización, por otra parte, aún es un campo que no se ha terminado de desarrollar de forma completa. (es)
- In computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power consumption (the last three being popular for portable computers). Compiler optimization is generally implemented using a sequence of optimizing transformations, algorithms which take a program and transform it to produce a semantically equivalent output program that uses fewer resources or executes faster. It has been shown that some code optimization problems are NP-complete, or even undecidable. In practice, factors such as the programmer's willingness to wait for the compiler to complete its task place upper limits on the optimizations that a compiler might provide. Optimization is generally a very CPU- and memory-intensive process. In the past, computer memory limitations were also a major factor in limiting which optimizations could be performed. Because of these factors, optimization rarely produces "optimal" output in any sense, and in fact, an "optimization" may impede performance in some cases. Rather, they are heuristic methods for improving resource usage in typical programs. (en)
- Cláir ar féidir iad a shonrú le gnéithe áirithe de thiomsú a rialú is ea barrfheabhsú tiomsaitheora. Féadann roghanna tiomsaitheora nádúr an mhodúil lódála a ghineann an tiomsaitheoir a rialú, mar aon leis na cineálacha aschuir phriontáilte atá le soláthar, nó úsáid éifeachtach an tiomsaitheora, agus ceann scríbe teachtaireachtaí earráide, srl. (ga)
- Il compilatore con ottimizzatore o compilatore ottimizzante è un compilatore che effettua automaticamente l'ottimizzazione di un programma durante il processo di compilazione.Considerando un'architettura a tre stadi di un compilatore, come quella di LLVM, ciò implica che negli stadi middle-end e/o back-end vengono effettuati passaggi atti a migliorare il codice compilato prodotto. Nel caso di un'architettura a due stadi (solo front-end e back-end) le ottimizzazioni vengono considerate parte del back-end. Schema a tre stadi di un compilatore. Le ottimizzazioni target-independent vengono effettuate nel middle-end, quelle target-dependent nel back-end. Effettuare ottimizzazioni durante la compilazione di un programma è importante al fine di sopperire alle inefficienze derivanti dalla traduzione di costrutti di alto livello in rappresentazione intermedia o in codice macchina (lowering). Queste inefficienze possono essere semplici ridondanze nel codice, oppure caratteristiche più profonde che riducono la parallelizzabilità del programma o altre caratteristiche di efficienza. (it)
- Оптимизирующий компилятор — компилятор, в котором используются различные методы получения более оптимального программного кода при сохранении его функциональных возможностей. Наиболее распространённые цели оптимизации: сокращение времени выполнения программы, повышение производительности, компактификация программного кода, экономия памяти, минимизация энергозатрат, уменьшение количества операций ввода-вывода. Оптимизация может происходить неявно во время трансляции программы, но, как правило, считается отдельным этапом работы компилятора. Компоновщики также могут выполнять часть оптимизаций, таких как удаление неиспользуемых подпрограмм или их . Оптимизация, как правило, реализуется с помощью последовательности оптимизирующих преобразований, алгоритмов, которые принимают программу и изменяют её для получения семантически эквивалентного варианта, который более эффективен с точки зрения какого-либо набора целей оптимизации. Было показано, что некоторые проблемы оптимизации кода являются NP-полными, или даже неразрешимыми. Тем не менее, практически многие из них решаются эвристическими методами, дающими вполне удовлетворительные результаты. Различают низко- и высокоуровневую оптимизацию. Низкоуровневая оптимизация преобразовывает программу на уровне элементарных команд, например, инструкций процессора конкретной архитектуры. Высокоуровневая оптимизация осуществляется на уровне структурных элементов программы, таких как модули, функции, ветвления, циклы. (ru)
- Оптимізувальний компілятор — компілятор, в якому використовуються різні методи отримання оптимального програмного коду при збереженні його функціональних можливостей. Найбільш поширені цілі оптимізації: скорочення часу виконання програми, підвищення продуктивності, компактификація програмного коду, економія пам'яті, мінімізація енерговитрат, зменшення кількості операцій введення-виведення. Оптимізація може відбуватися неявно під час трансляції програми, але, як правило, вважається окремим етапом роботи компілятора. Компонувальники також можуть виконувати частину оптимізацій, таких як вилучення невикористовуваних підпрограм або їх . Оптимізація, як правило, реалізується за допомогою послідовності оптимізувальних перетворень, алгоритмів, які приймають програму і змінюють її для отримання семантично еквівалентного варіанту, але більш ефективного з точки зору деякого набору цілей оптимізації. Було показано, що деякі проблеми оптимізації коду є NP-повними, або навіть нерозв'язними. Проте, практично багато з них вирішуються наближеними методами, що дають цілком задовільні результати. Розрізняють низько- і високорівневу оптимізацію. Низькорівнева оптимізація перетворює програму на рівні елементарних команд, наприклад, інструкцій процесора конкретної . Високорівнева оптимізація здійснюється на рівні структурних елементів програми, таких як модулі, функції, розгалуження, цикли. (uk)
- Cláir ar féidir iad a shonrú le gnéithe áirithe de thiomsú a rialú is ea barrfheabhsú tiomsaitheora. Féadann roghanna tiomsaitheora nádúr an mhodúil lódála a ghineann an tiomsaitheoir a rialú, mar aon leis na cineálacha aschuir phriontáilte atá le soláthar, nó úsáid éifeachtach an tiomsaitheora, agus ceann scríbe teachtaireachtaí earráide, srl. (ga)
- En ciencias de la computación, un compilador optimizador es un compilador que trata de minimizar ciertos atributos de un programa informático con el fin de aumentar la eficiencia y rendimiento. Las optimizaciones del compilador se aplican generalmente mediante una secuencia de transformaciones de optimización, algoritmos que transforman un programa para producir otro con una salida semánticamente equivalente pero optimizado. Generalmente hay varios aspectos que se desean optimizar: (es)
- In computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power consumption (the last three being popular for portable computers). Because of these factors, optimization rarely produces "optimal" output in any sense, and in fact, an "optimization" may impede performance in some cases. Rather, they are heuristic methods for improving resource usage in typical programs. (en)
- Il compilatore con ottimizzatore o compilatore ottimizzante è un compilatore che effettua automaticamente l'ottimizzazione di un programma durante il processo di compilazione.Considerando un'architettura a tre stadi di un compilatore, come quella di LLVM, ciò implica che negli stadi middle-end e/o back-end vengono effettuati passaggi atti a migliorare il codice compilato prodotto. Nel caso di un'architettura a due stadi (solo front-end e back-end) le ottimizzazioni vengono considerate parte del back-end. (it)
- Оптимизирующий компилятор — компилятор, в котором используются различные методы получения более оптимального программного кода при сохранении его функциональных возможностей. Наиболее распространённые цели оптимизации: сокращение времени выполнения программы, повышение производительности, компактификация программного кода, экономия памяти, минимизация энергозатрат, уменьшение количества операций ввода-вывода. (ru)
- Оптимізувальний компілятор — компілятор, в якому використовуються різні методи отримання оптимального програмного коду при збереженні його функціональних можливостей. Найбільш поширені цілі оптимізації: скорочення часу виконання програми, підвищення продуктивності, компактификація програмного коду, економія пам'яті, мінімізація енерговитрат, зменшення кількості операцій введення-виведення. (uk)
- freebase:Optimizing compiler
- yago-res:Optimizing compiler
- wikidata:Optimizing compiler
- dbpedia-es:Optimizing compiler
- dbpedia-fa:Optimizing compiler
- dbpedia-ga:Optimizing compiler
- dbpedia-it:Optimizing compiler
- dbpedia-ru:Optimizing compiler
- dbpedia-sr:Optimizing compiler
- dbpedia-uk:Optimizing compiler
- https://global.dbpedia.org/id/MXoo
is dbo:wikiPageWikiLink of
- dbr:C_syntax
- dbr:Predication_(computer_architecture)
- dbr:Program_dependence_graph
- dbr:Program_optimization
- dbr:Prolog
- dbr:List_of_computer_scientists
- dbr:Bogosort
- dbr:Brainfuck
- dbr:Delphi_(software)
- dbr:Algorithmic_efficiency
- dbr:Aliasing_(computing)
- dbr:List_of_commercial_video_games_with_available_source_code
- dbr:List_of_pioneers_in_computer_science
- dbr:Volatile_(computer_programming)
- dbr:Dead_store
- dbr:E-graph
- dbr:Invariant_(mathematics)
- dbr:List_of_programmers
- dbr:Loop_invariant
- dbr:Peephole_optimization
- dbr:Conditional_(computer_programming)
- dbr:Source-to-source_compiler
- dbr:Optimizer-compiler
- dbr:Chris_Lattner
- dbr:GNU_Compiler_Collection
- dbr:GT.M
- dbr:Gary_Kildall
- dbr:Branch_table
- dbr:Const_(computer_programming)
- dbr:Constant_folding
- dbr:Control_table
- dbr:The_Design_of_an_Optimizing_Compiler
- dbr:Unreachable_code
- dbr:Lint_(software)
- dbr:Linux_kernel
- dbr:Low-level_programming_language
- dbr:MLton
- dbr:Stalin_(Scheme_implementation)
- dbr:Stanford_MIPS
- dbr:Common_Compiler_Feedback_Format
- dbr:Computer_program
- dbr:Full_table_scan
- dbr:Three-address_code
- dbr:BLISS
- dbr:Ahead-of-time_compilation
- dbr:Data-flow_analysis
- dbr:William_Wulf
- dbr:Alexia_Massalin
- dbr:Data-flow_optimization
- dbr:Datalight
- dbr:Fortran
- dbr:Frances_Allen
- dbr:History_of_computing
- dbr:HCR_Corporation
- dbr:HHVM
- dbr:Haxe
- dbr:Intrinsic_function
- dbr:Jeanne_Ferrante
- dbr:Assembly_language
- dbr:John_Cocke_(computer_scientist)
- dbr:LLVM
- dbr:Swift_(programming_language)
- dbr:T_(programming_language)
- dbr:High-level_language_computer_architecture
- dbr:Register_(keyword)
- dbr:Array_programming
- dbr:As-if_rule
- dbr:Automatic_parallelization_tool
- dbr:Microsoft_Visual_C++
- dbr:Optimising_compiler
- dbr:Memory_hierarchy
- dbr:Loop_interchange
- dbr:Loop_unrolling
- dbr:Most_vexing_parse
- dbr:Single_compilation_unit
- dbr:IEEE_754
- dbr:Program_analysis
- dbr:Multiflow
- dbr:Multiplicative_binary_search
- dbr:Strong_and_weak_typing
- dbr:Value_numbering
- dbr:Phase_distinction
- dbr:Restrict
- dbr:Optimizing_compilers
- dbr:Optimizing_transformation
- dbr:List_of_compiler_optimizations
- dbr:Code-improving_transformation
- dbr:Compiler_Optimization_Techniques
- dbr:Compiler_analysis
- dbr:Compiler_optimisation
- dbr:Compiler_optimization
- dbr:Compiler_optimizations
- dbr:Prescient_store