LLVM (original) (raw)
LLVM (dříve zkratka pro Low Level Virtual Machine) je projekt implementující optimalizující překladač ve formě knihoven a API. LLVM je naprogramován v C++ a navržen pro , link-time, run-time a „idle-time“ optimalizace programů napsaných v libovolném programovacím jazyce. Přestože první frontend byl implementován pro C/C++, na jazyce nezávislý design (a úspěch) LLVM podnítil vznik široké škály frontendů, například pro Objective-C, Swift, D, Go, Rust, Fortran, Ada, Haskell, , Python, Ruby, REALBasic, ActionScript, GLSL a další.
Property | Value |
---|---|
dbo:abstract | LLVM és una infraestructura de compilació per millorar l'optimització de programes de diversos llenguatges de programació. El propòsit inicial era perfeccionar el rerefons del compilador GCC, però el seu èxit, l'ha fet abastar altres àrees del compilador. Des del 2007 té el seu propi frontal de compilació per a C i C++, anomenat . Dins el projecte de LLVM també s'hi inclou el depurador LLDB. El projecte va començar l'any 2000 a la Universitat d'Illinois a sota la direcció de . L'any 2005 Apple va formar un grup de treball per incorporar LLVM a les seves plataformes de desenvolupament. Actualment Apple és el principal patrocinador del desenvolupament de LLVM. Originalment, el nom LLVM eren les inicials de Low Level Virtual Machine, és a dir «Màquina Virtual de Baix Nivell» en anglès. Aquest nom però, s'ha deixat d'utilitzar perquè el projecte no té gaire relació amb el que actualment s'entén per màquina virtual en el món de la informàtica. (ca) LLVM (dříve zkratka pro Low Level Virtual Machine) je projekt implementující optimalizující překladač ve formě knihoven a API. LLVM je naprogramován v C++ a navržen pro , link-time, run-time a „idle-time“ optimalizace programů napsaných v libovolném programovacím jazyce. Přestože první frontend byl implementován pro C/C++, na jazyce nezávislý design (a úspěch) LLVM podnítil vznik široké škály frontendů, například pro Objective-C, Swift, D, Go, Rust, Fortran, Ada, Haskell, , Python, Ruby, REALBasic, ActionScript, GLSL a další. (cs) LLVM (früher Low Level Virtual Machine) ist eine modulare Compiler-Unterbau-Architektur mit einem virtuellen Befehlssatz, einer virtuellen Maschine, die einen Hauptprozessor virtualisiert, und einem übergreifend optimierenden Übersetzungskonzept. Kennzeichnend ist unter anderem, dass sämtliche Zeitphasen eines Programms (Laufzeit, Übersetzungszeit, Linkzeit) inklusive der Leerlauf-Phase zur Optimierung herangezogen werden können. Der Zweck ist, einfach eigene Frontends für verschiedene Sprachen zu entwickeln, die die LLVM-Zwischensprache benutzen. Um die Erzeugung des Maschinen- bzw. VM-Codes kümmert sich die LLVM-Bibliothek, die vom Frontend aus aufgerufen wird. Die Entwicklung von LLVM begann im Jahr 2000 unter der Leitung von Chris Lattner und an der Universität von Illinois. Das Projekt wurde ursprünglich als Forschungsarbeit zur Untersuchung dynamischer Kompilierung und Optimierungen entwickelt. Heute beheimatet es eine Vielzahl an Unterprojekten und Erweiterungen aus der aktuellen Compilerforschung und -entwicklung. LLVM ist als freie Software unter der University of Illinois/NCSA Open Source License verfügbar, die der 3-Klausel-BSD-Lizenz und der MIT-Lizenz ähnelt. „LLVM“ ist der volle Name des Projekts und kein Akronym, wird aber oft als „Low Level Virtual Machine“ angegeben. Dies sorgt zuweilen für Verwirrung, da LLVM auch für Virtualisierung genutzt werden kann. Mit der Zeit wurde LLVM ein Rahmenprojekt, in dem verschiedene Compiler- und Low-Level-Techniken enthalten sind. Inzwischen ist LLVM die Marke für das eigentliche Projekt, die LLVM-Zwischensprache (LLVM-IR), den LLVM-Debugger (LLDB), die LLVM-Standard-C++-Bibliothek (libc++) etc. (de) La projekto LLVM de tradukila infrastrukturo (antaŭe maLaLta Virtuala Maŝino) estas "kolekto de modula kaj reuzebla tradukiloj kaj ĉenilaj teknologioj" uzita por evoluigi tradukilaj facadaj interfacoj kaj internaj interfacoj. LLVM estas skribita per C++ kaj estas desegnita por traduk-tempa, lig-tempa, rul-tempa kaj vak-tempa optimigo de programaroj skribitaj per arbitraj programlingvoj. Originale efektivigita por C kaj C++, la lingvo-sendependa desegno de LLVM poste starigis larĝan varion de facadaj interfacoj: lingvoj kun tradukiloj kiuj uzas LLVM inkludas ActionScript, Ada, C#, Ofta Lisp, Crystal, D, Delphi, Fortran, OpenGL Ombranta Lingvon, Halide, Haskell, Java bytecode, Julia, Lua, Objektiva-C, Pony, Python, R, Ruby, Rust, CUDA, Scala kaj Swift. La LLVMa projekto komencis dum 2000 ĉe la Universitato de Ilinojso ĉe Urbana–Champaign, sub la direkto de Vikram Adve kaj Chris Lattner. LLVM estis originale evoluigita kiel esplora infrastrukturo prienketi dinamikajn kompilajn teknikojn por statika kaj dinamika programlingvoj. LLVM estis liberigita sub la malfermita kodlicencoj de Universitato de Ilinojsa kaj NCSA, ĉiopermesa libera programara licenco. Dum 2005, Apple Inc. dungitis Lattner kaj formis teamon por labori pri la LLVMa sistemo por diversaj uzoj ene de la evoluadaj sistemoj de Apple. LLVM estas integrita parto de plej lastaj evoluadaj iloj de Apple por OS X kaj iOS. Ekde 2013 Sony uzis Clang, la ĉefan facada interfaco de LLVM en la programara disvolvada ilara de ĝia PS4 Videoludilo. La nomo LLVM estis originale siglo el maLalta niveLa Virtuala Maŝino, sed tio devenis kreske malpli taŭga dum LLVM fariĝis "kadra projekto", kiu inkludis varion de aliaj tradukiloj kaj malalta-nivelaj ilaj teknologioj, do la projekto forlasis la akronimo. Nun, LLVM estas marko kiu aplikas al la LLVMa kadra projekto, la LLVMa meza prezento, la LLVMa erarserĉilo, la LLVM C++ Norma Biblioteko (kun plena subteno de C++11 kaj C++14), ktp. LLVM estas administrita de la LLVMa Fundaĵo. Ĝia prezidanto estas tradukila inĝeniero Tanya Lattner. La Asocio por Komputanta Maŝinaron donacis al Adve, Lattner kaj Evan Cheng la 2012an ACMan Programaran Sisteman Premion por LLVM. (eo) LLVM (anteriormente conocido como Low Level Virtual Machine, o Máquina Virtual de Bajo Nivel) es una infraestructura para desarrollar compiladores, escrita a su vez en el lenguaje de programación C++, que está diseñada para optimizar el tiempo de compilación, el tiempo de enlazado, el tiempo de ejecución y el "tiempo ocioso" en cualquier lenguaje de programación que el usuario quiera definir. Implementado originalmente para compilar C y C++, el diseño agnóstico de LLVM con respecto al lenguaje, y el éxito del proyecto han engendrado una amplia variedad de lenguajes, incluyendo Objective-C, Fortran, Ada, Haskell, bytecode de Java, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas y otros. El proyecto LLVM comenzó en 2000 en la Universidad de Illinois en Urbana-Champaign, bajo la dirección de y . LLVM fue desarrollado inicialmente bajo la Licencia de código abierto de la Universidad de Illinois, una licencia de tipo BSD. En 2005, Apple Inc. contrató a Lattner y formó un equipo para trabajar en el sistema de LLVM para varios usos dentro de los sistemas de desarrollo de Apple.LLVM es parte integrante de las últimas herramientas de desarrollo de Apple para Mac OS X e iOS. El nombre "LLVM" era en principio las iniciales de "Low Level Virtual Machine", pero esta denominación causó una confusión ampliamente difundida, puesto que las máquinas virtuales son solo una de las muchas cosas que se pueden construir con LLVM. Cuando la extensión del proyecto se amplió incluso más, LLVM se convirtió en un proyecto paraguas que incluye una multiplicidad de otros compiladores y tecnologías de bajo nivel, haciendo el nombre aún menos adecuado. Por tanto, el proyecto abandonó las iniciales. Actualmente, LLVM es una "marca" que se aplica al proyecto paraguas, la representación intermedia LLVM, el depurador LLVM, la biblioteca estándar de C++ definida por LLVM, etc. (es) LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate representation (IR) that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes. LLVM is written in C++ and is designed for compile-time, link-time, run-time, and "idle-time" optimization. Originally implemented for C and C++, the language-agnostic design of LLVM has since spawned a wide variety of front ends: languages with compilers that use LLVM (or which do not directly use LLVM but can generate compiled programs as LLVM IR) include ActionScript, Ada, C#, Common Lisp, PicoLisp, Crystal, CUDA, D, Delphi, Dylan, Forth, Fortran, Free Basic, Free Pascal, Graphical G, Halide, Haskell, Java bytecode, Julia, Kotlin, Lua, Objective-C, OpenCL, PostgreSQL's SQL and PLpgSQL, Ruby, Rust, Scala, Swift, XC, Xojo and Zig. (en) LLVM (anciennement appelé Low Level Virtual Machine en français : « machine virtuelle de bas niveau ») est une infrastructure de compilateur conçue pour l'optimisation du code à la compilation, à l'édition de liens, voire à l'exécution ou durant les « temps morts » d'un programme, quel que soit le langage d'origine. (fr) LLVM(エルエルヴィーエム、 またはエルエルブイエム)とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。当初は、LLVMの名称の由来は、Low Level Virtual Machine (低水準仮想機械) の略であるとしていたが、現在は、何の頭文字でもないとしている。 (ja) LLVM(이전 이름: Low Level Virtual Machine)은 컴파일러의 기반구조이다. 프로그램을 컴파일 타임, 링크 타임, 런타임 상황에서 프로그램의 작성 언어에 상관없이 최적화를 쉽게 구현할 수 있도록 구성되어 있다. LLVM은 원래는 저급 가상 기계(low-level virtual machine)의 약자를 가리켰지만, LLVM이 성장하고 다양한 목적을 가지게 되면서 현재는 그 이름을 약자로서 사용하는 것이 아니라 그냥 프로젝트의 이름으로서 사용하고 있다. LLVM의 핵심 코드는 'LLVM 라이선스'로 배포되며, 이것은 BSD 라이선스와 비슷한 속성을 가진다. 즉, LLVM을 사용한 프로그램을 배포하였을 때 해당 소스 코드를 공개/배포해야 하는 의무가 없다.단 LLVM의 프론트엔드를 GNU 컴파일러 모음(GCC) 기반으로 사용할 경우 프론트엔드는 GPL로 배포한다. LLVM 프로젝트에서는 LLVM 라이선스를 가지는 프론트엔드를 위해, Clang이라는 프로젝트를 진행하고 있다. (ko) LLVM (in precedenza acronimo di Low Level Virtual Machine, macchina virtuale di basso livello) è un'infrastruttura di compilazione, scritta in C++, progettata per l'ottimizzazione di programmi in fase di compilazione, di linking, di esecuzione e di non utilizzo. Il progetto LLVM è stato avviato nel 2000 all'Università dell'Illinois. LLVM attualmente supporta la compilazione di programmi in linguaggio C, C++, Objective C, Ada, Rust, Julia e Fortran, usando dei front-end derivati dalle versioni 4.0.1. e 4.2 del compilatore GNU Compiler Collection (GCC). Un front-end alternativo per linguaggi di programmazione simili al C è attualmente in sviluppo sotto il nome di clang. Usando LLVM, il programmatore può creare una macchina virtuale per linguaggi che la richiedono (ad esempio Java), un compilatore per una architettura specifica e software di ottimizzazione del codice indipendenti dal tipo di linguaggio utilizzato o dalla piattaforma. La rappresentazione intermedia LLVM (IR) è indipendente sia dal linguaggio che dalla architettura; essa si interpone tra il codice sorgente in un dato linguaggio e un generatore di codice per una specifica architettura. LLVM include il supporto all'ottimizzazione del codice inter-procedurale e compilatori sia statici che Just-in-time. Ha diversi componenti che si occupano delle diverse fasi di sviluppo; tra essi, si ricordano i frontend per i linguaggi bytecode di Java, CIL, Python, Julia. Il compilatore just-in-time LLVM è in grado di ottimizzare parti di programma in fase di esecuzione, ed è quindi utile nei casi in cui si voglia valutare l'efficienza di una singola funzione. Grazie a questa sua particolarità, esso viene usato nella pipeline OpenGL di Mac OS X Leopard per supportare alcune funzionalità non presenti a livello hardware. È il compilatore di default dell'IDE Xcode a partire dalla versione 4.2. (it) LLVM (anteriormente Low Level Virtual Machine) é uma infraestrutura de compilador escrita em C++, desenvolvida para otimizar em tempos de compilação, ligação e execução de programas escritos em linguagens de programação variadas. Implementada originalmente para C e C++, sua arquitetura permitiu a expansão para outras linguagens posteriormente, incluindo Objective-C, Fortran, Ada, Haskell, bytecode Java, Python, Ruby, ActionScript, GLSL, Julia, Kotlin entre outras. O projeto LLVM começou em 2000 na Universidade de Illinois em Urbana-Champaign sob direção de Vikram Adve e . Visava desenvolver uma infraestrutura de pesquisa para investigar técnicas de compilação dinâmica para linguagens estáticas e dinâmicas. A Apple Inc. contratou Lattner que formou um grupo de desenvolvedores no intuito de trabalhar no LLVM para sistemas próprios; atualmente, o LLVM é parte integral das ferramentas de desenvolvimento para macOS e iOS. (pt) LLVM (poprzednio Low Level Virtual Machine) – napisany w C++ kompilator. Pierwotnie był zaprojektowany dla języka C/C++, lecz dzięki jego ogólnej architekturze powstało wiele front-endów obejmujących m.in. języki Objective-C, Fortran, Ada, Haskell, D, Java, Scala, Python, Ruby czy ActionScript. Projekt powstał w 2000 roku na Uniwersytecie Illinois w Urbana-Champaign pod kierownictwem Vikrama Adve oraz Chrisa Lattnera. LLVM początkowo służył badaniom nad technikami dynamicznej kompilacji dla statycznych i dynamicznych języków programowania i został wydany na licencji BSD. W 2005 roku Apple Inc. zatrudniło Lattnera i powołało zespół programistów w celu wykorzystania LLVM w systemach tworzenia aplikacji tej firmy. LLVM jest integralną częścią najnowszych narzędzi programistycznych dla systemu OS X oraz iOS. (pl) LLVM (ранее Low Level Virtual Machine) — проект программной инфраструктуры для создания компиляторов и сопутствующих им утилит. Состоит из набора компиляторов из языков высокого уровня (так называемых «фронтендов»), системы оптимизации, интерпретации и компиляции в машинный код. В основе инфраструктуры используется RISC-подобная платформонезависимая система кодирования машинных инструкций (байткод LLVM IR), которая представляет собой высокоуровневый ассемблер, с которым работают различные преобразования. Написан на C++, обеспечивает оптимизации на этапах компиляции, компоновки и исполнения. Изначально в проекте были реализованы компиляторы для языков Си и C++ при помощи фронтенда Clang, позже появились фронтенды для множества языков, в том числе: ActionScript, Ада, C#, Common Lisp, Crystal, CUDA, D, Delphi, Dylan, Fortran, Graphical G Programming Language, , Haskell, Java (байткод), JavaScript, Julia, Kotlin, Lua, Objective-C, OpenGL Shading Language, Ruby, Rust, Scala, Swift, Xojo. LLVM может создавать машинный код для множества архитектур, в том числе ARM, x86, x86-64, PowerPC, MIPS, SPARC, RISC-V и других (включая GPU от Nvidia и AMD). Некоторые проекты имеют собственные LLVM-компиляторы (например LLVM-версия GCC), другие используют инфраструктуру LLVM, например таков Glasgow Haskell Compiler. Разработка начата в 2000 году в Университете Иллинойса. К середине 2010-х годов LLVM получил широкое распространение в индустрии: использовался, в том числе, в компаниях Adobe, Apple и Google. В частности, на LLVM основана подсистема OpenGL в Mac OS X 10.5, а iPhone SDK использует препроцессор (фронтенд) GCC с бэкэндом на LLVM. Apple и Google являются одними из основных спонсоров проекта, а один из основных разработчиков — Крис Латтнер — 11 лет проработал в Apple (с 2017 года — в Tesla Motors, с 2020 года — в разработчике процессоров и микроконтроллеров на архитектуре RISC-V SiFive). (ru) Low Level Virtual Machine (LLVM), är en infrastruktur för kompilering. LLVM är skrivet i C++ och är designat för att utföra optimeringar vid kompilering, länkning, och körning av program, oberoende av programspråk. Trots att LLVM från början var skrivet för C och C++ så har den språkoberoende designen lett fram till frontends till flera olika språk, så som D, Objective-C, Java bytekod, Haskell och Fortran för att nämna några. (sv) Low Level Virtual Machine (LLVM) — універсальна система аналізу, трансформації і оптимізації програм, що реалізує віртуальну машину з RISC-подібними інструкціями. Може використовуватися як оптимізувальний компілятор цього байт-коду в машинний код для різних архітектур або для його інтерпретації та JIT-компіляції (для деяких платформ). LLVM дозволяє компілювати програми, написані мовами С, C++, ObjC, Fortran, Ada, Haskell, Java, Python, Ruby, Rust, JavaScript, GLSL, або будь-якою іншою, для якої реалізовано front-end. В рамках проєкту розроблено фронтенд Clang для мов C і C++ і версія GCC, що використовують LLVM як бекенд. У Glasgow Haskell Compiler також реалізована компіляція за допомогою LLVM, існує ще безліч програм, що використовують цю інфраструктуру. (uk) LLVM是一套编译器基础设施项目,为自由软件,以C++寫成,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端。它是為了任意一種程式語言而寫成的程式,利用虛擬技術創造出編譯時期、鏈結時期、執行時期以及“閒置時期”的最佳化。 它最早以C/C++為實作對象,而目前它已支援包括ActionScript、Ada、D語言、Fortran、GLSL、Haskell、Java字节码、Objective-C、Swift、Python、Ruby、Crystal、Rust、Scala以及C#等语言。 (zh) |
dbo:author | dbr:Chris_Lattner dbr:Vikram_Adve |
dbo:genre | dbr:Compiler |
dbo:license | dbr:University_of_Illinois/NCSA_Open_Source_License dbr:Apache_License_2.0 |
dbo:operatingSystem | dbr:Cross-platform |
dbo:programmingLanguage | dbr:C++ |
dbo:thumbnail | wiki-commons:Special:FilePath/LLVM_logo.png?width=300 |
dbo:wikiPageExternalLink | http://www.aosabook.org/en/llvm.html http://llvm.org/pubs/2004-01-30-CGO-LLVM.pdf https://www.llvm.org |
dbo:wikiPageID | 654611 (xsd:integer) |
dbo:wikiPageLength | 31668 (xsd:nonNegativeInteger) |
dbo:wikiPageRevisionID | 1124150353 (xsd:integer) |
dbo:wikiPageWikiLink | dbr:PowerPC dbr:Pure_(programming_language) dbr:Ruby_(programming_language) dbr:Scala_(programming_language) dbr:Debugger dbr:Delphi_(programming_language) dbr:Architecture_Neutral_Distribution_Format dbc:Software_using_the_NCSA_license dbr:Julia_(programming_language) dbr:Relocation_(computing) dbr:University_of_Illinois_at_Urbana–Champaign dbr:C++_Standard_Library dbr:CC_BY dbr:Variable_(programming) dbr:Dynamic_compilation dbr:Intel_GMA dbr:Intermediate_representation dbr:Alpha_AXP dbr:Gallium3D dbr:Permissive_free_software_licence dbr:"Hello,_world!"_program dbc:Software_using_the_Apache_license dbr:Common_Lisp dbr:Compiler dbr:Cross-platform dbr:Crystal_(programming_language) dbr:Rust_(programming_language) dbr:SPARC dbr:SPIR-V dbr:Nios_II dbr:Toolchain dbr:Chris_Lattner dbr:Chromium_(web_browser) dbr:Clang dbr:Emscripten dbr:FreeBASIC dbr:Free_Pascal dbr:GNOME dbr:GNU_Compiler_Collection dbr:GNU_lightning dbr:Glasgow_Haskell_Compiler dbr:Google_Chrome dbr:Graph_coloring dbr:Apple_Inc. dbr:Los_Alamos_National_Laboratory dbr:Lua_(programming_language) dbr:MIPS_architecture dbr:MacOS dbr:MacRuby dbr:Mac_OS_X_Leopard dbr:Mach-O dbr:Standard_ML dbr:Static_single_assignment_form dbr:Common_Intermediate_Language dbr:Comparison_of_application_virtualization_software dbr:Composite_data_type dbr:Z/Architecture dbr:Zig_(programming_language) dbr:Halide_(programming_language) dbr:Function_pointer dbr:Pointer_(computer_programming) dbr:TenDRA_Distribution_Format dbr:MicroBlaze dbr:BSD_licenses dbr:C++ dbr:C++11 dbr:CUDA dbr:C_(programming_language) dbr:C_Sharp_(programming_language) dbr:Cell_(microprocessor) dbr:Type_system dbr:WebAssembly dbr:Just-in-time_compilation dbr:Language-independent_specification dbr:Linker_(computing) dbr:AMD_Optimizing_C/C++_Compiler dbr:ARM_architecture dbr:ActionScript dbr:Ada_(programming_language) dbr:Advanced_Micro_Devices dbr:Amsterdam_Compiler_Kit dbr:DEC_Alpha dbr:D_(programming_language) dbr:Dylan_(programming_language) dbr:Dynamic_programming_language dbr:Executable_and_Linkable_Format dbr:Firefox dbr:Flang dbr:Floating-point_arithmetic dbr:Forth_(programming_language) dbr:Fortran dbr:Partial_evaluation dbr:Central_processing_unit dbr:Graphics_processing_unit dbr:Record_(computer_science) dbr:HHVM dbr:Haskell_(programming_language) dbr:Java_(programming_language) dbr:TeraScale_(microarchitecture) dbr:Array_data_structure dbr:Array_data_type dbr:Assembly_language dbr:Association_for_Computing_Machinery dbr:ACM_Software_System_Award dbc:Compilers dbc:Free_compilers_and_interpreters dbr:LLDB_(debugger) dbr:LabVIEW dbr:Swift_(programming_language) dbr:Code_generation_(compiler) dbr:Java_bytecode dbr:Wyvern dbc:Register-based_virtual_machines dbr:C++14 dbr:C-- dbr:C_standard_library dbr:PicoLisp dbr:PlayStation_4 dbr:PostgreSQL dbr:Software_portability dbr:IBM dbr:IBM_XL_C/C++_Compilers dbr:IOS dbr:Initialism dbr:Instruction_set dbr:Instruction_set_architecture dbr:Integer_(computer_science) dbr:Integrated_development_environment dbr:Intel dbr:Intel_C++_Compiler dbr:Kotlin_(programming_language) dbr:Microsoft_Edge dbr:Nvidia dbr:Objective-C dbr:OpenCL dbr:OpenGL dbr:OpenMP dbr:Open_Access dbr:Optimizing_compiler dbr:RISC-V dbr:ROCm dbr:X86-64 dbr:Xcode dbr:Xojo dbr:Qualcomm_Hexagon dbr:MIT_License dbr:Virtual_machine dbr:Runtime_(program_lifecycle_phase) dbr:Software_development_kit dbr:Semantic_analysis_(compilers) dbr:Reduced_instruction_set_computing dbr:IA-32 dbr:IBM_XL_Fortran dbr:Link-time_optimization dbr:Programming_language dbr:University_of_Illinois/NCSA_Open_Source_License dbr:Vikram_Adve dbr:Apache_License_2.0 dbr:Parallel_Thread_Execution dbr:UIUC_license dbr:Apple_Safari dbr:PE/COFF dbr:PNaCl dbr:University_of_Illinois_at_Urbana_Champaign dbr:Function_(programming) dbr:GIMPLE dbr:GNU_ld dbr:Thread_(computer_science) dbr:Compile-time dbr:XCore dbr:Evan_Cheng dbr:MLIR_(Compiler) dbr:WAVM_(virtual_machine) dbr:File:Mesa_layers_of_crap_2016.svg |
dbp:author | dbr:Chris_Lattner dbr:Vikram_Adve |
dbp:developer | LLVM Developer Group (en) |
dbp:genre | dbr:Compiler |
dbp:license | dbr:University_of_Illinois/NCSA_Open_Source_License Apache License 2.0 with LLVM Exceptions (en) |
dbp:logo | LLVM logo.png (en) |
dbp:logoCaption | The LLVM logo, a stylized wyvern (en) |
dbp:name | LLVM (en) |
dbp:operatingSystem | dbr:Cross-platform |
dbp:programmingLanguage | dbr:C++ |
dbp:website | https://www.llvm.org |
dbp:wikiPageUsesTemplate | dbt:As_of dbt:Citation_needed dbt:ISBN dbt:Infobox_software dbt:Main_article dbt:Official_website dbt:Portal dbt:Reflist dbt:Short_description dbt:Start_date_and_age dbt:Use_mdy_dates dbt:Wikidata |
dbp:wordnet_type | http://www.w3.org/2006/03/wn/wn20/instances/synset-software-noun-1 |
dcterms:subject | dbc:Software_using_the_NCSA_license dbc:Software_using_the_Apache_license dbc:Compilers dbc:Free_compilers_and_interpreters dbc:Register-based_virtual_machines |
gold:hypernym | dbr:Infrastructure |
rdf:type | owl:Thing dbo:Company dbo:Software schema:CreativeWork dbo:Work wikidata:Q386724 wikidata:Q7397 yago:WikicatCompilers yago:CausalAgent100007347 yago:Communicator109610660 yago:Compiler109946957 yago:LivingThing100004258 yago:Object100002684 yago:Organism100004475 yago:Person100007846 yago:PhysicalEntity100001930 yago:Writer110794014 yago:YagoLegalActor yago:YagoLegalActorGeo yago:Whole100003553 yago:WikicatFreeCompilersAndInterpreters umbel-rc:SoftwareObject |
rdfs:comment | LLVM (dříve zkratka pro Low Level Virtual Machine) je projekt implementující optimalizující překladač ve formě knihoven a API. LLVM je naprogramován v C++ a navržen pro , link-time, run-time a „idle-time“ optimalizace programů napsaných v libovolném programovacím jazyce. Přestože první frontend byl implementován pro C/C++, na jazyce nezávislý design (a úspěch) LLVM podnítil vznik široké škály frontendů, například pro Objective-C, Swift, D, Go, Rust, Fortran, Ada, Haskell, , Python, Ruby, REALBasic, ActionScript, GLSL a další. (cs) LLVM (anciennement appelé Low Level Virtual Machine en français : « machine virtuelle de bas niveau ») est une infrastructure de compilateur conçue pour l'optimisation du code à la compilation, à l'édition de liens, voire à l'exécution ou durant les « temps morts » d'un programme, quel que soit le langage d'origine. (fr) LLVM(エルエルヴィーエム、 またはエルエルブイエム)とは、コンパイル時、リンク時、実行時などあらゆる時点でプログラムを最適化するよう設計された、任意のプログラミング言語に対応可能なコンパイラ基盤である。当初は、LLVMの名称の由来は、Low Level Virtual Machine (低水準仮想機械) の略であるとしていたが、現在は、何の頭文字でもないとしている。 (ja) LLVM(이전 이름: Low Level Virtual Machine)은 컴파일러의 기반구조이다. 프로그램을 컴파일 타임, 링크 타임, 런타임 상황에서 프로그램의 작성 언어에 상관없이 최적화를 쉽게 구현할 수 있도록 구성되어 있다. LLVM은 원래는 저급 가상 기계(low-level virtual machine)의 약자를 가리켰지만, LLVM이 성장하고 다양한 목적을 가지게 되면서 현재는 그 이름을 약자로서 사용하는 것이 아니라 그냥 프로젝트의 이름으로서 사용하고 있다. LLVM의 핵심 코드는 'LLVM 라이선스'로 배포되며, 이것은 BSD 라이선스와 비슷한 속성을 가진다. 즉, LLVM을 사용한 프로그램을 배포하였을 때 해당 소스 코드를 공개/배포해야 하는 의무가 없다.단 LLVM의 프론트엔드를 GNU 컴파일러 모음(GCC) 기반으로 사용할 경우 프론트엔드는 GPL로 배포한다. LLVM 프로젝트에서는 LLVM 라이선스를 가지는 프론트엔드를 위해, Clang이라는 프로젝트를 진행하고 있다. (ko) Low Level Virtual Machine (LLVM), är en infrastruktur för kompilering. LLVM är skrivet i C++ och är designat för att utföra optimeringar vid kompilering, länkning, och körning av program, oberoende av programspråk. Trots att LLVM från början var skrivet för C och C++ så har den språkoberoende designen lett fram till frontends till flera olika språk, så som D, Objective-C, Java bytekod, Haskell och Fortran för att nämna några. (sv) LLVM是一套编译器基础设施项目,为自由软件,以C++寫成,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端。它是為了任意一種程式語言而寫成的程式,利用虛擬技術創造出編譯時期、鏈結時期、執行時期以及“閒置時期”的最佳化。 它最早以C/C++為實作對象,而目前它已支援包括ActionScript、Ada、D語言、Fortran、GLSL、Haskell、Java字节码、Objective-C、Swift、Python、Ruby、Crystal、Rust、Scala以及C#等语言。 (zh) LLVM és una infraestructura de compilació per millorar l'optimització de programes de diversos llenguatges de programació. El propòsit inicial era perfeccionar el rerefons del compilador GCC, però el seu èxit, l'ha fet abastar altres àrees del compilador. Des del 2007 té el seu propi frontal de compilació per a C i C++, anomenat . Dins el projecte de LLVM també s'hi inclou el depurador LLDB. El projecte va començar l'any 2000 a la Universitat d'Illinois a sota la direcció de . L'any 2005 Apple va formar un grup de treball per incorporar LLVM a les seves plataformes de desenvolupament. (ca) La projekto LLVM de tradukila infrastrukturo (antaŭe maLaLta Virtuala Maŝino) estas "kolekto de modula kaj reuzebla tradukiloj kaj ĉenilaj teknologioj" uzita por evoluigi tradukilaj facadaj interfacoj kaj internaj interfacoj. La Asocio por Komputanta Maŝinaron donacis al Adve, Lattner kaj Evan Cheng la 2012an ACMan Programaran Sisteman Premion por LLVM. (eo) LLVM (anteriormente conocido como Low Level Virtual Machine, o Máquina Virtual de Bajo Nivel) es una infraestructura para desarrollar compiladores, escrita a su vez en el lenguaje de programación C++, que está diseñada para optimizar el tiempo de compilación, el tiempo de enlazado, el tiempo de ejecución y el "tiempo ocioso" en cualquier lenguaje de programación que el usuario quiera definir. Implementado originalmente para compilar C y C++, el diseño agnóstico de LLVM con respecto al lenguaje, y el éxito del proyecto han engendrado una amplia variedad de lenguajes, incluyendo Objective-C, Fortran, Ada, Haskell, bytecode de Java, Python, Ruby, ActionScript, GLSL, Clang, Rust, Gambas y otros. (es) LLVM (früher Low Level Virtual Machine) ist eine modulare Compiler-Unterbau-Architektur mit einem virtuellen Befehlssatz, einer virtuellen Maschine, die einen Hauptprozessor virtualisiert, und einem übergreifend optimierenden Übersetzungskonzept. Kennzeichnend ist unter anderem, dass sämtliche Zeitphasen eines Programms (Laufzeit, Übersetzungszeit, Linkzeit) inklusive der Leerlauf-Phase zur Optimierung herangezogen werden können. Der Zweck ist, einfach eigene Frontends für verschiedene Sprachen zu entwickeln, die die LLVM-Zwischensprache benutzen. Um die Erzeugung des Maschinen- bzw. VM-Codes kümmert sich die LLVM-Bibliothek, die vom Frontend aus aufgerufen wird. (de) LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate representation (IR) that serves as a portable, high-level assembly language that can be optimized with a variety of transformations over multiple passes. (en) LLVM (in precedenza acronimo di Low Level Virtual Machine, macchina virtuale di basso livello) è un'infrastruttura di compilazione, scritta in C++, progettata per l'ottimizzazione di programmi in fase di compilazione, di linking, di esecuzione e di non utilizzo. Il progetto LLVM è stato avviato nel 2000 all'Università dell'Illinois. È il compilatore di default dell'IDE Xcode a partire dalla versione 4.2. (it) LLVM (poprzednio Low Level Virtual Machine) – napisany w C++ kompilator. Pierwotnie był zaprojektowany dla języka C/C++, lecz dzięki jego ogólnej architekturze powstało wiele front-endów obejmujących m.in. języki Objective-C, Fortran, Ada, Haskell, D, Java, Scala, Python, Ruby czy ActionScript. (pl) LLVM (ранее Low Level Virtual Machine) — проект программной инфраструктуры для создания компиляторов и сопутствующих им утилит. Состоит из набора компиляторов из языков высокого уровня (так называемых «фронтендов»), системы оптимизации, интерпретации и компиляции в машинный код. В основе инфраструктуры используется RISC-подобная платформонезависимая система кодирования машинных инструкций (байткод LLVM IR), которая представляет собой высокоуровневый ассемблер, с которым работают различные преобразования. (ru) LLVM (anteriormente Low Level Virtual Machine) é uma infraestrutura de compilador escrita em C++, desenvolvida para otimizar em tempos de compilação, ligação e execução de programas escritos em linguagens de programação variadas. Implementada originalmente para C e C++, sua arquitetura permitiu a expansão para outras linguagens posteriormente, incluindo Objective-C, Fortran, Ada, Haskell, bytecode Java, Python, Ruby, ActionScript, GLSL, Julia, Kotlin entre outras. (pt) Low Level Virtual Machine (LLVM) — універсальна система аналізу, трансформації і оптимізації програм, що реалізує віртуальну машину з RISC-подібними інструкціями. Може використовуватися як оптимізувальний компілятор цього байт-коду в машинний код для різних архітектур або для його інтерпретації та JIT-компіляції (для деяких платформ). (uk) |
rdfs:label | LLVM (en) LLVM (ca) LLVM (cs) LLVM (de) LLVM (eo) LLVM (es) LLVM (fr) LLVM (it) LLVM (ja) LLVM (ko) LLVM (pl) LLVM (pt) Low Level Virtual Machine (sv) LLVM (ru) Low Level Virtual Machine (uk) LLVM (zh) |
owl:sameAs | freebase:LLVM yago-res:LLVM wikidata:LLVM dbpedia-ca:LLVM dbpedia-cs:LLVM dbpedia-da:LLVM dbpedia-de:LLVM dbpedia-eo:LLVM dbpedia-es:LLVM dbpedia-fa:LLVM dbpedia-fi:LLVM dbpedia-fr:LLVM dbpedia-hu:LLVM http://hy.dbpedia.org/resource/LLVM dbpedia-it:LLVM dbpedia-ja:LLVM dbpedia-ko:LLVM dbpedia-no:LLVM http://pa.dbpedia.org/resource/ਐੱਲਐੱਲਵੀਐੱਮ dbpedia-pl:LLVM dbpedia-pt:LLVM dbpedia-ru:LLVM dbpedia-sk:LLVM dbpedia-sr:LLVM dbpedia-sv:LLVM dbpedia-uk:LLVM dbpedia-zh:LLVM https://global.dbpedia.org/id/27UwB |
prov:wasDerivedFrom | wikipedia-en:LLVM?oldid=1124150353&ns=0 |
foaf:depiction | wiki-commons:Special:FilePath/LLVM_logo.png wiki-commons:Special:FilePath/Mesa_layers_of_crap_2016.svg |
foaf:homepage | https://www.llvm.org |
foaf:isPrimaryTopicOf | wikipedia-en:LLVM |
foaf:name | LLVM (en) |
is dbo:knownFor of | dbr:Chris_Lattner dbr:Vikram_Adve |
is dbo:wikiPageRedirects of | dbr:LLVM_Intermediate_Representation dbr:.ll dbr:Low_Level_Virtual_Machine dbr:Low_level_virtual_machine dbr:Llvm dbr:LLVM_IR |
is dbo:wikiPageWikiLink of | dbr:Precompiled_header dbr:Pure_(programming_language) dbr:Python_(programming_language) dbr:Quicksort dbr:Ruby_(programming_language) dbr:Scala_(programming_language) dbr:List_of_University_of_Illinois_Urbana-Champaign_people dbr:List_of_University_of_Portland_alumni dbr:List_of_computer_scientists dbr:Basic_Linear_Algebra_Subprograms dbr:Berkeley_Packet_Filter dbr:Bitrig dbr:Bluefish_(software) dbr:Architecture_Neutral_Distribution_Format dbr:History_of_compiler_construction dbr:Julia_(programming_language) dbr:List_of_compilers dbr:Phabricator dbr:Universal_Windows_Platform dbr:University_of_Illinois_Department_of_Computer_Science dbr:University_of_Illinois_Urbana-Champaign dbr:E-graph dbr:Inline_assembler dbr:Inline_function dbr:Instruction_scheduling dbr:Intermediate_representation dbr:Interprocedural_optimization dbr:Introsort dbr:List_of_numerical-analysis_software dbr:List_of_programmers dbr:List_of_programming_language_researchers dbr:List_of_programming_languages_by_type dbr:Nvidia_CUDA_Compiler dbr:LLVM_Intermediate_Representation dbr:Timeline_of_free_and_open-source_software dbr:.NET_Micro_Framework dbr:.ll dbr:128-bit_computing dbr:Comparison_of_integrated_development_environments dbr:Compiler dbr:Crystal_(programming_language) dbr:Mathomatic dbr:Rust_(programming_language) dbr:Toolchain dbr:Source-to-source_compiler dbr:Quantum_programming dbr:Chris_Lattner dbr:Clang dbr:Cocoa_(API) dbr:Emscripten dbr:FreeBSD dbr:Free_and_open-source_graphics_device_driver dbr:GNU_Binutils dbr:GNU_Compiler_Collection dbr:GNU_Compiler_for_Java dbr:GNU_lightning dbr:GPUOpen dbr:GameMaker dbr:Gcov dbr:Go_(programming_language) dbr:Google_Native_Client dbr:Google_Stadia dbr:Google_Test dbr:GraalVM dbr:Graphics_Core_Next dbr:Minix_3 dbr:Mono_(software) dbr:MulticoreWare dbr:NaN dbr:Concolic_testing dbr:CrossBridge dbr:The_Portland_Group dbr:Dangling_pointer dbr:LEB128 dbr:Open_coopetition dbr:Anonymous_function dbr:Lightspark dbr:Lightweight_Java_Game_Library dbr:Linux dbr:Linux_Foundation dbr:Linux_kernel dbr:Linux_kernel_interfaces dbr:Lisp_(programming_language) dbr:LowRISC dbr:Low_Level_Virtual_Machine dbr:Low_level_virtual_machine dbr:M-Labs dbr:MacRuby dbr:Mac_OS_X_Leopard dbr:SiFive dbr:Standard_ML dbr:Common_Intermediate_Language dbr:Comparison_of_application_virtualization_software dbr:Comparison_of_assemblers dbr:Comparison_of_debuggers dbr:Zig_(programming_language) dbr:Feature_levels_in_Direct3D dbr:Hamming_weight dbr:Pointer_(computer_programming) dbr:MicroBlaze dbr:Aum_Programming_Language dbr:Azul_Systems dbr:BLISS dbr:Buildbot dbr:C++ dbr:CPython dbr:CUDA dbr:C_(programming_language) dbr:Trojan_Source dbr:WebAssembly dbr:WebKit dbr:GNU_Project dbr:GNU_toolchain dbr:Garbage_collection_(computer_science) dbr:Just-in-time_compilation dbr:Linker_(computing) dbr:Linux_on_IBM_Z dbr:Logical_shift dbr:Unistd.h dbr:UPCRC_Illinois dbr:AMD_Optimizing_C/C++_Compiler dbr:Adobe_Flash_Player dbr:Advanced_Micro_Devices dbr:Advanced_Vector_Extensions dbr:Amarok_(software) dbr:American_fuzzy_lop_(fuzzer) dbr:D_(programming_language) dbr:Dynamic_program_analysis dbr:EC_(programming_language) dbr:Extempore_(software) dbr:FOSDEM dbr:Find_first_set dbr:Nim_(programming_language) dbr:Ninja_(build_system) dbr:Numba dbr:ParaSail_(programming_language) dbr:Parrot_virtual_machine dbr:Carbon_(programming_language) dbr:Fat_binary dbr:Frameworks_supporting_the_polyhedral_model dbr:Gold_(linker) dbr:History_of_programming_languages dbr:List_of_JVM_languages dbr:List_of_Java_virtual_machines dbr:List_of_Linux-supported_computer_architectures dbr:List_of_Lisp-family_programming_languages dbr:List_of_Python_software dbr:Wen-mei_Hwu dbr:Property_(programming) dbr:HHVM dbr:Haskell dbr:IronPython dbr:Itanium dbr:JUCE dbr:Asm.js dbr:AssemblyScript dbr:AArch64 dbr:ACM_Software_System_Award dbr:ANSI_C dbr:AVR_microcontrollers dbr:Advanced_Matrix_Extensions dbr:Chapel_(programming_language) dbr:Chisel_(programming_language) dbr:JetBrains dbr:LLDB_(debugger) dbr:LabVIEW dbr:LayaBox dbr:Binary_translation dbr:Blocks_(C_language_extension) dbr:Swift_(programming_language) dbr:TI_MSP430 dbr:Code_motion dbr:Code_property_graph dbr:Wyvern dbr:Dice_(programming_language) dbr:Buffer_overflow_protection dbr:Burroughs_large_systems_descriptors dbr:C-- dbr:C17_(C_standard_revision) dbr:CINT dbr:PicoLisp dbr:PlaidML dbr:PlayStation_4_system_software dbr:PostgreSQL dbr:FreeBSD_version_history dbr:Gtkmm dbr:IcedTea dbr:Idris_(programming_language) dbr:Ikarus_(Scheme_implementation) dbr:Impromptu_(programming_environment) dbr:Integer_set_library dbr:Intel_C++_Compiler dbr:Kotlin_(programming_language) dbr:Mesa_(computer_graphics) dbr:Metal_(API) dbr:Microsoft-specific_exception_handling_mechanisms dbr:Mingw-w64 dbr:Object_code_optimizer dbr:Objective-C dbr:OpenBSD dbr:OpenCL dbr:OpenRISC dbr:OpenVMS dbr:Optimizing_compiler dbr:RISC-V dbr:ROCm dbr:Race_condition dbr:Shading_language dbr:Wolfram_Mathematica dbr:Xcode dbr:Qualcomm_Hexagon dbr:Loongson dbr:Magic_number_(programming) dbr:Static_single-assignment_form dbr:Network_scheduler dbr:Saturation_arithmetic dbr:Sigil_(computer_programming) dbr:Unum_(number_format) dbr:Llvm dbr:FMA_instruction_set dbr:LLD_(disambiguation) dbr:Ppc64 dbr:Pointer_analysis dbr:Superoptimization dbr:Retargeting dbr:University_of_Illinois/NCSA_Open_Source_License dbr:SIGPLAN dbr:Single_instruction,_multiple_data dbr:Web_API dbr:UNCOL dbr:Vikram_Adve dbr:Permute_instruction dbr:Variable-length_quantity dbr:Outline_of_free_software dbr:Steensgaard's_algorithm dbr:LLVM_IR |
is dbp:knownFor of | dbr:Chris_Lattner dbr:Vikram_Adve |
is foaf:primaryTopic of | wikipedia-en:LLVM |