• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Kompilator



    Podstrony: 1 [2] [3] [4]
    Przeczytaj także...
    Programista, zwany też potocznie koderem to osoba, która tworzy programy komputerowe w pewnym języku programowania. Termin ten może odnosić się także do specjalisty w jednej dziedzinie programowania. Większość programistów zna co najmniej kilka języków programowania (np. C, C++, Java), lecz specjalizuje się tylko w wybranych z nich. Nazwa głównego języka jest często dodawana do nazwy stanowiska, np. programista C++, aby podkreślić specjalizację.COBOL (ang. COmmon Business Oriented Language) – język programowania stworzony z głównym przeznaczeniem do prac programistycznych w dziedzinach ekonomii i biznesu.
    Schemat blokowy kompilatora wieloprzebiegowego

    Kompilatorprogram 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.

    Język wysokiego poziomu (autokod) – typ języka programowania, którego składnia i słowa kluczowe mają maksymalnie ułatwić rozumienie kodu programu dla człowieka, tym samym zwiększając poziom abstrakcji i dystansując się od sprzętowych niuansów. Kod napisany w języku wysokiego poziomu nie jest bezpośrednio „zrozumiały” dla komputera – większość kodu stanowią tak naprawdę normalne słowa, np. w języku angielskim. Aby umożliwić wykonanie programu napisanego w tym języku należy dokonać procesu kompilacji.Gramatyka formalna – sposób opisu języka formalnego, czyli podzbioru zbioru wszystkich słów skończonej długości nad danym alfabetem.

    Różnica pomiędzy kompilatorem a asemblerem polega na tym, iż każde polecenie języka programowania może zostać rozbite na wiele podpoleceń języka maszynowego (przy czym nowoczesne asemblery również posiadają składnię umożliwiającą zapis wielu poleceń maszynowych jako jednego polecenia kodu źródłowego oraz opcje optymalizacji kodu). Kompilatory mogą posiadać możliwość automatycznej alokacji pamięci dla zmiennych, implementowania struktur kontrolnych lub procedur wejścia-wyjścia.

    Analiza semantyczna w teorii kompilatorów to faza procesu kompilacji, wykonywana po analizie syntaktycznej, a przed generowaniem kodu, w której sprawdzana jest poprawność programu na poziomie znaczenia poszczególnych instrukcji oraz programu jako całości. Analiza semantyczna najczęściej operuje na drzewie składni, do którego dodaje dodatkowe informacja, np. typy wartości.Grace Murray Hopper, z d. Grace Brewster Murray (ur. 9 grudnia 1906 w Nowym Jorku, zm. 1 stycznia 1992 w Arlington w stanie Wirginia) – amerykańska pionierka informatyki, przez szereg lat służyła w United States Navy, w 1986 przeszła w stan spoczynku w stopniu kontradmirała (Rear Admiral - lower half).

    Stosowanie kompilatorów ułatwia programowanie (programista nie musi znać języka maszynowego) i pozwala na większą przenośność kodu pomiędzy platformami.

    Spis treści

  • 1 Zarys historyczny
  • 2 Przebieg kompilacji
  • 3 Przykład kompilatora
  • 4 Kompilatory w edukacji
  • 5 Zobacz też
  • 6 Przypisy
  • 7 Linki zewnętrzne
  • Zarys historyczny[]

    Oprogramowanie pierwszych komputerów było przez wiele lat pisane jedynie w języku asemblera. Języki wysokiego poziomu nie były stosowane, dopóki korzyści z użycia tych samych programów na różnych rodzajach procesorów nie stały się istotnie większe od kosztu pisania kompilatora. Bardzo ograniczona pojemność pamięci wczesnych komputerów sprawiała również wiele problemów przy implementacji kompilatorów.

    Asembler (z ang. assembler) – termin informatyczny związany z programowaniem i tworzeniem kodu maszynowego dla procesorów. W języku polskim oznacza on program tworzący kod maszynowy na podstawie kodu źródłowego (tzw. asemblacja) wykonanego w niskopoziomowym języku programowania bazującym na podstawowych operacjach procesora zwanym językiem asemblera, popularnie nazywanym również asemblerem. W tym artykule język programowania nazywany będzie językiem asemblera, a program tłumaczący – asemblerem.Wydział Matematyki, Informatyki i Mechaniki Uniwersytetu Warszawskiego (WMIM UW, MIMUW) – wydział Uniwersytetu Warszawskiego kształcący w trybie dziennym na kierunkach:

    Pod koniec lat 50. zaproponowano po raz pierwszy maszynowe języki programowania, w następstwie czego powstały pierwsze, eksperymentalne kompilatory. Pierwszy kompilator napisała Grace Hopper w 1952 dla języka A-0. Uznaje się, że ekipa FORTRAN z IBM, prowadzona przez Johna Backusa, wprowadziła do użycia pierwszy kompletny kompilator w 1957. W 1960 COBOL był jednym z pierwszych języków, który można było kompilować na różnych architekturach.

    Dekompilator – program przekształcający język maszynowy lub kod bajtowy do postaci języka wyższego poziomu. Proces tłumaczenia kodu nazywa się dekompilacją. Dekompilacja nie odtwarza kodu źródłowego programu sprzed jego kompilacji, a jedynie postać źródłową w pewnym języku wyższego rzędu (zależnym od dekompilatora) i mającą identyczne działanie jak dekompilowany kod.Optymalizacja kodu wynikowego – proces, w którym dosłowna wersja kodu źródłowego, zazwyczaj w postaci jakiegoś drzewa, jest przekształcana w postać umożliwiającą sprawne wykonanie.

    W wielu dziedzinach zastosowań idea programowania wysokopoziomowego szybko się przyjęła. Rozszerzanie funkcjonalności zapewnianej przez nowsze języki programowania oraz wzrastająca złożoność architektur systemów komputerowych spowodowały, że kompilatory stawały się coraz bardziej skomplikowane.

    Wczesne kompilatory były pisane w asemblerze. Pierwszym kompilatorem zdolnym do skompilowania własnego kodu źródłowego napisanego w języku wysokiego poziomu był kompilator języka Lisp, stworzony przez Harta i Levina z MIT w 1962. Od lat siedemdziesiątych stało się powszechną praktyką implementowanie kompilatora w języku przezeń kompilowanym, pomimo że zarówno Pascal, jak i C, był chętnie wybierany przy implementacji. Problem konstrukcji samokompilującego się kompilatora określa się mianem bootstrap – pierwszy kompilator musi być albo skompilowany kompilatorem napisanym w innym języku, albo (jak w przypadku kompilatora języka Lisp autorstwa Harta i Levina) kompilowany przez uruchomienie kompilatora w interpreterze.

    Analiza składniowa (ang. parsing) – w informatyce i lingwistyce – proces analizy tekstu, w celu ustalenia jego struktury gramatycznej i zgodności z gramatyką języka. Słowo parsing pochodzi od (łac.) pars (ōrātiōnis), które oznacza część mowy.Preprocesor – w programowaniu – to program komputerowy, którego zadaniem jest przetworzenie kodu źródłowego, w sposób określony przez programistę za pomocą dyrektyw preprocesora, na kod wyjściowy – tak przetworzony kod źródłowy poddawany jest następnie analizie składniowej i kompilacji.


    Podstrony: 1 [2] [3] [4]



    w oparciu o Wikipedię (licencja GFDL, CC-BY-SA 3.0, autorzy, historia, edycja)

    Warto wiedzieć że... beta

    Wydział Informatyki, Elektroniki i Telekomunikacji (WIEiT) – jeden z 16 wydziałów Akademii Górniczo-Hutniczej im. St. Staszica w Krakowie, powstały w wyniku podziału Wydziału Elektrotechniki, Automatyki, Informatyki i Elektroniki w 2012 roku.
    Program komputerowy (ang. computer program) - sekwencja symboli opisująca obliczenia zgodnie z pewnymi regułami zwanymi językiem programowania. Program jest zazwyczaj wykonywany przez komputer (np. wyświetlenie strony internetowej), czasami bezpośrednio – jeśli wyrażony jest w języku zrozumiałym dla danej maszyny lub pośrednio – gdy jest interpretowany przez inny program (interpreter). Program może być ciągiem instrukcji opisujących modyfikacje stanu maszyny ale może również opisywać obliczenia w inny sposób (np. rachunek lambda).
    Definicja intuicyjna: Kod źródłowy to zapis programu komputerowego w formie czytelnej dla człowieka umożliwiający jego modyfikację i rozwój.
    Kod wynikowy, to kod w określonym języku, utworzony przez translator, w wyniku translacji kodu źródłowego. Programy komputerowe są kodowane przez programistów w określonym języku programowania, obecnie najczęściej w języku wysokiego poziomu. Taki kod jest niezrozumiały dla maszyny, na której program ma być wykonywany. W związku z tym kod źródłowy stworzony przez programistę, musi zostać poddany translacji, czyli tłumaczeniu, na kod wynikowy, tak dobrany przez autorów translatora, aby mógł być wykonany przez daną maszynę (komputer, maszynę wirtualną, interpreter, inny translator).
    Pamięć komputerowa to różnego rodzaju urządzenia i bloki funkcjonalne komputera, służące do przechowywania danych i programów (systemu operacyjnego oraz aplikacji). Potocznie przez "pamięć komputerową" rozumie się samą pamięć operacyjną.
    Pascal – dawniej jeden z najpopularniejszych języków programowania, uniwersalny, wysokiego poziomu, ogólnego zastosowania, oparty na języku Algol. Został opracowany przez Niklausa Wirtha w 1970 roku. Nazwa języka pochodzi od nazwiska francuskiego fizyka, matematyka i filozofa Blaise Pascala.
    Rozszerzona notacja Backusa-Naura (ang. Extended Backus-Naur Form) jest sposobem wyrażenia gramatyki bezkontekstowej, czyli opisem języków formalnych. Jest rozszerzeniem notacji BNF.

    Reklama