Clang

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Clangfront-end kompilatora dla języków C, C++ oraz Objective-C, który używa LLVM jako back-end (generator kodu natywnego i optymalizator). Celem projektu jest stworzenie alternatywy dla kompilatora z projektu GCC. Prace nad nim sponsorowane są przez Apple, a sam program wydany jest na licencji BSD.

Low Level Virtual Machine (LLVM) jest napisanym w C++ kompilatorem. 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, Python, Ruby czy ActionScript.Apple Inc. (wcześniej Apple Computer Inc.) NASDAQ: AAPL – amerykańska korporacja zajmująca się projektowaniem i produkcją elektroniki użytkowej, oprogramowania i komputerów osobistych z siedzibą w Cupertino w Kalifornii. Założona przez Steve’a Wozniaka – projektanta, Steve’a Jobsa i Ronalda Wayne’a. Produkty spółki to m.in.: komputery Mac, iPod, iPhone i iPad. Oprogramowanie Apple obejmuje system operacyjny OS X, przeglądarkę multimediów iTunes, pakiet oprogramowania multimedialnego i kreatywności iLife, pakiet oprogramowania biurowego iWork, profesjonalny pakiet fotografii Aperture, pakiet profesjonalnych rozwiązań wideo Final Cut Studio oraz zestaw narzędzi audio Logic Studio. Od stycznia 2010 roku firma działa poprzez 284 własnych sklepów detalicznych w dziesięciu krajach, oraz za pośrednictwem sklepu internetowego sprzedającego zarówno sprzęt, jak i oprogramowanie.

Clang jest rozwijany z uwzględnieniem następujących pożądanych cech:

  • krótki czas kompilacji, mała ilość zajmowanej pamięci przez kompilator w jej trakcie
  • diagnostyka kodu wskazująca programiście dokładne miejsce popełnienia błędu
  • kompatybilność z GCC
  • modularność (m.in. możliwość użycia clang jako biblioteki przez inne narzędzie, analizatory kodu, edytory, itp.)
  • porównywalna lub lepsza jakość kodu wynikowego (prędkość wykonania i rozmiar plików binarnych), używając LLVM
  • Obecnie projekt jest nadal w fazie rozwoju, ale jest kompatybilny z bardzo dużą ilością istniejących projektów napisanych w C, oraz od niedawna również C++, włączając w to bardzo duże i skomplikowane projekty, takie jak jądro Linux, biblioteki Boost oraz Qt, kompilator i maszyna wirtualna Javy HotSpot czy sam kompilator GCC.

    W ogólnym rozumieniu terminy front-end i back-end odnoszą się do początkowego oraz końcowego stadium pewnego procesu. Z reguły przedstawia to sytuacja gdzie front-end jest odpowiedzialny za pobieranie danych od użytkownika oraz przekazanie ich do back-endu. Następnie back-end na podstawie tych danych wykonuje określone zadanie. Opcjonalnie front-end może pokazać użytkownikowi wyniki otrzymane od back-endu. Często stosowanym tłumaczeniem jest „fasada” i „wnętrze”.FreeBSD — system operacyjny z rodziny Unix. Do wersji 2.0 wywodził się z systemu 4.3BSD, kolejne wersje wywodziły się z 4.4BSD Lite2; obu stworzonych przez Computer Systems Research Group (CSRG) na Uniwersytecie Kalifornijskim w Berkeley. Podobnie jak NetBSD, jest bezpośrednią pochodną 386BSD – systemu będącego pierwszą próbą przeportowania systemu Unix z gałęzi BSD na architekturę IA-32.Początkowo znany pod nazwą Unofficial 386BSD Patchkit.

    System operacyjny FreeBSD posiada wsparcie dla kompilowania większości programów z systemu portów, oraz samego systemu (jądro i programy przestrzeni jądra) przy pomocy clang. Jest to o tyle ważne że licencja samego kompilatora jest bardziej kompatybilna z systemem BSD, jak również czas kompilacji jest szybszy (bez drastycznego zmniejszenia prędkości wykonania), pozwalając na szybszy rozwój czy szybsze instalowanie oprogramowania przez ręczną kompilację z portów.

    Objective-C – rozszerzenie języka C o możliwości obiektowe, wzorowane na Smalltalku. Objective-C przyjął drogę całkowicie odmienną od C++. Jest używany głównie w frameworku Cocoa w systemie Mac OS X oraz w iOS.Jądro Linux (ang. Linux kernel) – najważniejsza, wolna część uniksopodobnych systemów operacyjnych Linux napisana przez Linusa Torvaldsa w 1991 roku, a obecnie rozwijana przez licznych programistów z całego świata w ramach The Linux Foundation.

    Linki zewnętrzne[ | edytuj kod]

  • Strona domowa projektu




  • Warto wiedzieć że... beta

    Kompilator – program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym) . Proces ten nazywany jest kompilacją. W informatyce kompilatorem nazywa się najczęściej program do tłumaczenia kodu źródłowego w języku programowania na język maszynowy. Niektóre z nich tłumaczą najpierw do języka asemblera, a ten na język maszynowy jest tłumaczony przez asembler.
    C – imperatywny, strukturalny język programowania wysokiego poziomu stworzony na początku lat siedemdziesiątych XX w. przez Dennisa Ritchiego do programowania systemów operacyjnych i innych zadań niskiego poziomu.
    GCC (ang. GNU Compiler Collection) - zestaw kompilatorów do różnych języków programowania rozwijany w ramach projektu GNU i udostępniany na licencji GPL oraz LGPL.
    Qt - zestaw przenośnych bibliotek i narzędzi programistycznych dedykowanych dla języków C++, QML i Java. Ich podstawowym składnikiem są klasy służące do budowy graficznego interfejsu programów komputerowych, począwszy od wersji 4.0 Qt zawiera też narzędzia do tworzenia programów konsolowych i serwerów.
    Licencja BSD (Berkeley Software Distribution License, BSDL) – jedna z licencji zgodnych z zasadami Wolnego Oprogramowania. Powstała na Uniwersytecie Kalifornijskim w Berkeley.

    Reklama