Wykład 14. Środowisko przetwarzania
|
|
- Amelia Szulc
- 7 lat temu
- Przeglądów:
Transkrypt
1 Wykład 14 Środowisko przetwarzania
2 Środowisko przetwarzania Przed generacją kodu, musimy umieć powiązać statyczny kod źródłowy programu z akcjami, wykonywanymi w trakcie działania i implementującymi program; Ta sama nazwa w programie źródłowym może oznaczać różne obiekty danych w maszynie docelowej; Przydzielanie i zwalnianie pamięci dla obiektów danych jest zarządzane przez pakiet wspomagania przetwarzania,, składający się z procedur ładowanych wraz z wygenerowanym kodem wynikowym; Projekt pakietu wspomagania zależy od semantyki procedur; Każde działanie procedury jest nazywane aktywacją tej procedury; Jeśli procedura jest rekurencyjna to w danej chwili może istnieć jednocześnie kilka jej aktywacji.
3 Język źródłowy procedury Definicją procedury jest deklaracja, która, w najprostszej postaci, związuje identyfikator z instrukcją. Identyfikator jest nazwą procedury,, a instrukcja treścią procedury; Przykład: poniższy kod z Pascala w wierszach (3)-(7) zawiera definicję procedury nazwanej czytajtab.. Treść tej procedury jest w wierszach (5)-(7); Procedury zwracające wartość, w wielu językach są nazywane funkcjami, chociaż wygodniej jest odnosić się do nich jak do procedur; Cały program jest również traktowany jak procedura.
4 Procedury 1. program sort(input, output) ; 2. var a: array [0..10] of integer; 3. procedure czytajtab; 4. var i : integer; 5. begin 6. for i := 1 to 9 do read(a[i]) (1) 7. end; 8. function podzial (y,z : integer) : integer; 9. var i, j, x, v: integer; 10. begin end
5 Procedura - cd 12. procedur quicksort (m, n: integer); 13. var i: integer; 14. begin 15. if ( n > m ) then begin 16. i := podzial(m, n); 17. quicksort(m, i-1); 18. quciksort(i+1, n); 19. end 20. end; 21. begin 22. a[0] := -9999; a[10] := 9999; 23. czytajtab; 24. quicksort(1,9); 25. end.
6 Język źródłowy procedury Jeżeli nazwa procedury pojawia się wewnątrz instrukcji, mówimy, że procedura jest w tym miejscu wywoływana; Wywołanie procedury powoduje wykonanie treści procedury i jest to podstawowa zasada jej działania; Główny program w wierszach (21) (25) wywołuje w wierszu (23) procedurę czytajtab i następnie, w wierszu (24) wywołuje procedurę quicksort; Zauważmy, że wywołania procedur mogą również nastąpić w wyrażeniach tak jak w wierszu (16).
7 Język źródłowy procedury Niektóre z identyfikatorów, pojawiające się w definicji procedury, są specjalne i nazywamy je parametrami formalnymi procedury.. ( W języku C nazywam je argumentami formalnymi a w Fortranie argumentami ślepymi ); Identyfikatory m i n w wierszu (12) są parametrami formalnymi procedury quicksort; Argumenty zwane parametrami aktualnymi,, mogą być przekazywane do wywoływanej procedury i podstawione w miejscu formalnych w treści procedury; Wiersz (18) kodu jest wywołaniem procedury quicksort,, z parametrami aktualnymi i+1 i n.
8 Drzewa aktywacji Wprowadźmy dwa założenia na temat przepływu sterowania między procedurami w trakcie wykonywania programu: - Wykonanie programu jest sekwencyjne, czyli składa się z sekwencji kroków, w których może znaleźć się sterowanie programu w trakcie działania; - Każde wykonanie procedury rozpoczyna się na początku treści procedury i po zakończeniu powraca do miejsca bezpośrednio za samym wywołaniem. Oznacza to, że przepływ sterowania między procedurami można przedstawić za pomocą drzew.
9 Drzewa aktywacji Każde wykonanie treści procedury nazywa się aktywacją tej procedury; Czas istnienia aktywacji procedury p jest sekwencją kroków między pierwszym a ostatnim krokiem wykonywania treści procedury, włączając w to czas wykonywania procedur wywoływanych z p, procedur wywoływanych przez te ostatnie, itd.; Na ogół termin czas istnienia odnosi się do sekwencji kolejnych kroków wykonywanych w trakcie działania programu.
10 Drzewa aktywacji W językach, na przykład w Pascalu, sterowanie po każdym wejściu do procedury q z procedury p (w przypadku niewystąpienia błędu krytycznego) ostatecznie musi powrócić do p. Ogólniej, za każdym razem, gdy sterowanie programu przechodzi z aktywacji procedury p do aktywacji procedury q,, musi powrócić do tej samej aktywacji dla p; Jeśli a i b są aktywacjami procedur, to ich czasy istnienia albo są rozłączne, albo jeden jest zawarty w drugim; Sterowanie wchodzi do b i przed opuszczeniem a,, to przed opuszczeniem a musi opuścić b.
11 Drzewa aktywacji Tę własność zawierania czasów istnienia można zilustrować, wstawiając dwie instrukcje print do każdej procedury: jedną przed pierwszą instrukcją z treści procedury, a drugą za ostatnią; Pierwsza instrukcja drukuje napis wejście oraz nazwę procedury i wartości parametrów aktualnych, druga drukuje napis opuszczenie i te same informacje; Przykładowy wynik powyższego programu ze wstawionym instrukcjami print prezentujemy poniżej. Czas istnienia aktywacji quicksort(1,9) składa się z sekwencji kroków wykonywanych od wpisania wejście quicksort(1,9) do opuszczenie quicksort(1,9). Zakładamy że podzial(1,9) zwraca liczbę 4.
12 Wyjście odzwierciedlające aktywację Wykonanie rozpoczete wejscie czytajtab opuszczenie czytajtab wejscie wejscie quicksort(1,9) podzial(1,9) opuszczenie podzial(1,9) wejscie (2) quicksort(1,3) opuszczenie quicksort(1,3) wejscie quicksort(5,9) opuszczenie quicksort(5,9) opuszczenie quicksort(1,9) procedury
13 Język źródłowy procedury Procedura jest rekurencyjna,, jeśli nowa jej aktywacja może rozpocząć się przed zakończeniem wcześniejszej aktywacji tej samej procedury; Na wyjściu odzwierciedlającym wywołanie, widać że sterowanie wchodzi do aktywacji quicksort(1,9), w wierszu (24), na początku wykonywania programu, a opuszcza ją prawie na samym końcu; W międzyczasie, kilkakrotnie następuje kolejne wejście do aktywacji procedury quicksort, więc procedura ta jest rekurencyjna; Rekurencyjna procedura p nie musi wywoływać siebie bezpośrednio: p może wywołać inną procedurę q,, która z kolei może wywołać p w pewnej sekwencji wywołań procedur.
14 Drzewo aktywacji Do zobrazowania kolejności w jakej sterowanie wchodzi i opuszcza aktywację można użyć drzewa, zwanego drzewem aktywacji: Tworzymy je w oparciu o następujące reguły: - każdy węzeł reprezentuje aktywację procedury; - korzeń reprezentuje aktywacje programu głównego; - węzeł dla a jest rodzicem węzła dla b wtdey i tylko wtedy, gdy sterowanie przechodzi z aktywacji a do b; - węzeł dla a znajduje się po lewej stronie węzła dla b wtedy i tylko wtedy, gdy a jest przed b. Ponieważ każdy węzeł reprezentuje odrębną aktywację, a każda aktywacja odrębny węzel, wygodnie jest mówić o sterowaniu znajdującym się w węźle, gdy znajduje się ono w aktywacji reprezentowanej przez ten węzeł.
15 Drzewo aktywacji-przykład Drzewo aktywacji odpowiadającej wyjściu (2). (3)
16 Przykład - interpretacja Na diagramie zaprezentowano jedynie pierwsze litery nazw procedur; Podczas wykonywania sortuj następuje aktywacja czytajtab,, reprezentowana przez pierwsze dziecko korzenia z etykietą c; Następna aktywacja, reprezentowana przez drugie dziecko korzenia, jest dla procedury quicksort z parametrami aktualnymi 1 i 9. Podczas tej aktywacji, wywołania podzial i quicksort z wierszy (16), (17) procedury (1), prowadzą do aktywacji p(1,9), q(1,3) i q(4,9); Zauważmy że aktywacje q(1,3) i q(5,9) są rekurencyjne i że zaczynają się i kończą przed zakończeniem q(1,9).
17 Stosy sterowania Przepływ sterowania w programie odpowiada przechodzeniu w głąb drzewa aktywacji; Przechodzenie w głąb drzewa aktywacji polega na starcie w korzeniu, odwiedzeniu węzła zanim odwiedzimy dzieci i na rekurencyjnych odwiedzinach kolejnych dzieci w kolejności od lewej do prawej; Wynik z (2) może zatem zostać odtworzony przez przejście drzewa aktywacji, w którym wypiszemy wejście w momencie wchodzenia po raz pierwszy do węzła dla aktywacji i wypiszemy opuszczenie po przejściu całego poddrzewa tego węzła.
18 Stosy sterowania Do przechowywania istniejących w danej chwili aktywacji dla procedur możemy wykorzystać stos zwany stosem sterowania; Metoda polega na umieszczaniu a stosie węzła dla aktywacji, w momencie jej rozpoczęcia i zdejmowaniu jej ze stosu w momencie, gdy się kończy; Zawartość stosu sterowania ma związek ze ścieżkami z korzenia drzewa aktywacji; Gdy na wierzchołku drzewa sterowania znajduje się węzeł n,, stos ten zawiera węzły wzdłuż ścieżki z n do korzenia.
19 Stos sterowania-przykład Stos sterowania zawiera węzły wzdłuż ścieżki do korzenia. (4)
20 Interpretacja przykładu Na stosie widać węzły z drzewa aktywacji (3), które zostały osiągnięte, gdy sterowanie weszło do aktywacji reprezentowanej za pomocą q(2,3); Aktywacje z etykietami c, p(1,9), p(1,3), q(1,0) zostały wykonane do końca, więc rysunek zawiera prowadzące do nich linie przerywane; Linie ciągłe stanowią ścieżkę z q(2,3) do korzenia; W tej chwili stos sterowania zawiera następujące węzły znajdujące się na tej ścieżce do korzenia (w kolejności od liścia do korzenia) s, q(1,9), q(1,3), q(2,3) i nie zawiera żadnych innych.
21 Zakres deklaracji Deklaracja w języku jest konstrukcją składniową, która związuje informację z nazwą; Deklaracje mogą być jawne przekład następująca deklaracja w Pascalu var i : integer; lub niejawne przykład w Fortranie dla każdej zmiennej zaczynającej się od I zakłada się że oznacza ona liczbę całkowitą; W różnych częściach programu mogą znajdować się niezależne deklaracje tej samej nazwy;
22 Zakres deklaracji Zasady widzialności dla danego języka wyznaczają, która deklaracja ma być stosowana do nazwy pojawiającej się w tekście programu; W programie (1) w Pascalu, zmienna i jest zadeklarowana trzykrotnie, w wierszach (4), (9) i (13), i program wykorzystuje tę nazwę niezależnie w procedurach czytajtab, podzial i quicksort. Deklaracja w wierszu (4) jest stosowana do zmiennej i w wierszu (6); Dwa wystąpienia i w wierszu (6) znajdują się w zakresie deklaracji z wiersza (4). Trzy wystąpienia i w wierszach (16)-(18) znajdują się w zakresie deklaracji z wiersza (13).
23 Zakres deklaracji Fragment programu, którego dana deklaracja dotyczy, jest zakresem tej deklaracji. Gdy deklaracja nazwy znajduje się wewnątrz procedury, a jej zakres zawiera się w procedurze, to nazwana jest ona lokalną, w przeciwnym wypadku nielokalną; Rozróżnienie między nazwami lokalnymi i nielokalnymi dotyczy wszystkich konstrukcji składniowych, które mogą zawierać deklaracje;
24 Zakres deklaracji Chociaż zakres jest własnością deklaracji nazw, często wygodniej jest mówić o zakresie zmiennej x zamiast o zakresie deklaracji nazwy x, która jest stosowana do tego wystąpienia ; Wtedy zakresem zmiennej i z wiersza (17) programu (1) jest treść quicksort; W trakcie kompilacji, tablica symboli może zostać użyta do znalezienia deklaracji dla konkretnego wystąpienia danej nazwy; Gdy deklaracja jest wczytywana, w tablicy symboli tworzony jest wpis; Tak długo, jak znajdujemy się w zakresie tej deklaracji, jej wpis jest zwracany, gdy ta nazwa jest poszukiwana w tablicy symboli.
25 Wiązanie nazw Nawet jeśli każda nazwa w programie jest zadeklarowana jednokrotnie, może ona oznaczać różne obiekty danych w czasie działania; Nieformalne określenie obiekt danych odpowiada miejscu w pamięci, które może przechowywać wartość; W semantyce języków programowania, określenie środowisko odnosi się do funkcji, która nazwie przyporządkowuje miejsce w pamięci, a określenie stan funkcji, która z kolei miejscu w pamięci przypisuje wartość tam przechowywaną;
26 Wiązanie nazw Środowiska i stany różnią się przypisanie zmienia stan, ale nie środowisko; Przykład - załóżmy, że adres pamięci 100, związany ze zmienną pi, przechowuje 0. Po przypisaniu pi:=3.14 ten t sam adres pamięci jest związany z pi,, lecz przechowywaną w nim wartością staje się 3.14; Gdy środowisko związuje adres pamięci s z nazwą x, mówi się, że x jest związane z s,, a sam związek jest wiązaniem x.. Określenie miejsce pamięci jest symboliczne, ponieważ jeśli x nie jest typem podstawowym, miejsce pamięci s dla x może stanowić wiele słów pamięci.
27 Wiązanie nazw Związanie jest dynamicznym odpowiednikiem deklaracji; Pojęcie statyczne definicja procedury deklaracja nazwy zakres deklaracji Odpowiednik dynamiczny aktywacje procedury wiązanie nazwy czas istnienia wiązania W tym samym czasie może istnieć wiele aktywacji pojedynczej procedury rekurencyjnej; W Pascalu nazwa zmiennej lokalnej jest przypisana do innego miejsca w pamięci w każdej aktywacji procedury.
28 Pojawiające się pytania Sposób, w jaki kompilator języka organizuje swoją pamięć i wiąże nazwy, w dużym stopniu zależy od odpowiedzi na następujące pytania: - Czy procedury mogą być rekurencyjne? - Co się dzieje z wartościami nazw lokalnych, gdy sterowanie powraca z aktywacji procedury? - Czy procedury mogą odwoływać się do zmiennych nielokalnych? - Jakie parametry są przekazywane w momencie wywołania procedur?
29 Pojawiające się pytania - cd Sposób, w jaki kompilator języka organizuje swoją pamięć i wiąże nazwy, w dużym stopniu zależy od odpowiedzi na następujące pytania: - Czy procedury mogą być przekazywane jako parametry? - Czy procedury mogą być zwracane jako rezultaty? - Czy pamięć może być przydzielana dynamicznie pod kontrolą programu? - Czy pamięć musi być zwalniana jawnie?
30 Podział pamięci w czasie wykonania Załóżmy, że kompilator otrzymuje blok pamięci od systemu operacyjnego w celu uruchomienia w nim skompilowanego programu; Pamięć w czasie wykonywania możemy podzielić na: - wygenerowany kod wynikowy; - obiekty danych; - odpowiednik stosu do przechowywania aktywacji procedur. Rozmiar wygenerowanego kodu jest ustalany w trakcie kompilacji, więc kompilator może umieścić go w obszarze wyznaczonym statycznie, na przykład na początku pamięci.
31 Podział pamięci w czasie wykonania Podobnie, rozmiar niektórych obiektów danych może być znany w czasie kompilacji i te obiekty również mogą zostać umieszczone w obszarze inicjowanym statycznie. (7)
32 Podział pamięci w czasie wykonania Jednym z powodów rezerwacji pamięci dla jak największej liczby obiektów danych jest możliwość wkompilowania konkretnych adresów tych obiektów w kod wynikowy; Wszystkie obiekty w Fortranie mogą być umieszczane w pamięci statycznie; Implementacje języków takich jak Pascal i C używają rozszerzeń stosu sterowania do zarządzania aktywacjami procedur; Gdy wykonywane jest wywołanie procedury, wykonanie aktywacji jest wstrzymywane i informacja o stanie maszyny, jak wartość licznika rozkazów i rejestry procesora, jest zapisywana na stosie.
33 Podział pamięci w czasie wykonania Gdy sterowanie powraca z wywołania, aktywacja może zostać wznowiona po przywróceniu właściwych wartości rejestrów i ustawieniu licznika rozkazów na miejsce bezpośrednio za wywołaniem; Miejsce na obiekty danych, których czasy istnienia są zawarte w czasie istnienia aktywacji, może zostać zarezerwowane na stosie, razem z innymi informacjami związanymi z aktywacją; Odrębny obszar pamięci w czasie wykonywania, zwany stertą,, przechowuje wszystkie pozostałe informacje;
34 Podział pamięci w czasie wykonania Pascal pozwala, aby pamięć dla danych była reprezentowana przez sam program; Pamięć na te dane jest pobierana ze sterty; Implementacje języków, w których czasy istnienia aktywacji nie mogą być reprezentowane przez drzewo aktywacji, mogą używać sterty do przechowywania informacji o tych aktywacjach; Kontrolowany sposób rezerwowania i zwalniania pamięci na stosie jest tańszy od takich operacji na stercie; Rozmiar stosu i sterty mogą zmieniać się w trakcie działania programu, więc na rys (7) mamy je umieszczone na przeciwnych krańcach pamięci, aby mogły łatwo zwiększać swój rozmiar.
35 Podział pamięci w czasie wykonania Zgodnie z konwencją stosy rosną w dól, to znaczy, że wierzchołek stosu znajduje się na dole strony; Ponieważ adresy pamięci rosną w czasie poruszania się w dół strony, wzrost w dół oznacza: przejście w kierunku wyższych adresów; Jeśli wskaźnik wierzchołek oznacza wierzchołek stosu, przesunięcia względem wierzchołka stosu mogą być obliczane przez odjęcie przesunięcia od wierzchołka; Na wielu maszynach obliczenia te mogą być wykonane wydajnie przez przechowywanie wartości wierzchołek w rejestrze; Adresy na stosie mogą zatem być reprezentowane jako przesunięcia względem wierzchołka.
36 Rekordy aktywacji Informacja potrzebna do pojedynczego wykonania procedury jest przechowywana w ciągłym bloku pamięci, zwanym rekordem aktywacji lub ramką, składającym się z pól.
37 Rekordy aktywacji Nie wszystkie języki ani kompilatory używają wszystkich tych pól; Często rejestry zawierają tylko niektóre z tych informacji; W językach takich jak Pascal lub C, rekord aktywacji procedury zwykle jest umieszczany na stosie sterowania, gdy procedura jest wywoływana, i zdejmowany ze stosu, gdy sterowanie powraca z jej wywołania;
38 Pola w rekordzie aktywacji Przeznaczenia poszczególnych pól w rekordzie aktywacji są następujące: 1. W polu danych tymczasowych są przechowywane wartości tymczasowe, pojawiające się w trakcie obliczeń wyrażeń; 2. W polu danych lokalnych przechowuje się dane lokalne dla tego wykonania procedury; 3. W polu do zapamiętania stanu procesora przechowuje się informacje o nim bezpośrednio sprzed wywołania procedury. To pole zawiera wartości licznika rozkazów, rejestrów procesora, które powinny być przywrócone po powrocie z procedury;
39 Pola w rekordzie aktywacji -cd 4. Opcjonalne wiązanie dostępu jest używane do odwołania się do danych nielokalnych przetrzymywanych w innych rekordach aktywacji. Dla języków takich jak Fortran, wiązania dostępu nie są potrzebne, ponieważ wszystkie dane nielokalne są trzymane w stałym miejscu. Wiązania dostępu lub podobny mechanizm, nazywany tablicą display, są wykorzystywane w Pascalu; 5. Opcjonalne wiązanie sterowania wskazuje rekord aktywacji procedury wywołującej;
40 Pola w rekordzie aktywacji -cd 6. Pole z parametrami aktualnymi jest używane przez procedurę wywołującą do przekazania parametrów do wywoływanej procedury (na rys jest miejsce na parametry aktualne, lecz w praktyce w celu uzyskania większej wydajności parametry są przekazywane do rejestrów procesora); 7. Pole dla wartości zwracanej jest wykorzystywane przez wywoływaną procedurę do przekazywania rezultatu do procedury wywołującej. W praktyce, wartość ta jest zwracana w rejestrze, w celu uzyskania większej wydajności.
41 Rekord aktywacji Rozmiar wszystkich tych pól można wyznaczyć w czasie wywoływania procedury; W rzeczywistości, rozmiary prawie wszystkich pól można wyznaczyć w czasie kompilacji; Wyjątek stanowi procedura mająca tablice lokalne, których wielkość jest wyznaczana przez wartość parametru aktualnego, dostępnego dopiero wtedy, gdy procedura jest wywoływana w trakcie działania programu.
42 Koniec wykładu czternastego
Przydział pamięci. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Przydział pamięci Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Terminologia Program s(input,output) {SORT} program główny można traktować także jako procedurę var a: array[0..10] of integer;
Bardziej szczegółowo14. Elementy systemu wykonawczego
14. Elementy systemu wykonawczego 14.1 Wprowadzenie system wykonawczy (ang. run-time system) stanowi zestaw danych i operacji realizujących tzw. maszynę wirtualną języka programowania (na maszynie tej
Bardziej szczegółowoWstęp do programowania. Procedury i funkcje. Piotr Chrząstowski-Wachtel
Wstęp do programowania Procedury i funkcje Piotr Chrząstowski-Wachtel Po co procedury i funkcje? Gdyby jakis tyran zabronił korzystać z procedur lub funkcji, to informatyka by upadła! Procedury i funkcje
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ółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
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ółowoMetody Kompilacji Wykład 3
Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy
Bardziej szczegółowoPodstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.
Podstawy programowania Wykład PASCAL Zmienne wskaźnikowe i dynamiczne 1 dr Artur Bartoszewski - Podstawy prograowania, sem. 1- WYKŁAD Rodzaje zmiennych Zmienne dzielą się na statyczne i dynamiczne. Zmienna
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ółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
Bardziej szczegółowo4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/2012 2 / 24
Wymagania proceduralnych języków wysokiego poziomu ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH modele programowe procesorów ASK MP.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad.
Bardziej szczegółowoUwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
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ółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoPodstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują
Bardziej szczegółowozmienne stanowią abstrakcję komórek pamięci: programista może przechowywać dane w pamięci, nie martwiąc się o techniczne szczegóły (np.
ZMIENNE 39 zmienne stanowią abstrakcję komórek pamięci: programista może przechowywać dane w pamięci, nie martwiąc się o techniczne szczegóły (np. przydział pamięci). 40 Nazewnictwo zmiennych Dozwolone
Bardziej szczegółowoJęzyk C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
Bardziej szczegółowoDynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Bardziej szczegółowoPodstawy programowania. Wykład 6 Wskaźniki. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Wskaźniki Krzysztof Banaś Podstawy programowania 1 Adresy zmiennych Język C pozwala na operowanie adresami w pamięci stąd, między innymi, kwalifikowanie C jako języka relatywnie
Bardziej szczegółowoJAK DZIAŁAJĄ FUNKCJE PODZIAŁ PAMIĘCI
JAK DZIAŁAJĄ FUNKCJE PODZIAŁ PAMIĘCI Gdy wywołujesz daną funkcję, program przechodzi do tej funkcji, przekazywane są parametry i następuje wykonanie ciała funkcji. Gdy funkcja zakończy działanie, zwracana
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ółowoWarsztaty dla nauczycieli
WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne
Bardziej szczegółowoXML i nowoczesne technologie zarządzania treścią 2007/08
Zadanie 3 Poprawkowe XML i nowoczesne technologie zarządzania treścią 2007/08 Wprowadzenie Należy napisać program w Javie, który czytając w trybie SAX plik z listą operacji, wykonuje zadane operacje na
Bardziej szczegółowoPakiety i interfejsy. Tomasz Borzyszkowski
Pakiety i interfejsy Tomasz Borzyszkowski Pakiety podstawy W dotychczasowych przykładach nazwy klas musiały pochodzić z jednej przestrzeni nazw, tj. być niepowtarzalne tak, by nie doprowadzić do kolizji
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ółowoZłożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Bardziej szczegółowoPARADYGMATY PROGRAMOWANIA Wykład 4
PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej
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ółowoProgramowanie współbieżne Wykład 2. Iwona Kochańska
Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas
Bardziej szczegółowoSystem plików przykłady. implementacji
Dariusz Wawrzyniak Plan wykładu CP/M MS DOS ISO 9660 UNIX NTFS System plików (2) 1 Przykłady systemu plików (1) CP/M katalog zawiera blok kontrolny pliku (FCB), identyfikujący 16 jednostek alokacji (zawierający
Bardziej szczegółowoPodstawy Informatyki. Wykład 6. Struktury danych
Podstawy Informatyki Wykład 6 Struktury danych Stałe i zmienne Podstawowymi obiektami występującymi w programie są stałe i zmienne. Ich znaczenie jest takie samo jak w matematyce. Stałe i zmienne muszą
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ółowoProgramowanie w języku C++ Grażyna Koba
Programowanie w języku C++ 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 zasad
Bardziej szczegółowoAlgorytm. a programowanie -
Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik
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ółowoProgramowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Bardziej szczegółowoWstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
Bardziej szczegółowoWskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady
Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4 Dr inż. Dariusz JĘDRZEJCZYK Wskaźniki Dynamiczna alokacja pamięci Przykłady 11/3/2016 AGH, Katedra Informatyki Stosowanej i Modelowania 2 Wskaźnik to
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ółowoWykład VI PASCAL procedury i funkcje przekazywanie parametrów,
Podstawy programowania Wykład VI PASCAL procedury i funkcje przekazywanie parametrów, 1 I. Procedury i funkcje Zakres widoczności zmiennych i tab_los i, suma 2 I. Procedury i funkcje Procedury z parametrami
Bardziej szczegółowoPodstawy Programowania semestr drugi. Wykład czternasty
Wykład czternasty 1. Polimorfizm Ostatni wykład zakończyliśmy stwierdzeniem, że możemy obiektowi dowolnej klasy przypisa ć obiekt klasy dziedziczącej po tej klasie. Przypisanie takie obejmuje jednak jedynie
Bardziej szczegółowoPodstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Bardziej szczegółowoProgramowanie Niskopoziomowe
Programowanie Niskopoziomowe Wykład 11: Procedury zaawansowane Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie Plan Wstęp Ramki stosu Rekurencja INVOKE, ADDR, PROC,
Bardziej szczegółowo4. Procesy pojęcia podstawowe
4. Procesy pojęcia podstawowe 4.1 Czym jest proces? Proces jest czymś innym niż program. Program jest zapisem algorytmu wraz ze strukturami danych na których algorytm ten operuje. Algorytm zapisany bywa
Bardziej szczegółowoWieczorowe Studia Licencjackie Wrocław, Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa
Wieczorowe Studia Licencjackie Wrocław, 7.11.2006 Wstęp do programowania Wykład nr 6 (w oparciu o notatki K. Lorysia, z modyfikacjami) Sito Eratostenesa Zaprezentujemy teraz algorytm na wyznaczanie wszystkich
Bardziej szczegółowoDIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0
Uwaga: DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0 1. Zostały pominięte diagramy: CYFRA, CYFRA SZESNASTKOWA, ZNAK i LITERA. Nie została uwzględniona możliwość posługiwania się komentarzami. 2. Brakuje
Bardziej szczegółowoAda-95. Dariusz Wawrzyniak
Część I Wskaźniki Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Plan Typy wskaźnikowe i obiekty wskazywane 1 Typy wskaźnikowe i obiekty wskazywane 2 3 4 Wskaźniki
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ółowoRozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Bardziej szczegółowoWykład 4: Klasy i Metody
Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to
Bardziej szczegółowoObliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303
Wykład 9 J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303 stos i operacje na stosie odwrotna notacja polska języki oparte na ONP przykłady programów J. Cichoń, P. Kobylański Wstęp
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Stosy, kolejki, drzewa Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. VII Jesień 2013 1 / 25 Listy Lista jest uporządkowanym zbiorem elementów. W Pythonie
Bardziej szczegółowoSystem plików przykłady implementacji
System plików przykłady implementacji Dariusz Wawrzyniak CP/M MS DOS ISO 9660 UNIX NTFS Plan wykładu System plików (2) Przykłady implementacji systemu plików (1) Przykłady implementacji systemu plików
Bardziej szczegółowoJęzyki formalne i techniki translacji
Języki formalne i techniki translacji Laboratorium - Projekt Termin oddania: ostatnie zajęcia przed 17 stycznia 2016 Wysłanie do wykładowcy: przed 23:59 28 stycznia 2016 Używając BISON-a i FLEX-a napisz
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ółowoNiezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.
Część XIX C++ w Każda poznana do tej pory zmienna może przechowywać jedną liczbę. Jeśli zaczniemy pisać bardziej rozbudowane programy, okaże się to niewystarczające. Warto więc poznać zmienne, które mogą
Bardziej szczegółowoSprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów
Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).
Bardziej szczegółowoJęzyk C zajęcia nr 11. Funkcje
Język C zajęcia nr 11 Funkcje W języku C idea podprogramów realizowana jest wyłącznie poprzez definiowanie i wywołanie funkcji. Każda funkcja musi być przed wywołaniem zadeklarowana. Deklaracja funkcji
Bardziej szczegółowoParadygmaty programowania
Paradygmaty programowania Jacek Michałowski, Piotr Latanowicz 15 kwietnia 2014 Jacek Michałowski, Piotr Latanowicz () Paradygmaty programowania 15 kwietnia 2014 1 / 12 Zadanie 1 Zadanie 1 Rachunek predykatów
Bardziej szczegółowoJęzyki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Bardziej szczegółowoPodstawy Programowania C++
Wykład 3 - podstawowe konstrukcje Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu, instrukcja przypisania, podstawowe typy danych, zapis i odczyt danych, wyrażenia:
Bardziej szczegółowoPASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie
PASCAL Język programowania wysokiego poziomu Opracowany przez Mikołaja Wirtha na początku lat 70 XX wieku Prosty, z silną kontrolą poprawności Stosowany prawie wyłącznie na uczelniach do nauki programowania
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ół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ółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoPodstawy programowania w języku C++
Podstawy programowania w języku C++ Część ósma Zmienne wskaźnikowe koncepcja, podstawowe zastosowania Wersja skrócona, tylko C++ Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski
Bardziej szczegółowoLaboratorium z przedmiotu Programowanie obiektowe - zestaw 04
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04 Cel zajęć. Celem zajęć jest zapoznanie się ze sposobem działania popularnych kolekcji. Wprowadzenie teoretyczne. Rozważana w ramach niniejszych
Bardziej szczegółowoWyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w
Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w obrębie skryptu. Wyrażenia include() i require() są niemal
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Tydzień 4 Tryby adresowania i formaty Tryby adresowania Natychmiastowy Bezpośredni Pośredni Rejestrowy Rejestrowy pośredni Z przesunięciem stosowy Argument natychmiastowy Op Rozkaz
Bardziej szczegółowoSkrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoBazy danych. Andrzej Łachwa, UJ, /15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 15/15 PYTANIA NA EGZAMIN LICENCJACKI 84. B drzewa definicja, algorytm wyszukiwania w B drzewie. Zob. Elmasri:
Bardziej szczegółowoProgramowanie w Turbo Pascal
Skróty: ALT + F9 Kompilacja CTRL + F9 Uruchomienie Struktura programu: Programowanie w Turbo Pascal Program nazwa; - nagłówek programu - blok deklaracji (tu znajduje się VAR lub CONST) - blok instrukcji
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2010/2011 Wykład nr 7 (24.01.2011) dr inż. Jarosław Forenc Rok akademicki
Bardziej szczegółowoPoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.
PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy. 1. Instrukcję case t of... w przedstawionym fragmencie programu moŝna zastąpić: var t : integer; write( Podaj
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ółowoProgramowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40
Programowanie w C++ Wykład 5 Katarzyna Grzelak 26 marca 2018 9 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40 Pojęcia z poprzedniego wykładu Podział programu na funkcje podział na niezależne
Bardziej szczegółowoObiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
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ółowoSUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,
SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Wykład 3 1 SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania Przykład Bingo 2 Treść przykładu Jak wygląda karta do
Bardziej szczegółowoMetody Kompilacji Wykład 7 Analiza Syntaktyczna
Metody Kompilacji Wykład 7 Analiza Syntaktyczna Parsowanie Parsowanie jest to proces określenia jak ciąg terminali może być generowany przez gramatykę. Włodzimierz Bielecki WI ZUT 2/57 Parsowanie Dla każdej
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 5
Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również
Bardziej szczegółowoZarządzanie pamięcią operacyjną
Dariusz Wawrzyniak Plan wykładu Pamięć jako zasób systemu komputerowego hierarchia pamięci przestrzeń owa Wsparcie dla zarządzania pamięcią na poziomie architektury komputera Podział i przydział pamięci
Bardziej szczegółowo1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb.
1. Algorytmy przeszukiwania. Przeszukiwanie wszerz i w głąb. Algorytmy przeszukiwania w głąb i wszerz są najczęściej stosowanymi algorytmami przeszukiwania. Wykorzystuje się je do zbadania istnienia połączenie
Bardziej szczegółowoprowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325
PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj
Bardziej szczegółowoWykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe
Podstawy programowania Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe 1 Podstawy programowania Część I Łańcuchy znaków 2 I. Zmienne łańcuchowe Klasyfikacja zmiennych statycznych
Bardziej szczegółowoAlgorytmy i struktury danych
Algorytmy i struktury danych Funkcje i procedury Zasięg zmiennych Rekurencja Witold Marańda maranda@dmcs.p.lodz.pl 1 Modularyzacja programu Algorytmy strukturalne moŝna redukować, zastępując złoŝone fragmenty
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ółowoTypy danych. 2. Dane liczbowe 2.1. Liczby całkowite ze znakiem i bez znaku: 32768, -165, ; 2.2. Liczby rzeczywiste stało i zmienno pozycyjne:
Strona 1 z 17 Typy danych 1. Dane tekstowe rozmaite słowa zapisane w różnych alfabetach: Rozwój metod badawczych pozwala na przesunięcie granicy poznawania otaczającego coraz dalej w głąb materii: 2. Dane
Bardziej szczegółowoDrzewa podstawowe poj
Drzewa podstawowe poj ecia drzewo graf reprezentujacy regularna strukture wskaźnikowa, gdzie każdy element zawiera dwa lub wiecej wskaźników (ponumerowanych) do takich samych elementów; wez ly (albo wierzcho
Bardziej szczegółowoWstęp do programowania. Drzewa podstawowe techniki. Piotr Chrząstowski-Wachtel
Wstęp do programowania Drzewa podstawowe techniki Piotr Chrząstowski-Wachtel Drzewa wyszukiwań Drzewa często służą do przechowywania informacji. Jeśli uda sie nam stworzyć drzewo o niewielkiej wysokości
Bardziej szczegółowoĆwiczenie nr 6. Programowanie mieszane
Ćwiczenie nr 6 Programowanie mieszane 6.1 Wstęp Współczesne języki programowania posiadają bardzo rozbudowane elementy językowe, co pozwala w większości przypadków na zdefiniowanie całego kodu programu
Bardziej szczegółowoPierwsze kroki z easy Soft CoDeSys. 2009 Eaton Corporation. All rights reserved.
Pierwsze kroki z easy Soft CoDeSys Tworzenie prostego programu Rozpoczęcie pracy 2 Tworzenie prostego programu Wybór aparatu 3 Tworzenie prostego programu Wybór języka programowania Do wyboru jest sześć
Bardziej szczegółowoPrzykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1
Rachunek Prawdopodobieństwa i Statystyka lab 3. Kaja Gutowska (Kaja.Gutowska@cs.put.poznan.pl) 1. Funkcje: - Funkcje nie powinny korzystać ze zmiennych globalnych. - Funkcje powinny być możliwie krótkie.
Bardziej szczegółowoPodstawy programowania. Wykład 6 Złożone typy danych: struktury, unie. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 6 Złożone typy danych: struktury, unie Krzysztof Banaś Podstawy programowania 1 są sposobem na przechowywanie w ramach pojedynczej zmiennej zestawu zmiennych różnych typów,
Bardziej szczegółowoWskaźniki. Przemysław Gawroński D-10, p marca Wykład 2. (Wykład 2) Wskaźniki 8 marca / 17
Wskaźniki Przemysław Gawroński D-10, p. 234 Wykład 2 8 marca 2019 (Wykład 2) Wskaźniki 8 marca 2019 1 / 17 Outline 1 Wskaźniki 2 Tablice a wskaźniki 3 Dynamiczna alokacja pamięci (Wykład 2) Wskaźniki 8
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ółowoGeneracja kodu docelowego
Generacja kodu docelowego Zagadnienia związane z generacją kodu Język wejściowy i wynikowy Zarządzanie pamięcią (adresacja) Wybór rozkazów maszynowych (koszty rozkazów) Przydział i wyznaczanie rejestrów
Bardziej szczegółowoMikroprocesor Operacje wejścia / wyjścia
Definicja Mikroprocesor Operacje wejścia / wyjścia Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz Operacjami wejścia/wyjścia nazywamy całokształt działań potrzebnych
Bardziej szczegółowoDelphi Laboratorium 3
Delphi Laboratorium 3 1. Procedury i funkcje Funkcja jest to wydzielony blok kodu, który wykonuje określoną czynność i zwraca wynik. Procedura jest to wydzielony blok kodu, który wykonuje określoną czynność,
Bardziej szczegółowo