Post on 27-Feb-2019
Wstęp do programowania
Przemysław GawrońskiD-10, p. 234
Wykład 1
8 października 2018
(Wykład 1) Wstęp do programowania 8 października 2018 1 / 12
Outline
1 Literatura
2 Programowanie?
3 Hello World
(Wykład 1) Wstęp do programowania 8 października 2018 2 / 12
Literatura
1 Stephen Prata - Język C: szkoła programowania2 K.N. King – C Programming. A Modern Approach3 Ben Klemens - 21st Century C: C Tips from the New School4 Richard M. Reese - Understanding and Using C Pointers
5 Steve Oualline - Język C. Programowanie6 Kenneth A. Reek - Język C: wskaźniki: vademecum profesjonalisty7 Herbert Schildt - Programowanie C8 Brian W. Kernighan, Dennis M. Ritchie - Język ANSI C9 Kyle Loudon - Algorytmy w C10 Frantisek Franek - Pamięć w językach C i C++11 John Viega, Matt Messier – C i C++. Bezpieczne programowanie.
Receptury12 Steve Summit – Programowanie w języku C. FAQ13 Peter van der Linden - Expert C Programming. Deep C Secrets14 http://stackoverflow.com/questions/tagged/c
(Wykład 1) Wstęp do programowania 8 października 2018 3 / 12
Literatura
1 Stephen Prata - Język C: szkoła programowania2 K.N. King – C Programming. A Modern Approach3 Ben Klemens - 21st Century C: C Tips from the New School4 Richard M. Reese - Understanding and Using C Pointers5 Steve Oualline - Język C. Programowanie6 Kenneth A. Reek - Język C: wskaźniki: vademecum profesjonalisty7 Herbert Schildt - Programowanie C8 Brian W. Kernighan, Dennis M. Ritchie - Język ANSI C
9 Kyle Loudon - Algorytmy w C10 Frantisek Franek - Pamięć w językach C i C++11 John Viega, Matt Messier – C i C++. Bezpieczne programowanie.
Receptury12 Steve Summit – Programowanie w języku C. FAQ13 Peter van der Linden - Expert C Programming. Deep C Secrets14 http://stackoverflow.com/questions/tagged/c
(Wykład 1) Wstęp do programowania 8 października 2018 3 / 12
Literatura
1 Stephen Prata - Język C: szkoła programowania2 K.N. King – C Programming. A Modern Approach3 Ben Klemens - 21st Century C: C Tips from the New School4 Richard M. Reese - Understanding and Using C Pointers5 Steve Oualline - Język C. Programowanie6 Kenneth A. Reek - Język C: wskaźniki: vademecum profesjonalisty7 Herbert Schildt - Programowanie C8 Brian W. Kernighan, Dennis M. Ritchie - Język ANSI C9 Kyle Loudon - Algorytmy w C10 Frantisek Franek - Pamięć w językach C i C++11 John Viega, Matt Messier – C i C++. Bezpieczne programowanie.
Receptury
12 Steve Summit – Programowanie w języku C. FAQ13 Peter van der Linden - Expert C Programming. Deep C Secrets14 http://stackoverflow.com/questions/tagged/c
(Wykład 1) Wstęp do programowania 8 października 2018 3 / 12
Literatura
1 Stephen Prata - Język C: szkoła programowania2 K.N. King – C Programming. A Modern Approach3 Ben Klemens - 21st Century C: C Tips from the New School4 Richard M. Reese - Understanding and Using C Pointers5 Steve Oualline - Język C. Programowanie6 Kenneth A. Reek - Język C: wskaźniki: vademecum profesjonalisty7 Herbert Schildt - Programowanie C8 Brian W. Kernighan, Dennis M. Ritchie - Język ANSI C9 Kyle Loudon - Algorytmy w C10 Frantisek Franek - Pamięć w językach C i C++11 John Viega, Matt Messier – C i C++. Bezpieczne programowanie.
Receptury12 Steve Summit – Programowanie w języku C. FAQ13 Peter van der Linden - Expert C Programming. Deep C Secrets
14 http://stackoverflow.com/questions/tagged/c
(Wykład 1) Wstęp do programowania 8 października 2018 3 / 12
Literatura
1 Stephen Prata - Język C: szkoła programowania2 K.N. King – C Programming. A Modern Approach3 Ben Klemens - 21st Century C: C Tips from the New School4 Richard M. Reese - Understanding and Using C Pointers5 Steve Oualline - Język C. Programowanie6 Kenneth A. Reek - Język C: wskaźniki: vademecum profesjonalisty7 Herbert Schildt - Programowanie C8 Brian W. Kernighan, Dennis M. Ritchie - Język ANSI C9 Kyle Loudon - Algorytmy w C10 Frantisek Franek - Pamięć w językach C i C++11 John Viega, Matt Messier – C i C++. Bezpieczne programowanie.
Receptury12 Steve Summit – Programowanie w języku C. FAQ13 Peter van der Linden - Expert C Programming. Deep C Secrets14 http://stackoverflow.com/questions/tagged/c
(Wykład 1) Wstęp do programowania 8 października 2018 3 / 12
Czym jest programowanie?
Programowanie proceduralne w języku C – zarządzanie pamięcią:Alokacja pamięci (zmienne):
statyczna (typ, nazwa zmiennej, zakres widzialności),dynamiczna (malloc, realloc)
Operacje na zmiennych, modyfikacja wartości zmiennych, zmianastanu programu:
operatory,funkcje (przekazywanie i zwracanie zmiennych).
Dealokacja pamięci (free).
(Wykład 1) Wstęp do programowania 8 października 2018 5 / 12
Czym jest programowanie?
Programowanie proceduralne w języku C – zarządzanie pamięcią:
Alokacja pamięci (zmienne):
statyczna (typ, nazwa zmiennej, zakres widzialności),dynamiczna (malloc, realloc)
Operacje na zmiennych, modyfikacja wartości zmiennych, zmianastanu programu:
operatory,funkcje (przekazywanie i zwracanie zmiennych).
Dealokacja pamięci (free).
(Wykład 1) Wstęp do programowania 8 października 2018 5 / 12
Czym jest programowanie?
Programowanie proceduralne w języku C – zarządzanie pamięcią:Alokacja pamięci (zmienne):
statyczna (typ, nazwa zmiennej, zakres widzialności),dynamiczna (malloc, realloc)
Operacje na zmiennych, modyfikacja wartości zmiennych, zmianastanu programu:
operatory,funkcje (przekazywanie i zwracanie zmiennych).
Dealokacja pamięci (free).
(Wykład 1) Wstęp do programowania 8 października 2018 5 / 12
Czym jest programowanie?
Programowanie proceduralne w języku C – zarządzanie pamięcią:Alokacja pamięci (zmienne):
statyczna (typ, nazwa zmiennej, zakres widzialności),
dynamiczna (malloc, realloc)
Operacje na zmiennych, modyfikacja wartości zmiennych, zmianastanu programu:
operatory,funkcje (przekazywanie i zwracanie zmiennych).
Dealokacja pamięci (free).
(Wykład 1) Wstęp do programowania 8 października 2018 5 / 12
Czym jest programowanie?
Programowanie proceduralne w języku C – zarządzanie pamięcią:Alokacja pamięci (zmienne):
statyczna (typ, nazwa zmiennej, zakres widzialności),dynamiczna (malloc, realloc)
Operacje na zmiennych, modyfikacja wartości zmiennych, zmianastanu programu:
operatory,funkcje (przekazywanie i zwracanie zmiennych).
Dealokacja pamięci (free).
(Wykład 1) Wstęp do programowania 8 października 2018 5 / 12
Czym jest programowanie?
Programowanie proceduralne w języku C – zarządzanie pamięcią:Alokacja pamięci (zmienne):
statyczna (typ, nazwa zmiennej, zakres widzialności),dynamiczna (malloc, realloc)
Operacje na zmiennych, modyfikacja wartości zmiennych, zmianastanu programu:
operatory,funkcje (przekazywanie i zwracanie zmiennych).
Dealokacja pamięci (free).
(Wykład 1) Wstęp do programowania 8 października 2018 5 / 12
Czym jest programowanie?
Programowanie proceduralne w języku C – zarządzanie pamięcią:Alokacja pamięci (zmienne):
statyczna (typ, nazwa zmiennej, zakres widzialności),dynamiczna (malloc, realloc)
Operacje na zmiennych, modyfikacja wartości zmiennych, zmianastanu programu:
operatory,
funkcje (przekazywanie i zwracanie zmiennych).
Dealokacja pamięci (free).
(Wykład 1) Wstęp do programowania 8 października 2018 5 / 12
Czym jest programowanie?
Programowanie proceduralne w języku C – zarządzanie pamięcią:Alokacja pamięci (zmienne):
statyczna (typ, nazwa zmiennej, zakres widzialności),dynamiczna (malloc, realloc)
Operacje na zmiennych, modyfikacja wartości zmiennych, zmianastanu programu:
operatory,funkcje (przekazywanie i zwracanie zmiennych).
Dealokacja pamięci (free).
(Wykład 1) Wstęp do programowania 8 października 2018 5 / 12
Czym jest programowanie?
Programowanie proceduralne w języku C – zarządzanie pamięcią:Alokacja pamięci (zmienne):
statyczna (typ, nazwa zmiennej, zakres widzialności),dynamiczna (malloc, realloc)
Operacje na zmiennych, modyfikacja wartości zmiennych, zmianastanu programu:
operatory,funkcje (przekazywanie i zwracanie zmiennych).
Dealokacja pamięci (free).
(Wykład 1) Wstęp do programowania 8 października 2018 5 / 12
Mapa pamięci programu w języku C
Skompilowany program w języku C tworzy 4 osobne obszary pamięci:
Pierwszy obszar zawiera kod wykonywalny programu.Drugi obszar zawiera zmienne globalne.Trzeci obszar to stos.Stos przechowuje adresy powrotne wywołań funkcji, argumenty funkcji,zmienne lokalne oraz aktualny stan procesora.Czwarty obszar to sterta.Sterta to obszar wolnej pamięci, z której program może korzystać zapośrednictwem funkcji dynamicznej alokacji pamięci.
(Wykład 1) Wstęp do programowania 8 października 2018 6 / 12
Mapa pamięci programu w języku C
Skompilowany program w języku C tworzy 4 osobne obszary pamięci:Pierwszy obszar zawiera kod wykonywalny programu.
Drugi obszar zawiera zmienne globalne.Trzeci obszar to stos.Stos przechowuje adresy powrotne wywołań funkcji, argumenty funkcji,zmienne lokalne oraz aktualny stan procesora.Czwarty obszar to sterta.Sterta to obszar wolnej pamięci, z której program może korzystać zapośrednictwem funkcji dynamicznej alokacji pamięci.
(Wykład 1) Wstęp do programowania 8 października 2018 6 / 12
Mapa pamięci programu w języku C
Skompilowany program w języku C tworzy 4 osobne obszary pamięci:Pierwszy obszar zawiera kod wykonywalny programu.Drugi obszar zawiera zmienne globalne.
Trzeci obszar to stos.Stos przechowuje adresy powrotne wywołań funkcji, argumenty funkcji,zmienne lokalne oraz aktualny stan procesora.Czwarty obszar to sterta.Sterta to obszar wolnej pamięci, z której program może korzystać zapośrednictwem funkcji dynamicznej alokacji pamięci.
(Wykład 1) Wstęp do programowania 8 października 2018 6 / 12
Mapa pamięci programu w języku C
Skompilowany program w języku C tworzy 4 osobne obszary pamięci:Pierwszy obszar zawiera kod wykonywalny programu.Drugi obszar zawiera zmienne globalne.Trzeci obszar to stos.Stos przechowuje adresy powrotne wywołań funkcji, argumenty funkcji,zmienne lokalne oraz aktualny stan procesora.
Czwarty obszar to sterta.Sterta to obszar wolnej pamięci, z której program może korzystać zapośrednictwem funkcji dynamicznej alokacji pamięci.
(Wykład 1) Wstęp do programowania 8 października 2018 6 / 12
Mapa pamięci programu w języku C
Skompilowany program w języku C tworzy 4 osobne obszary pamięci:Pierwszy obszar zawiera kod wykonywalny programu.Drugi obszar zawiera zmienne globalne.Trzeci obszar to stos.Stos przechowuje adresy powrotne wywołań funkcji, argumenty funkcji,zmienne lokalne oraz aktualny stan procesora.Czwarty obszar to sterta.Sterta to obszar wolnej pamięci, z której program może korzystać zapośrednictwem funkcji dynamicznej alokacji pamięci.
(Wykład 1) Wstęp do programowania 8 października 2018 6 / 12
Edycja kodu źródłowego
Edytor kodu źródłowego:
Numerowanie linii,Kolorowanie składnii.
Edytory:
Code::Blocks www.codeblocks.orgCodelite www.codelite.orgMicrosoft Visual Studio,vim, gvim,kate,gedit,. . .
(Wykład 1) Wstęp do programowania 8 października 2018 7 / 12
Edycja kodu źródłowego
Edytor kodu źródłowego:Numerowanie linii,
Kolorowanie składnii.
Edytory:
Code::Blocks www.codeblocks.orgCodelite www.codelite.orgMicrosoft Visual Studio,vim, gvim,kate,gedit,. . .
(Wykład 1) Wstęp do programowania 8 października 2018 7 / 12
Edycja kodu źródłowego
Edytor kodu źródłowego:Numerowanie linii,Kolorowanie składnii.
Edytory:
Code::Blocks www.codeblocks.orgCodelite www.codelite.orgMicrosoft Visual Studio,vim, gvim,kate,gedit,. . .
(Wykład 1) Wstęp do programowania 8 października 2018 7 / 12
Edycja kodu źródłowego
Edytor kodu źródłowego:Numerowanie linii,Kolorowanie składnii.
Edytory:Code::Blocks www.codeblocks.org
Codelite www.codelite.orgMicrosoft Visual Studio,vim, gvim,kate,gedit,. . .
(Wykład 1) Wstęp do programowania 8 października 2018 7 / 12
Edycja kodu źródłowego
Edytor kodu źródłowego:Numerowanie linii,Kolorowanie składnii.
Edytory:Code::Blocks www.codeblocks.orgCodelite www.codelite.org
Microsoft Visual Studio,vim, gvim,kate,gedit,. . .
(Wykład 1) Wstęp do programowania 8 października 2018 7 / 12
Edycja kodu źródłowego
Edytor kodu źródłowego:Numerowanie linii,Kolorowanie składnii.
Edytory:Code::Blocks www.codeblocks.orgCodelite www.codelite.orgMicrosoft Visual Studio,
vim, gvim,kate,gedit,. . .
(Wykład 1) Wstęp do programowania 8 października 2018 7 / 12
Edycja kodu źródłowego
Edytor kodu źródłowego:Numerowanie linii,Kolorowanie składnii.
Edytory:Code::Blocks www.codeblocks.orgCodelite www.codelite.orgMicrosoft Visual Studio,vim, gvim,
kate,gedit,. . .
(Wykład 1) Wstęp do programowania 8 października 2018 7 / 12
Edycja kodu źródłowego
Edytor kodu źródłowego:Numerowanie linii,Kolorowanie składnii.
Edytory:Code::Blocks www.codeblocks.orgCodelite www.codelite.orgMicrosoft Visual Studio,vim, gvim,kate,
gedit,. . .
(Wykład 1) Wstęp do programowania 8 października 2018 7 / 12
Edycja kodu źródłowego
Edytor kodu źródłowego:Numerowanie linii,Kolorowanie składnii.
Edytory:Code::Blocks www.codeblocks.orgCodelite www.codelite.orgMicrosoft Visual Studio,vim, gvim,kate,gedit,. . .
(Wykład 1) Wstęp do programowania 8 października 2018 7 / 12
Ogólna postać programu w C
#dyrektywy preprocesora
// deklaracje globalne
int main(void){// sekwencja instrukcji
return 0;}
/* szkielet funkcjityp funkcja(lista_parametrow){
sekwencja instrukcji:deklaracje , przypisania , wywolanie funkcji ,instrukcje sterujace , instrukcje puste ,
}*/
(Wykład 1) Wstęp do programowania 8 października 2018 8 / 12
Hello World
/* Pierwszy program - komentarz ignorowany przezkompilator */
#include <stdio.h>/* dyrektywa preprocesora , plik naglowkowy
biblioteki standardowej , prototyp funkcjiprintf ()*/
int main(void){//int main(int argc , char* argv [])
printf("Pierwszy program .\n");
return 0;}
(Wykład 1) Wstęp do programowania 8 października 2018 9 / 12
Drugi program - kilka instrukcji
#include <stdio.h>
int main(void){char i;for(i=65;i<97;i++){
if (75==i)break;
if (i%2)printf("%c ",i);
elseprintf("%c \n",i+32);
}
return 0;}
(Wykład 1) Wstęp do programowania 8 października 2018 10 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:
kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.
plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:
kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).
linia poleceń: gcc -c pierwszyProgram.cKonsolidator:
kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:
kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:
kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)
Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.
Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.
linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.ogcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.c
gcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianieKompilator:
przetwarza kod źródłowy na kod wykonywalny, analizuje poprawnośćskładniową kodu źródłowego, dokonuje optymalizacji.plik źródłowy (pierwszyProgram.c) → kompilator → kod obiektowy(pierwszyProgram.o).linia poleceń: gcc -c pierwszyProgram.c
Konsolidator:kod obiektowy (pierwszyProgram.o) + kod biblioteki + kod startowy→ konsolidator → plik wykonywalny (pierwszyProgram.exe)Kod startowy - interfejs pomiędzy programem a systememoperacyjnym.Linker (konsolidator) pobiera z bibliotek tylko te fragmenty, którewymagane są przez funkcje użyte w programie.linia poleceń: gcc -o pierwszyProgram.exe pierwszyProgram.o
gcc pierwszyProgram.o
Kompilacja i konsolidacja:gcc -o pierwszyProgram.exe pierwszyProgram.cgcc pierwszyProgram.c
(Wykład 1) Wstęp do programowania 8 października 2018 11 / 12
gcc - kompilacja, konsolidacja, uruchamianie
Kompilacja i konsolidacja:
A gcc -o pierwszyProgram.exe pierwszyProgram.c
B gcc pierwszyProgram.c
Uruchomienie programu z linii poleceń:
A ./pierwszyProgram.exe
B ./a.out
(Wykład 1) Wstęp do programowania 8 października 2018 12 / 12
gcc - kompilacja, konsolidacja, uruchamianie
Kompilacja i konsolidacja:
A gcc -o pierwszyProgram.exe pierwszyProgram.c
B gcc pierwszyProgram.c
Uruchomienie programu z linii poleceń:
A ./pierwszyProgram.exe
B ./a.out
(Wykład 1) Wstęp do programowania 8 października 2018 12 / 12
gcc - kompilacja, konsolidacja, uruchamianie
Kompilacja i konsolidacja:
A gcc -o pierwszyProgram.exe pierwszyProgram.c
B gcc pierwszyProgram.c
Uruchomienie programu z linii poleceń:
A ./pierwszyProgram.exe
B ./a.out
(Wykład 1) Wstęp do programowania 8 października 2018 12 / 12