Analiza leksykalna i generator LEX
|
|
- Julian Borowski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Analiza leksykalna i generator LEX Wojciech Complak Wojciech.Complak@cs.put.poznan.pl wprowadzenie generator LEX wyrażenia regularne i niejednoznaczności retrakcja definicje regularne atrybuty lewy kontekst (stany) prawy kontekst (podgląd) koniec pliku (funkcja yywrap) białe spacje i komentarze słowa kluczowe odrzucenie dopasowania (REJECT) Plan wykładu 1.05 Analiza leksykalna i generator LEX (2/44) Kompilatory i interpretery Model kompilatora kompilator jest programem, który przetwarza kod napisany w jednym języku (tzw. języku źródłowym) na równoważny kod w drugim języku (tzw. języku wynikowym) interpreter jest programem, który nie generuje programu wynikowego tylko od razu wykonuje instrukcje zawarte w programie źródłowym, interpretery są wykorzystywane do wykonywania języków poleceń oraz języków bardzo wysokiego poziomu takich, jak APL czy Prolog każda kompilacja składa się z dwóch etapów: etapu analizy w której program źródłowy rozkładany jest na części składowe i generowana jest jego reprezentacja pośrednia etapu syntezy w której na podstawie reprezentacji pośredniej generowany jest program wynikowy program źródłowy analiza reprezentacja pośrednia synteza program wynikowy Analiza leksykalna i generator LEX (3/44) Analiza leksykalna i generator LEX (4/44) Model kompilatora Analiza leksykalna - wprowadzenie etap analizy obejmuje: analizę leksykalną analizę składniową analizę semantyczną etap syntezy obejmuje: generację kodu pośredniego optymalizację kodu generację kodu wynikowego analiza synteza program źródłowy analiza leksykalna analiza składniowa analiza semantyczna generacja kodu pośredniego optymalizacja kodu generacja kodu wynikowego program wynikowy analiza leksykalna jest pierwszą fazą kompilatora czyta tekst wejściowy i wyprowadza rozpoznane jednostki leksykalne wydzielenie fazy analizy leksykalnej: upraszcza projekt i utrzymanie poprawia wydajność ułatwia przenoszenie analiza synteza program źródłowy analiza leksykalna analiza składniowa analiza semantyczna generacja kodu pośredniego optymalizacja kodu generacja kodu wynikowego program wynikowy Analiza leksykalna i generator LEX (5/44) Analiza leksykalna i generator LEX (6/44) 1
2 Analiza leksykalna - wprowadzenie Analiza leksykalna przykład (#1/2) rozpoznawanie ciągów znaków o pewnych własnościach (zbudowanych zgodnie z określonymi regułami) wykorzystywana w różnych narzędziach do przetwarzania tekstu takich jak : edytory strukturalne formatery kodu analizatory i kontrolery statyczne kompilatory krzemowe translatory języków naturalnych interpretery i kompilatory języków formalnych (np. języków programowania) Analiza leksykalna i generator LEX (7/44) dany jest fragment programu w języku C, należy podzielić go na jednostki leksykalne podstawowe pojęcia związane z analizą leksykalną: token leksem wzorzec atrybut(y) przykładowy program w języku C: int sqr(int n) { return n * n; Analiza leksykalna i generator LEX (8/44) Analiza leksykalna przykład (#2/2) Generator LEX (#1/3) token wzorzec (LEX) leksem atrybut KWD_INT int int IDENT [_a-za-z][_a-za-z0-9]* sqr "sqr" '(' \( ( KWD_INT int int IDENT [_a-za-z][_a-za-z0-9]* n "n" ')' \) ) '{' \{ { KWD_RET return return IDENT [_a-za-z][_a-za-z0-9]* n "n" OP_STAR \* * IDENT [_a-za-z][_a-za-z0-9]* n "n" ';' ; ; '' \ Analiza leksykalna i generator LEX (9/44) LEX jest generatorem analizatorów leksykalnych na podstawie zadanej specyfikacji generuje program źródłowy implementujący analizator leksykalny analizator leksykalny jest domyślnie generowany w języku C istnieją wersje LEXa, które mogą generować analizatory w innych językach programowania np.: C++, C#, Pascal, Java, Ada, Eiffel synonimy: analizator leksykalny = skaner analizator składniowy = parser Analiza leksykalna i generator LEX (10/44) Generator LEX (#2/3) Generator LEX (#3/3) na wejście generatora LEX podajemy specyfikację analizatora na wyjściu generatora LEX otrzymujemy implementację analizatora w języku C (funkcja yylex()) specyfikacja analizatora leksykalnego LEX funkcja: yylex() plik: lex.yy.c funkcję yylex() można: wykorzystać jako samodzielny analizator zintegrować z większą aplikacją np. z analizatorem składniowym Analiza leksykalna i generator LEX (11/44) postać specyfikacji dla generatora LEX: Definicje Reguły Podprogramy sekcje Definicji i Podprogramów mogą być puste sekcja Reguł musi zawierać co najmniej jedną regułę każda Reguła to: Wzorzec Akcja(e) w specyfikacjach można używać komentarzy (tak jak w ANSI C: /* komentarz */) Analiza leksykalna i generator LEX (12/44) 2
3 Podstawowe reguły działania (#1/2) Podstawowe reguły działania (#2/2) niedopasowane znaki są przepisywane na wyjście akcja = instrukcja języka C, akcja pusta = ; przykład: usuwanie nadmiarowych słów kluczowych języka C (register, auto) register ; auto ; wejście wyjście int a(void) { register int c; auto int d; int a(void) { int c; int d; Analiza leksykalna i generator LEX (13/44) wzorce zawierające spacje ujmujemy w znaki: " " przykład: skracanie deklaracji języka C long int long signed int int "long int" printf("long"); "signed int" printf("int"); wejście wyjście int a(void) { signed int c; long int d; int a(void) { int c; long d; Analiza leksykalna i generator LEX (14/44) Zmienne statyczne Zmienne automatyczne zliczanie liczby linii do ciągu ### z wykorzystaniem zmiennej statycznej int NR = 0; \n { printf("\n"); NR ++; ### { printf("###\n%d lines\n", NR); Analiza leksykalna i generator LEX (15/44) zliczanie liczby linii do ciągu ### z wykorzystaniem zmiennej automatycznej int NR = 0; \n { printf("\n"); NR ++; ### { printf("###\n%d line(s)\n", NR); Analiza leksykalna i generator LEX (16/44) Funkcje Wyrażenia regularne zliczanie liczby linii do ciągu ### z użyciem funkcji prototyp definicja funkcji int NR = 0; void incnr(int *); \n { printf("\n"); incnr(&nr); ### { printf("###\n%d lines\n",nr); void incnr(int *n) { (*n)++; Analiza leksykalna i generator LEX (17/44) dowolny znak (z wyjątkiem \n). konkatenacja x*y* początek linii ^x koniec linii x$ operator opcjonalności x? nawiasy (x y)z powtórzenia wzorca x{5 alternatywa x y sekwencja ucieczki \ sekwencje specjalne \a\t\n liczba oktalna \nnn liczba szesnastkowa \xhh zakres powtórzeń wzorca x{2,5 domknięcie zwrotne x* klasa znaków [] domknięcie dodatnie x+ Analiza leksykalna i generator LEX (18/44) 3
4 Niejednoznaczności (#1/2) Niejednoznaczności (#2/2) ile liter a zostanie wypisanych na wyjście? 1* { printf("a"); zasada najdłuższego dopasowania wejście 1111;1 wyjście? Analiza leksykalna i generator LEX (19/44) jakie litery zostaną wypisane na wyjście? 11 { printf("b"); 1* { printf("a"); wejście 11;1111; wyjście? przy równej długości dopasowania wybierany jest wzorzec występujący wcześniej w specyfikacji Analiza leksykalna i generator LEX (20/44) Retrakcja Definicje regularne rozpoznawanie liczb rzeczywistych w Fortranie 1.E? Q dlaczego to działa? wejście 1.EQ.2 wyjście Card RelOp Card [0-9]+ printf("card "); ".EQ." printf("relop "); [0-9]+".E"[0-9]+ printf("real "); Analiza leksykalna i generator LEX (21/44) usuwanie z programu etykiet skoków definicja użycie ident [_a-za-z][_a-za-z0-9]* {ident: ; Analiza leksykalna i generator LEX (22/44) Atrybuty symboli leksykalnych (#1/2) Atrybuty symboli leksykalnych (#2/2) zmienne wbudowane w LEXa: int yyleng char yytext[] / char *yytext (zależnie od implementacji LEXa) zmienne wbudowane najbezpieczniej jest traktować jak zmienne tylko do odczytu przykład: suma sekwencji liczb wejście = wyjście = 20 Analiza leksykalna i generator LEX (23/44) int suma = 0; [0-9]+ { int liczba; sscanf(yytext,"%d",&liczba); ECHO; suma+=liczba; = printf("= %d",suma); Analiza leksykalna i generator LEX (24/44) 4
5 Lewy kontekst (stany) (#1/3) Lewy kontekst (stany) (#2/3) przykład: analizator usuwający łańcuchy ujęte w znaki cudzysłowu: wejście wyjście #include "defs1.h" #include "defs2.h" int i; #include #include int i; "/; %s qstring <qstring>\" BEGIN 0; <qstring>. ; \" BEGIN qstring; BEGIN stan; = zmiana bieżącego stanu./echo 0 qstring./; "/; Analiza leksykalna i generator LEX (25/44) reguły działają tylko w wymienionym stanie jeżeli przed regułą nie ma nazwy stanu to reguła działa we wszystkich stanach! (uwaga na pozostałe zasady) Analiza leksykalna i generator LEX (26/44) Lewy kontekst (stany) (#3/3) Prawy kontekst (podgląd) (#1/3) stan początkowy (<0>): albo <INITIAL> (uwaga na Flexa!): musi być <INITIAL> %s qstring <qstring>\" BEGIN 0; <qstring>. ; <0>\" BEGIN qstring; %s qstring <qstring>\" BEGIN 0; 0 albo INITIAL <qstring>. ; <INITIAL>\" BEGIN qstring; nazwy stanów nie mogą być słowami kluczowymi języka C jeśli reguła ma działać w określonych stanach należy poprzedzić ją nazwami stanów: <INITIAL,c_state>[^ ] { ECHO; Analiza leksykalna i generator LEX (27/44) przykład: rozpoznawanie symbolu zakresu w Moduli-2 Cardinal [0-9]+ Real [0-9]+"."[0-9]*(E[+\-]?[0-9]+)? {Cardinal { printf("card(%s) ",yytext); {Real { printf("real(%s) ",yytext); ".." { printf("range(%s) ",yytext); "." { printf("dot(%s) ",yytext); "[" { printf("["); "]" { printf("]"); Analiza leksykalna i generator LEX (28/44) Prawy kontekst (podgląd) (#2/3) Prawy kontekst (podgląd) (#3/3) problem: wejście [1..5] oczekiwane wyjście [Card(1) Range(..) Card(5) ] rzeczywiste wyjście [Real(1.) Dot(.) Card(5) ] Analiza leksykalna i generator LEX (29/44) poprawne rozwiązanie z wykorzystaniem operatora podglądu Cardinal [0-9]+ Real [0-9]+"."[0-9]*(E[+-]?][0-9]+)? {Cardinal { printf("card(%s) ",yytext); {Real/[^0-9.] { printf("real(%s) ",yytext); ".." { printf("range(%s) ",yytext); "." { printf("dot(%s) ",yytext); "[" { printf("["); "]" { printf("]"); Analiza leksykalna i generator LEX (30/44) 5
6 Koniec pliku i funkcja yywrap (#1/2) Koniec pliku i funkcja yywrap (#2/2) przykład: suma sekwencji liczb wejście wyjście Suma = 15 funkcja yywrap() jest wywoływana przez yylex() po natrafieniu na koniec pliku int yywrap(void) { /* akcje użytkownika */ return 1; 0 powrót do skanowania wejścia!0 zakończenie skanowania Analiza leksykalna i generator LEX (31/44) int suma = 0; [0-9]+ { int liczba; sscanf(yytext,"%d",&liczba); suma += liczba; " " ; int yywrap(void) { printf("suma = %d\n",suma); return 1; Analiza leksykalna i generator LEX (32/44) Białe spacje Komentarze (#1/5) w większości języków programowania białe spacje służą tylko poprawie czytelności programu (wyjątkami są np. Fortran i AWK) analizator leksykalny je pomija (ukrywa przed analizatorem składniowym) [ \t\n] ; problem: pomijanie niezagnieżdżonych komentarzy języka Pascal rozwiązanie z użyciem wzorca typowy błąd \{.+\ ; wejście x{zm:={podst1 {st ; oczekiwane wyjście x:=1 ; rzeczywiste wyjście x ; Analiza leksykalna i generator LEX (33/44) Analiza leksykalna i generator LEX (34/44) Komentarze (#2/5) Komentarze (#3/5) problem: pomijanie niezagnieżdżonych komentarzy języka Pascal rozwiązanie z użyciem wzorca rozwiązanie poprawne \{[^]+\ ; rozwiązanie z wykorzystaniem wzorców jest nieefektywne (niepotrzebnie gromadzi rozpoznawany tekst w buforze) Analiza leksykalna i generator LEX (35/44) problem: pomijanie niezagnieżdżonych komentarzy języka C (standard ANSI) rozwiązanie z użyciem stanów %s comment <0>"/*" BEGIN comment; <comment>. ; <comment>"*/" BEGIN 0; rozwiązanie z użyciem stanów jest efektywniejsze (szybsze, nie gromadzimy tekstu) i łatwo można je rozbudować o możliwość obsługi zagnieżdżonych komentarzy Analiza leksykalna i generator LEX (36/44) 6
7 Komentarze (#4/5) Komentarze (#5/5) problem: pomijanie zagnieżdżonych komentarzy języka C (rozszerzenie standardu ANSI) int CommentLevel; %s comment <0>"/*" { CommentLevel = 1; BEGIN comment; <comment>"/*" { CommentLevel++; <comment>. { ; <comment>"*/" { if( (--CommentLevel) == 0)BEGIN 0; Analiza leksykalna i generator LEX (37/44) prawdziwy problem: pomijanie zagnieżdżonych komentarzy dwóch różnych typów w języku Pascal (* i *) oraz { i przykładowe wejście: var x : integer; begin x{zm:={p(*ods*)t1{st; end. rozwiązanie:? Analiza leksykalna i generator LEX (38/44) Rozpoznawanie słów kluczowych (#1/3) Rozpoznawanie słów kluczowych (#2/3) usunąć z programu wszystkie identyfikatory z wyjątkiem słów kluczowych begin i end prototyp rozwiązania ident [a-za-z][a-za-z0-9]* {ident ; [bb][ee][gg][ii][nn] ECHO; [ee][nn][dd] ECHO; Analiza leksykalna i generator LEX (39/44) problem: wejście begin var:=x+y; end. oczekiwane wyjście begin :=+; end. rzeczywiste wyjście :=+;. Analiza leksykalna i generator LEX (40/44) Rozpoznawanie słów kluczowych (#3/3) Odrzucenie dopasowanie REJECT (#1/3) usunąć z programu wszystkie identyfikatory z wyjątkiem słów kluczowych begin i end rozwiązanie poprawne ident [a-za-z][a-za-z0-9]* [bb][ee][gg][ii][nn] ECHO; [ee][nn][dd] ECHO; {ident ; Analiza leksykalna i generator LEX (41/44) program zliczający liczbę wystąpień słów he i she prototyp rozwiązania int she = 0, he = 0; she { she++; he { he++;. \n { ; int yywrap(void) { printf("he (%d) she (%d)",he,she); return 1; Analiza leksykalna i generator LEX (42/44) 7
8 Odrzucenie dopasowanie REJECT (#2/3) Odrzucenie dopasowanie REJECT (3/3) problem: wejście hesheheshe oczekiwane wyjście he (4) she (2) rzeczywiste wyjście he (2) she (2) Analiza leksykalna i generator LEX (43/44) program zliczający liczbę wystąpień słów he i she poprawne rozwiązanie z użyciem REJECT int she = 0, he = 0; she { she++; REJECT; he { he++;. \n { ; int yywrap(void) { printf("he (%d) she (%d)",he,she); return 1; Analiza leksykalna i generator LEX (44/44) 8
L E X. Generator analizatorów leksykalnych
L E X Generator analizatorów leksykalnych GENERATOR L E X Zadaniem generatora LEX jest wygenerowanie kodu źródłowego analizatora leksykalnego (domyślnie) w języku C; Kod źródłowy generowany jest przez
Bardziej szczegółowoGenerator analizatorów leksykalnych - Lex. Bartosz Bogacki.
Generator analizatorów leksykalnych - Lex Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy generatora analizatorów leksykalnych LEX. Zapraszam
Bardziej szczegółowoKONSTRUKCJA KOMPILATORÓW
KONSTRUKCJA KOMPILATORÓW WYKŁAD Robert Plebaniak PLATFORMA PROGRAMOWA LINUX (może nie zawierać LLgen, wówczas instalacja ze strony http://tack.sourceforge.net); WINDOWS (używa się wtedy programu Cygwin,
Bardziej szczegółowoAnaliza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)
Bardziej szczegółowoPodstawy Kompilatorów
Podstawy Kompilatorów Laboratorium 3 Uwaga: Do wykonania poniższych zadań związanych z implementacją niezbędny jest program LEX oraz kompilator. Dla środowiska Linux mogą to być: Darmowa wersja generatora
Bardziej szczegółowoZadanie analizy leksykalnej
Analiza leksykalna 1 Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Przykład: We: COST := ( PRICE + TAX ) * 0.98 Wy: id 1 := ( id 2 + id 3 ) * num 4 Tablica symboli:
Bardziej szczegółowoAnaliza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych
Bardziej szczegółowoGeneratory analizatorów
Generatory analizatorów Generator analizatora leksykalnego flex ( http://www.gnu.org/software/flex/ ) Generator analizatora składniowego bison ( http://www.gnu.org/software/bison/ ) Idea ogólna Opis atomów
Bardziej szczegółowoMetody Kompilacji Wykład 1 Wstęp
Metody Kompilacji Wykład 1 Wstęp Literatura: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Princiles, Techniques, and Tools. Addison-Wesley 1986, ISBN 0-201-10088-6 Literatura: Alfred V. Aho,
Bardziej szczegółowoLaboratorium z użyciem analizatora leksykalnego FLEX
Laboratorium z użyciem analizatora leksykalnego FLEX Analizator leksykalny FLEX jest narzędziem służącym do tworzenia programów rozpoznających wzorce. FLEX na podstawie pliku wejściowego, za pomocą reguł
Bardziej szczegółowoPodstawy Kompilatorów
Podstawy Kompilatorów Laboratorium 10 Translacja sterowana składnią w generatorze YACC. Zadanie 1: Proszę napisać program, który dla danej liczby całkowitej j oraz niepustego ciągu liczb naturalnych c
Bardziej szczegółowoGenerator skanerów Flex
Grzegorz Jacek Nalepa 17.7.2000, Kraków, Revision : 1.5 Streszczenie Artykuł prezentuje generator skanerów leksykalnych Flex, będący implementacją standardowego pakietu Lex. Zawarte jest krótkie wprowadzenie
Bardziej szczegółowoTranslacja wprowadzenie
Translacja wprowadzenie Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Literatura 1) Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison- Wesley, 1986
Bardziej szczegółowoProgramowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++
Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu
Bardziej szczegółowoPodstawy Kompilatorów
Podstawy Kompilatorów Laboratorium 6 Generator LLgen. Zadanie 1: Proszę napisać akceptor dla języka a n b m (n, m > 0). Przykłady: aaabb powinniśmy otrzymać wynik: OK aaabba powinniśmy otrzymać komunikat
Bardziej szczegółowoĆwiczenia nr 11. Translatory. Wprowadzenie teoretyczne
J.Nawrocki, M. Antczak, A. Hoffa, S. Wąsik Plik źródłowy: 08cw11-tr.doc; Data: 2009-01-15 09:47:00 Ćwiczenia nr 11 Translatory Wprowadzenie teoretyczne Wiele dokumentów wprowadzających do języków Lex oraz
Bardziej szczegółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoProgram We Kompilator Wy Źródłowy
1. Aho A.V., Ullman J.D. - The Theory of Parsing, Translation and Compiling.1972. 2. Foster J.M. - Automatyczna analiza składniowa. 1976 3. Gries D. - Konstrukcja translatorów dla maszyn cyfrowych, 1984
Bardziej szczegółowoPodstawy Kompilatorów
Podstawy Kompilatorów Laboratorium 9 Uwaga: Do wykonania poniższych zadań związanych z implementacją niezbędny jest program LEX, program YACC oraz kompilator języka C. Dla środowiska Linux mogą to być:
Bardziej szczegółowoFlex - generator analizatorów leksykalnych
Flex - generator analizatorów leksykalnych Spis treści: 1. Wprowadzenie Wyrażenia regularne Schemat specyfikacji Prosty przykład Uruchomienie Makefile 2. Rozstrzyganie niejednoznaczności 3. Rozpoznawanie
Bardziej szczegółowoGenerator LLgen. Wojciech Complak Generator LLgen - charakterystyka. Generator LLgen -składnia specyfikacji
Plan wykładu Wojciech Complak Wojciech.Complak@cs.put.poznan.pl charakterystyka generatora LLgen składnia specyfikacji analizatora składniowego dołączanie analizatora leksykalnego rozszerzenia składni
Bardziej szczegółowoPodstawy generatora YACC. Bartosz Bogacki.
Podstawy generatora YACC Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy generatora analizatorów składniowych YACC. Zapraszam serdecznie
Bardziej szczegółowoPlan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk
Plan wykładu (1) Paweł J. Matuszyk AGH Kraków 1 2 tor leksykalny tor syntaktyczny Generator pośredniego Generator wynikowego Hopcroft J. E., Ullman J. D., Wprowadzenie do teorii automatów, języków i obliczeń,
Bardziej szczegółowoTemat 1: Podstawowe pojęcia: program, kompilacja, kod
Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,
Bardziej szczegółowoWprowadzenie. Wojciech Complak
Wprowadzenie Wojciech Complak Wojciech.Complak@cs.put.poznan.pl Przedmiot Podstawy kompilatorów, wykład 1, Wprowadzenie, prezentuje Wojciech Complak. Witam Państwa na pierwszym wykładzie z przedmiotu Podstawy
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Stany równoważne Stany p i q są równoważne,
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoautomatem skończonym niedeterministycznym (ang. nondeterministic finite automaton) M N nazywamy system:
4.3. Automaty skończone (skończenie stanowe) automatem skończonym niedeterministycznym (ang. nondeterministic finite automaton) M N nazywamy system: M N = < Q, Σ, δ, q 0, F > Q Σ skończony zbiór stanów
Bardziej szczegółowoJerzy Nawrocki, Wprowadzenie do informatyki
Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Programowanie imperatywne i język C Zaprezentować paradygmat programowania imperatywnego
Bardziej szczegółowoZmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
Bardziej szczegółowo10. Translacja sterowana składnią i YACC
10. Translacja sterowana składnią i YACC 10.1 Charakterystyka problemu translacja sterowana składnią jest metodą generacji przetworników tekstu języków, których składnię opisano za pomocą gramatyki (bezkontekstowej)
Bardziej szczegółowoJerzy Nawrocki, Wprowadzenie do informatyki
Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Przetwarzanie tekstów i AWK Problem konwersji plików FName:Jurek SName:Busz Salary 585 FName:Alek
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje
Bardziej szczegółowoProgramowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat
Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoWprowadzenie do programowania w języku C
Wprowadzenie do programowania w języku C Część trzecia Autor Roman Simiński Kontakt siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura tych materiałów
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoProgramowanie komputerów
Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych
Bardziej szczegółowoJęzyki formalne i gramatyki
J.Nawrocki, M. Antczak, A. Hoffa, S. Wąsik Plik źródłowy: 08cw10-jfig.doc; Data: 2008-10-22 13:29:00 Ćwiczenie nr 10 Języki formalne i gramatyki Wprowadzenie 1. Napisz analizator leksykalny (LEX) i analizator
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Przemysław Gawroński D-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
Bardziej szczegółowoWprowadzenie do kompilatorów
Wprowadzenie do kompilatorów Czy ja kiedykolwiek napisz jaki kompilator? Jakie zadania ma do wykonania kompilator? Czy jzyk formalny to rodzaj jzyka programowania? Co to jest UML?, Czy ja kiedykolwiek
Bardziej szczegółowoJerzy Nawrocki, Wprowadzenie do informatyki
Jerzy Nawrocki, Jerzy Nawrocki Wydział Informatyki Politechnika Poznańska jerzy.nawrocki@put.poznan.pl Cel wykładu Programowanie imperatywne i język C Zaprezentować paradygmat programowania imperatywnego
Bardziej szczegółowo1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.
1. Pierwszy program // mój pierwszy program w C++ #include using namespace std; cout
Bardziej szczegółowoInstrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada
Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada Spis treści 1 Wprowadzenie 1 2 Dane i kod 2 3 Wyrażenia 2 3.1 Operacje arytmetyczne i logiczne.................. 2 3.2 Podstawowe
Bardziej szczegółowoZajęcia P2AM. Analizator składniowy (Flex + Bison, Linux)
Zajęcia P2AM. Analizator składniowy (Flex + Bon, Lux) 1. Cel ćwiczeń Celem ćwiczeń jest stworzenie analizatora składniowego dla języka będącego podzbiorem języka wysokiego poziomu (Ada lub Modula2). Przy
Bardziej szczegółowo1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania
1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca
Bardziej szczegółowoWykład VII. Programowanie. dr inż. Janusz Słupik. Gliwice, 2014. Wydział Matematyki Stosowanej Politechniki Śląskiej. c Copyright 2014 Janusz Słupik
Wykład VII Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Kompilacja Kompilator C program do tłumaczenia kodu źródłowego na język maszynowy. Preprocesor
Bardziej szczegółowoProgramowanie strukturalne język C - wprowadzenie
Programowanie strukturalne język C - wprowadzenie Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Cechy programowania strukturalnego Możliwość
Bardziej szczegółowoPodstawy Informatyki Języki programowania c.d.
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Przykład programu samomodyfikującego się Przykład - sumowanie elementów tablicy 2 Makroasembler - założenia Przykład
Bardziej szczegółowoKatedra Elektrotechniki Teoretycznej i Informatyki. wykład 12 - sem.iii. M. Czyżak
Katedra Elektrotechniki Teoretycznej i Informatyki wykład 12 - sem.iii M. Czyżak Język C - preprocesor Preprocesor C i C++ (cpp) jest programem, który przetwarza tekst programu przed przekazaniem go kompilatorowi.
Bardziej szczegółowoPodstawy programowania w języku C
Podstawy programowania w języku C WYKŁAD 1 Proces tworzenia i uruchamiania programów Algorytm, program Algorytm przepis postępowania prowadzący do rozwiązania określonego zadania. Program zapis algorytmu
Bardziej szczegółowoJava EE produkcja oprogramowania
Java EE produkcja oprogramowania PPJ PODSTAWY PROGRAMOWANIA W JAVIE PODSTAWY JĘZYKA JAVA 1 Warszawa, 2016Z 2 Ogólna charakterystyka języka Java 3 Java 1/2 Język programowania Java został opracowany przez
Bardziej szczegółowoProgramowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL
Programowanie Pascal - język programowania wysokiego poziomu Klasa 2 Lekcja 9 PASCAL Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany
Bardziej szczegółowoWstęp do programowania. Wykład 1
Wstęp do programowania Wykład 1 1 / 49 Literatura Larry Ullman, Andreas Signer. Programowanie w języku C++. Walter Savitch, Kenrick Mock. Absolute C++. Jerzy Grębosz. Symfonia C++. Standard. Stephen Prata.
Bardziej szczegółowoWprowadzenie do analizy leksykalnej. Bartosz Bogacki.
Wprowadzenie do analizy leksykalnej Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład w którym wezmą Państwo udział dotyczy wprowadzenia do analizy leksykalnej. Zapraszam serdecznie
Bardziej szczegółowoPodstawy Kompilatorów
Podstawy Kompilatorów Laboratorium 1 Celem laboratorium jest zapoznanie się ze środowiskiem i sprawdzenie poprawności działania narzędzi. Nazwy programów i rezultaty będą takie same w systemie operacyjnym
Bardziej szczegółowoPython wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA
Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający
Bardziej szczegółowoElżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki
Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki Turbo Pascal jest językiem wysokiego poziomu, czyli nie jest rozumiany bezpośrednio dla komputera, ale jednocześnie jest wygodny dla programisty,
Bardziej szczegółowoAlgorytmy od problemu do wyniku
Algorytmy Etapy tworzenia programu: 1) Sformułowanie zadania analiza problemu. 2) Opracowanie algorytmu sposób rozwiązania. 3) Zapisanie algorytmu w języku programowania kodowanie programu. 4) Kompilowanie
Bardziej szczegółowo( wykł. dr Marek Piasecki )
INE 1007 Informatyka 1 Język programowania C++ ( wykł. dr Marek Piasecki ) Literatura: dowolny podręcznik do języka C++ (na laboratoriach Borland C++ 3.1) Robert Lafore Jerzy Grębosz Andrzej Zalewski Programowanie
Bardziej szczegółowoTablice, funkcje - wprowadzenie
Tablice, funkcje - wprowadzenie Przemysław Gawroński D-10, p. 234 Wykład 5 25 marca 2019 (Wykład 5) Tablice, funkcje - wprowadzenie 25 marca 2019 1 / 12 Outline 1 Tablice jednowymiarowe 2 Funkcje (Wykład
Bardziej szczegółowoINFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE
Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby
Bardziej szczegółowoWstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy. Laboratorium 1. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2016/17 semestr zimowy Laboratorium 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Na podstawie: G. Perry, D. Miller, Język C Programowanie dla
Bardziej szczegółowoWstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania
Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania Przemysław Kobylański Wprowadzenie Każdy program w C musi zawierać przynajmniej funkcję o nazwie main(): Aby możliwe
Bardziej szczegółowoSemantyka i Weryfikacja Programów - Laboratorium 6
Semantyka i Weryfikacja Programów - Laboratorium 6 Analizator leksykalny i składniowy - kalkulator programowalny Cel. Przedstawienie zasad budowy i działania narzędzi do tworzenia kompilatorów języków
Bardziej szczegółowoWydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe
Wydział Zarządzania AGH Katedra Informatyki Stosowanej Podstawy VBA cz. 1 Programowanie 1 Program wykładu Struktura programu Instrukcja przypisania Wprowadzanie danych Wyprowadzanie wyników Instrukcja
Bardziej szczegółowoPodstawy programowania - 1
Podstawy programowania - 1 doc. dr inż. Tadeusz Jeleniewski Wykład: sobota B, godz. 10.30 12.55 sala 12 Laboratorium: sobota B, godz. 13.00 15.25 sala 2 sobota B, godz. 15.30-17.55 sala 2 e-mail: tadeusz.jeleniewski@pwr.wroc.pl
Bardziej szczegółowoGramatyki atrybutywne
Gramatyki atrybutywne, część 1 (gramatyki S-atrybutywne Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki atrybutywne Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji
Bardziej szczegółowoPodstawy programowania (1)
Podstawy programowania (1) doc. dr inż. Tadeusz Jeleniewski Konsultacje pokój 19 Poniedziałki, godz. 9:45 11:20 e-mail: tadeusz.jeleniewski@neostrada.pl Podstawy programowania (1) - wykład 1. Wprowadzenie
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoJęzyki i metodyka programowania. Wprowadzenie do języka C
Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia
Bardziej szczegółowoProgramowanie Proceduralne
Programowanie Proceduralne Makefile Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 14 Co to jest Makefile Makefile jest plikiem reguł dla programu make. Wykorzystywany jest
Bardziej szczegółowoMicrosoft IT Academy kurs programowania
Microsoft IT Academy kurs programowania Podstawy języka C# Maciej Hawryluk Język C# Język zarządzany (managed language) Kompilacja do języka pośredniego (Intermediate Language) Kompilacja do kodu maszynowego
Bardziej szczegółowoPodstawy kompilatorów. Generator LLgen. Wojciech Complak.
Generator LLgen Wojciech Complak Wojciech.Complak@cs.put.poznan.pl 1 Plan wykładu charakterystyka generatora LLgen składnia specyfikacji analizatora składniowego dołączanie analizatora leksykalnego rozszerzenia
Bardziej szczegółowoWykład 4. Środowisko programistyczne
Wykład 4 Dostępne kompilatory KEIL komercyjny GNU licencja GPL ARM komercyjny IAR komercyjny 2 Porównanie kompilatorów 3 Porównanie kompilatorów 4 Keil uvision Graficzny edytor Kompilator i linker Symulator
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoPodstawy Programowania. Wykład 1
Podstawy Programowania Wykład 1 Jak się uczyć programowania? Wykład i laboratorium Literatura Jerzy Grębosz Symfonia C++ Bjarne Stroustrup Język C++ Bruce Eckel Thinking in C++ Tony L. Hansen C++ zadania
Bardziej szczegółowoProgramowanie obiektowe, wykład nr 6. Klasy i obiekty
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto
Bardziej szczegółowoForPascal Interpreter języka Pascal
Akademia Podlaska w Siedlcach Wydział Nauk Ścisłych Instytut Informatyki ForPascal Interpreter języka Pascal Przedmiot: Sieci i Systemy Wirtualne Informatyka IV Prowadzący: dr Krzysztof Trojanowski Grupa:
Bardziej szczegółowoProgramy pomocnicze: diff, make, systemy rcs i cvs, debugger. Zarządzanie wersjami.
Programy pomocnicze: diff, make, systemy rcs i cvs, debugger. Zarządzanie wersjami. wer. 8 z drobnymi modyfikacjami Wojciech Myszka 2014-02-09 16:32:37 +0100 Co jest potrzebne programiście? 1. Umiejętność
Bardziej szczegółowoRyszard Myhan. Wykład 1: Języki programowania
Ryszard Myhan Wykład 1: Języki programowania Programowanie Programowanie to proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów komputerowych lub urządzeń mikroprocesorowych.
Bardziej szczegółowoWstęp do Programowania, laboratorium 02
Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite
Bardziej szczegółowoAnaliza zależności kontekstowych
Analiza zależności kontekstowych Wojciech Complak Wojciech.Complak@cs.put.poznan.pl 1 Plan wykładu zależności kontekstowe statyczne i dynamiczne sprawdzanie zależności kontekstowych systemy typów kontroler
Bardziej szczegółowoElementy języków programowania
Elementy języków programowania Olsztyn 2007-2012 Wojciech Sobieski Języki programowania wymyślono po to, by można było dzięki nim tworzyć różnorodne programy komputerowe. Oczekuje się również, że tworzone
Bardziej szczegółowoProgramowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 7 Przegląd typów strukturalnych - klasy i obiekty - c.d. Klasa - powtórzenie
Bardziej szczegółowoPodstawy programowania C. dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/
Podstawy programowania C dr. Krystyna Łapin http://www.mif.vu.lt/~moroz/c/ Tematy Struktura programu w C Typy danych Operacje Instrukcja grupująca Instrukcja przypisania Instrukcja warunkowa Struktura
Bardziej szczegółowoJęzyk programowania PASCAL
Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO
Bardziej szczegółowoTablice (jedno i wielowymiarowe), łańcuchy znaków
Tablice (jedno i wielowymiarowe), łańcuchy znaków wer. 8 z drobnymi modyfikacjami! Wojciech Myszka Katedra Mechaniki i Inżynierii Materiałowej 2017-04-07 09:35:32 +0200 Zmienne Przypomnienie/podsumowanie
Bardziej szczegółowoJęzyk C++ zajęcia nr 1
I. Programowanie obiektowe Język C++ zajęcia nr 1 Zasadniczą cechą programowania obiektowego jest łączne rozpatrywanie zagadnień dotyczących algorytmów i struktur danych. Wyrazem tego jest zmiana w sposobie
Bardziej szczegółowoWstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.
Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy Laboratorium 2 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Komentarze Funkcja printf() Zmienne Łańcuchy
Bardziej szczegółowoInformatyka, Ćwiczenie 1. 1. Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu
Informatyka, Ćwiczenie 1 1. Uruchomienie Microsoft Visual C++ I. ZałoŜenie nowego projektu Wybieramy menu: File>New>Files jak na rys. poniŝej Zapisujemy projekt pod nazwą LAN, w katalogu d:\temp\lab typu
Bardziej szczegółowoDr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku
Bardziej szczegółowoPodstawy Programowania
Podstawy Programowania Monika Wrzosek Instytut Matematyki Uniwersytet Gdański Matematyka 2017/18 Monika Wrzosek (IM UG) Podstawy Programowania 1 / 119 Sprawy organizacyjne E-mail: mwrzosek@mat.ug.edu.pl
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoProgramowanie strukturalne i obiektowe
Programowanie strukturalne i obiektowe Język C część I Opracował: Grzegorz Flesik Literatura: A. Majczak, Programowanie strukturalne i obiektowe, Helion, Gliwice 2010 P. Domka, M. Łokińska, Programowanie
Bardziej szczegółowoPodstawy Kompilatorów
Podstawy Kompilatorów Laboratorium 12 Analiza zależności kontekstowych. Zadanie 1: Proszę napisać analizator zgodności typów dla podzbioru standardowych wyrażeń języka Pascal. Dla uproszczenia należy założyć,
Bardziej szczegółowoProgramowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu
Programowanie V Dariusz Skibicki Wydział Inżynierii Mechanicznej Uniwersytet Technologiczno-Przyrodniczy im. Jana i Jędrzeja Śniadeckich w Bydgoszczy dariusz.skibicki(at)utp.edu.pl Programowanie Projektowanie
Bardziej szczegółowoWykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,
Bardziej szczegółowoTablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1
Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).
Bardziej szczegółowo1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998.
Literatura Język C 1. Brian W. Kernighan, Dennis M. Ritchie, Język ANSI C, WNT, Warszawa 1998. 2. Andrzej Zalewski, Programowanie w językach C i C++ z wykorzystaniem pakietu Borland C++, Nakom, Poznań
Bardziej szczegółowo