Przemysław Gawroński D-10, p. 234gawronski/pp_2018/wyklad_01.pdf12 Steve Summit – Programowanie...

50
Wstęp do programowania Przemyslaw Gawroński D-10, p. 234 Wyklad 1 8 października 2018 (Wyklad 1) Wstęp do programowania 8 października 2018 1 / 12

Transcript of Przemysław Gawroński D-10, p. 234gawronski/pp_2018/wyklad_01.pdf12 Steve Summit – Programowanie...

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

TIOBE INDEX - http://www.tiobe.com

(Wykład 1) Wstęp do programowania 8 października 2018 4 / 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

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