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.

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Język C/C++ Funkcje.
Programowanie obiektowe
Prowadzący: mgr inż. Elżbieta Majka
Kamil Smitkiewicz Bezpieczeństwo w PHP.
Informatyka Stosowana
formatowanie kodu źródłowego
Instrukcje strukturalne
Generator analizatorów składniowych
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Kurs Pascala – spis treści
1 Dygresja: cztery płyty główne…. 2 Dygresja: osobliwości C /* cos o nieistniejacym typie Boolean */ /* oraz o operatorze przecinkowym */ #include int.
Biblioteki i przestrzenie nazw
Ogólne jednostki programowe 1
Wykład 2 struktura programu elementy języka typy zmienne
Wyrażenia Wyrażenie w Fortranie jest poprawną syntaktycznie kombinacją zmiennych, stałych, operatorów i funkcji. Wyrażenia są jednozdaniowymi przepisami.
Instrukcja skoku GO TO etykieta Np. GO TO 100 ….. 100WRITE (*,*) Przeskok do instrukcji 100 Uwaga! NIE WOLNO skakać do wnętrzna złożonych instrukcji warunkowych.
Java – programowanie obiektowe
KOMPUTEROWE WSPOMAGANIE PRAC BADAWCZYCH FORTRAN - wprowadzenie Adam FIC INSTYTUT TECHNIKI CIEPLEJ.
Programowanie w języku Fortran 95
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Podstawy programowania
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania II
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Informatyka I Wykład 5 OPERATORY Priorytety i kolejność obliczeń
Podstawy informatyki 2013/2014
Programowanie strukturalne i obiektowe
Turbo Pascal Turbo Pascal - jedna z popularniejszych implementacji kompilatorów języka PASCAL, zintegrowane srodowisko programistyczne, produkt firmy Borland.
A ctive S erver P ages Technologia dostępu do danych.
Programowanie Podstawowe pojęcia.
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Wprowadzenie do programowania w językach C i C++
Wyrażenia w Turbo Pascalu.
Generator analizatorów leksykalnych
PHP: warunki, pętle, switch, break, continue
Programowanie strukturalne i obiektowe
1 Wykład 8 Podprogramy. 2 Pojęcie i istota stosowania dzielenie programu na części (logicznie spójne) - nazwane - niezależne od pozostałych części - z.
Programowanie obiektowe – zastosowanie języka Java SE
5 Etapów Pracy Kompilatora
JAVA.
Maszyna wirtualna ang. virtual machine, VM.
Podstawy informatyki 2013/2014
Kurs języka C++ – wykład 3 ( )
Systemy operacyjne (wiosna 2014)
Podstawy języka Instrukcje - wprowadzenie
Podstawy HTML RAMKi. Ramki Za ich pomocą możesz swobodnie podzielić okno przeglądarki na kilka części i w nich niezależnie przeglądać dokumenty. Ramki.
Podstawy programowania
C++.
Programowanie proceduralne Podstawy Programowania dla geoinformatyków Wykład 3 Rafał Witkowski, 2015.
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)
Wprowadzenie do programowania w Pascalu mgr inż. Agata Pacek.
Podstawy programowania
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Podstawy informatyki Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi.
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Podstawy informatyki Funkcje Ł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.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Optymalizacja programów Open-Source
Programowanie obiektowe – zastosowanie języka Java SE
Przykładowy algorytm geometryczny (geometria płaska)
Język C++ Tablice Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Zapis prezentacji:

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 nazwa_pliku określanie nazwy modułu wynikowego (standard a.out) -x język określanie języka plików źródłowych; jeżeli nie podajemy to język jest określany na podstawie rozszerzenia pliku -B katalog dodaje katalog do ścieżki poszukiwań kompilatora -g dodaje informację diagnostyczną która może być użyta przez debugger -fbounds-check sprawdzanie przekroczenia zakresów indeksów tablic i łańcuchów

-Ikatalog dodaje katalog do ścieżki poszukiwań plików INCLUDE -Lkatalog dodaje katalog do ścieżki poszukiwań bibliotek -lbiblioteka dodaje bibliotekę zawartą w pliku biblioteka.so lub biblioteka.a przy linkowaniu -Dmakro definiuje makro i nadaje mu wartość 1 -Dmakro=wart definiuje makro i nadaje mu wartość wart -Umakro anulowanie definicji makro -Opoziom optymalizacja na poziomie poziom: O0 brak optymalizacji, O2 optymalizacja nieagresywna, O3 i wyżej optymalizacja agresywna

-ffree-form -fno-fixed-form swobodny format linii kodu źródłowego w stylu Fortranu 90 -ff90 dopuszcza pewne konstrukcje Fortranu 90 -ffvax kod źródłowy jest interpretowany jak przez kompilatory komputerów VAX -ffixed-line-length-n ustala długość linii kodu źródłowego na n. -fugly-assumed specyfikacja taka, jak A(1) oznaczna dowolną długość, jak specyfikacja A(*) -fonetrip pętla DO jest wykonywana przynajmniej raz, niezależnie od relacji między dolnym a górnym ogranicznikiem -fcase-upper wszystkie litery oprócz tych w łańcuchach są przekształcane w duże -fcase-lower wszystkie litery oprócz tych w łańcuchach są przekształcane w małe -fcase-preserve zachowuje oryginalną wielkość liter

-pedantic ostrzega gdy w kodzie źródłowych pojawiają się rozszerzenia ANSI Fotrtranu 77 -pedantic-errors jak wyżej ale rozszerzenia są traktowane jak błędy -w nie drukuje ostrzeżeń -Wno-globals nie ostrzega, jeżeli dana nazwa jest raz użyta jako funkcja lokalna a raz jako funkcja zewnętrzna lub podprogram -Wimplicit ostrzega, jeżeli do deklaracji danej zmiennej/funkcji jest wykorzystana reguła pierwszej litery -Wunused ostrzega, jeżeli zmienna jest zadeklarowana ale nigdy nie użyta -Wuninitialized ostrzega, jeżeli zmienna nie jest zainicjalizowana -Wall dwie poprzednie opcje razem -Wsurprising ostrzega, jeżeli pojawiają się dziwne konstrukcje, których interpretacja może zależeć od kompilatora.

Przykład kodu, gdzie zostanie ogłoszony fałszywy alarm, jeżeli użyjemy opcji –Wuninitialized SUBROUTINE MAYBE(FLAG) LOGICAL FLAG IF (FLAG) VALUE = IF (FLAG) PRINT *, VALUE END Przykład wyrażenia, które może być różnie interpretowane (użyteczność opcji –Wsurprising): X**-Y*Z (X**(-Y))*Z g77 X**(-(Y*Z)) większość innych kompilatorów (zasady van Tassela: Nawiasy kosztują mniej niż błędy Również naczelna zasada van Tassela: BUZI (Bez Udziwnień Zapisuj Idioto)

-ffast-math optymalizuje wyrażenia arytmetyczne (może być niebezpieczne) -funroll-loops optymalizuje pętle DO ale nie DO WHILE -funroll-all-loops optymalizuje wszystkie pętle -Wl,opcje (oddzielone przecinkiem) przekazuje opcje do linkera (np. –Wl,-Bstatic zmusza do statycznego wbudowania bibliotek do kodu) -Wa,opcje to samo dla asemblera -Wp,opcje to samo dla preprocesora -Xlinker arg przekazuje argumenty arg do linkera