5 Etapów Pracy Kompilatora

Slides:



Advertisements
Podobne prezentacje
Język C/C++ Funkcje.
Advertisements

Programowanie Wizualne WYKŁAD 1
Dyrektywy preprocesora Jeżeli plik źródłowy posiada rozszerzenie.F lub.FOR, może on zawierać dyrektywy dla preprocesora. Na podstawie tych dyrektyw preprocesor.
Pracownia komputerowa
Wprowadzenie do C++ Zajęcia 2.
Kamil Smitkiewicz Bezpieczeństwo w PHP.
PROGRAMOWANIE STRUKTURALNE
CLR na platformie .NET Tomasz Kostarski.
Projektowanie Aplikacji Komputerowych
Generator analizatorów składniowych
GDB Omówienie z przykładami
Inżynieria oprogramowania Lecture XXX JavaTM – część IV: IO
Systemy operacyjne Wykład nr 5: Wątki Piotr Bilski.
Biblioteki i przestrzenie nazw
Ćwiczenie (1) Dostosuj poniższy program do wymogów programu zaliczeniowego #include typedef struct{ char imie[30]; char nazwisko[50]; int rokUrodzenia;
Podstawy programowania
Wyrażenia Wyrażenie w Fortranie jest poprawną syntaktycznie kombinacją zmiennych, stałych, operatorów i funkcji. Wyrażenia są jednozdaniowymi przepisami.
Opcje kompilatora g77 g77 [opcje] pliki_źródłowe Opcje: -c tylko kompilacja bez linkowania -S kompilacja do kodu assemblera -E tylko pre-processing -o.
Zasady leżące u podstaw informatyzacji administracji publicznej
Wprowadzenie do programowania w języku Turbo Pascal
Narzędzia internetowe Paweł Rajba ttp://pawel.ii.uni.wroc.pl/
Pliki WSADOWE.
Tworzenie stron internetowych www World Wide Web
PODSTAWY <HTML>
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Rozwój aplikacji. To zestaw narzędzi do budowania i optymalizacji złożonych aplikacji opartych na przeglądarce. To zestaw narzędzi do budowania i optymalizacji.
Jerzy F. Kotowski1 Informatyka I Wykład 9 TABLICE PREPROCESOR OPERATORY c.d. (nie tylko binarne)
System operacyjny. System operacyjny Co to jest system operacyjny: jest szczególnym rodzajem programu, którego zadaniem jest koordynowanie pracy.
KONSTRUKCJA KOMPILATORÓW WYKŁAD WYKŁAD Robert Plebaniak Robert Plebaniak.
W SYSTEMIE OPERACYJNYM UNIX / LINUX
Podstawy programowania. Język C i C++– podstawy Temat: 1
Wprowadzenie do programowania w językach C i C++
Kompilator SDCC i Pakiet STRC52 Mgr inż. Aleksander Pruszkowski
Generator analizatorów leksykalnych
Programowanie strukturalne i obiektowe
Programowanie obiektowe – zastosowanie języka Java SE
Maszyna wirtualna ang. virtual machine, VM.
Przeglądanie zasobów komputera - uruchamianie programów
Historia Języka C Idea C pochodzi od języka BCPL, opracowanego przez M. Richardsa 1970 – język B stworzony przez K. Thompsona Język C wprowadzono po raz.
Wprowadzenie do HTML Informatyka Cele lekcji: Wiadomości:
Kurs języka C++ – wykład 3 ( )
Systemy operacyjne (wiosna 2014)
Aplikacje internetowe Łącza hipertekstowe. Tworzenie hiperpołączeń Do utworzenia połączenia w języku HTML potrzebne są następujące informacje: nazwa pliku.
Podstawy programowania
C++.
XML Publisher Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przeznaczenie XML Publisher Przeznaczenie XML Publisher Definiowanie Definiowanie.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Biblioteka DLL w oparciu o źródła w języku C
System plików.
Desktop\Gif-y-4b\ hej.gif
Dokumentacja obsługi programów Kamil Smużyński Piotr Kościński.
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Elementy JavaServer Pages. Dyrektywy JSP  Elementy dyrektyw używane są do określania tej informacji o stronie, która pozostaje bez zmiany między żądaniami.
Y A C C Generator analizatorów składniowych. GENERATOR YACC Zadaniem generatora YACC jest wygenerowanie kodu źródłowego analizatora składniowego (domyślnie)
I TY ZOSTAŃ WEBMASTEREM! CZĘŚĆ 2 – „STRUKTURA STRONY” STWORZYŁ GABRIEL ŚLAWSKI.
Wprowadzenie do programowania w Pascalu mgr inż. Agata Pacek.
Platforma .Net.
Podstawy programowania
Dokumentacja programu komputerowego i etapy tworzenia programów.
Podstawy informatyki Preprocesor Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
C++ WYKŁAD 12 ( ) Własne biblioteki. S PIS TREŚCI Kompilacja i łączenie Moduły Biblioteki Biblioteka statyczna Biblioteka współdzielona Biblioteka.
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
K URS JĘZYKA C++ – WYKŁAD 1 ( ) Łagodne wprowadzenie do języka C++
C++ WYKŁAD 13 ( ) Algorytmy. S PIS TREŚCI Funktory i predykaty Funkcje lambda.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Grzegorz Cygan Wstęp do programowania mikrosterowników w języku C
Optymalizacja programów Open-Source
Optymalizacja programów Open-Source
Programowanie obiektowe – zastosowanie języka Java SE
Zasady leżące u podstaw informatyzacji administracji publicznej
Zapis prezentacji:

GCC, G++ - podstawowe informacje, składnia podstawowych poleceń i możliwości

5 Etapów Pracy Kompilatora Preprocessing - prekompilacja Compilation – kompilacja właściwa Optimization - optymalizacja Assembling – asemblacja kodu Linking - linkowanie

5 Etapów Pracy Kompilatora Preprocessing: Tworzenie ostatecznego KODU ŹRÓDŁOWEGO aplikacji Dołączone są dyrektywy #include Podstawienia makroinstrukcji #define Opcja: -E

5 Etapów Pracy Kompilatora 2. Compilation: Kompilacja do kodu assemblera Wychwytywanie błędów Tworzony jest plik (.s) Opcja: -S

5 Etapów Pracy Kompilatora 3. Optimization: Zmiany w kodzie assemblera zwiększające efektywność kodu Optymalizacje przydziału rejestrów Usprawnianie sposobu obliczania adresów

5 Etapów Pracy Kompilatora 4. Assembling: Zamiana kodu assemblerowego na maszynowy 5. Linking: Linker szuka niezidentyfikowanych części kodu Kod maszynowy przypisywany do adresów Plik wykonywalny

Kompilowanie i wyjście -E - zatrzymanie na preprocessingu -S - zatrzymanie na etapie kodu assemblera -c - zatrzymanie na assemblacji -save-temps - kompilator nie usuwa plików pośrednich -x - określa język pliku wejściowego -o file_name - specyfikacja pliku wyjściowego Domyślnie: a.out Source_name.o Source-Name.s

Kompilowanie i wyjście

Szybkość działania programu Optymalizacja Szybkość działania programu Rozmiar pliku wynikowego Szybkość kompilacji

Optymalizacja -O0 – brak optymalizacji -O/-O1 – podstawowa optymalizacja -O2 – poziom ZALECANY, uzyskujemy korzystny kompromis pomiędzy szybkością działania, a długością kompilacji -O3 – poziom NIEZALECANY -Os – optymalizacja wielkości pliku

Opcje ostrzeżeń -Wall – włącza wszystkie możliwe ostrzeżenia dotyczące konstrukcji, które budzą jakiekolwiek kontrowersje -pedantic – badanie zgodności ze standardem ISO, ASCII -fsyntax-only – składnia

Opcje ostrzeżeń

Opcje ostrzeżeń

Opcje preprocesora i linkera -I h_file_path – dodaje pliki nagłówkowe w katalogu h_file_path -H – wypisze nazwy używanych plików (.h) -include file(s) – przetwarza najpierw pliki files, potem dopiero pliki wejściowe -std= / -ansi – określenie standardu -L – ścieżka do folderu z bibliotekami -l – biblioteki (.a)

Opcje preprocesora i linkera