TRANSLACJA I TRANSLATORY
|
|
- Weronika Witek
- 6 lat temu
- Przeglądów:
Transkrypt
1 TRANSLACJA I TRANSLATORY Języki programowania niskiego czy też wysokiego poziomu mają na zadanie przetworzyć ogół algorytmów w nich zapisanych na taką postać aby maszyna cyfrowa była w stanie je wykonać tzn. dać takie efekty jakie programista zakłada tworząc dany program. Między tymi językami występuje jednak zasadnicza różnica : program zapisany w języku niskiego poziomu (w języku wewnętrznym) stanowi ciąg instrukcji dostępnych przez dany procesor czy też maszynę cyfrową i jest wykonywany bezpośrednio; natomiast program zapisany w językach wysokiego poziomu takich jak Pascal czy C ( w językach zewnętrznych) wymaga dodatkowo przetłumaczenia na ciąg instrukcji dostępnych przez maszynę która ma dany program wykonać. Owo tłumaczenie w pewnym stopniu przypomina tłumaczenie języków etnicznych, przy uwzględnieniu dodatkowych warunków jak: znajomość kultury, tradycji i historii danego języka. Podobnie tłumacząc programy zewnętrzne na wewnętrzne należy także uwzględnić dodatkowe elementy takie jak dane wejściowe do programu, które także muszą być przetłumaczone do tego stopnia aby spodziewany efekt końcowy programu zapisanego w języku zewnętrznym niczym się nie różnił od efektu działania samej maszyny. Proces przekładu tekstów zapisanych w jednym języku na drugi nosi nazwę translacji. W przypadku gdy dany język wysokiego poziomu ma stosunkowo łatwą gramatykę, translacja może być wykonana samoczynnie przez maszynę cyfrową przy pomocy specjalnego programu translacji zwanego translatorem. Wykorzystując translatory programiści mogą posługiwać się zewnętrznymi językami programowania, co znacznie ułatwia tworzenie oprogramowania, gdyż czas stracony na żmudnym pisaniu instrukcji w języku wewnętrznym zostaje ograniczony do wybrania odpowiednich procedur i funkcji z repertuaru danego języka wysokiego poziomu, a sam programista może skupić się na rozwiązywaniu powstałych problemów implementacyjnych. Translatory dzielimy zazwyczaj na dwie kategorie: kompilatory i interpretatory. Podział ten bardzo często nie ma miejsca w praktyce, gdyż buduje się translatory wykazujące jednocześnie cechy kompilatorów i interpretatorów. Najogólniej, kompilator jest translatorem, operującym na całym tekście programu źródłowego generując tekst przekładu jako całość, podczas gdy interpreter operuje na poszczególnych jednostkach syntaktycznych programu źródłowego i generuje ich przekłady. Jeśli więc wykonywamy program początkowo zapisany w języku zewnętrznym to:» używając kompilatora, możemy przystąpić do wykonania programu w postaci docelowej dopiero po zakończeniu translacji. Oznacza to, że uzyskany tekst będący przekładem tekstu źródłowego w całości wprowadzany jest do maszyny cyfrowej;» używając interpretatora, możemy wykonywać przekłady poszczególnych jednostek syntaktycznych, nie czekając na cały proces translacji. Oznacza to, że cały czas operujemy na tekście źródłowym tłumacząc tylko te jednostki syntaktyczne, które są potrzebne aby poszczególny fragment programu mógł zadziałać. W praktyce rzadko dokonuje się bezpośredniej translacji programów z języka zewnętrznego na język maszynowy. Najczęściej stosuje się proces pośredni to znaczy, najpierw dokonuje 1
2 się translacji z języka zewnętrznego na język asemblerowy, a potem z języka asemblerowego na język maszynowy. Zastosowanie takiej dwuetapowej translacji niesie za sobą wiele zalet, a główna z nich jest możliwość łączenia poszczególnych części programów zapisanych w różnych językach zewnętrznych. STOS I ODWROTNA NOTACJA POLSKA (ONP) Bardzo ważnymi pojęciami bez których trudne byłoby zrozumienie zasad jakiejkolwiek translacji są : stos i odwrotna notacja polska (ONP). STOS- jest to organizacja sekwencyjna pamięci operacyjnej maszyny cyfrowej. Stos działa jak pojemnik określonych jednostek, przy czym pobieranie elementów w nim zgromadzonych odbywa się w kolejności odwrotnej do magazynowania. Jest to tak zwana struktura LIFO (last-in-first-out co oznacza ten co ostatni przyszedł pierwszy odchodzi ). Dla stosu określa się dwie podstawowe operacje: dos(a)- dopisz na stosie - w wyniku wykonania tej operacji jednostka a zostaje umieszczona na szczycie stosu (staje się pierwszym elementem stosu) ods(a)- odczytaj ze stosu - w wyniku wykonania tej operacji jednostka a zostaje wydana na zewnątrz stosu. ODWROTNA NOTACJA POLSKA (ONP) - mianem tym obdarzono jeden z wariantów beznawiasowego zapisu wyrażeń formalnych, wynalezionego przez polskiego logika Jana Łukasiewicza ( ). W tym beznawiasowym zapisie symbole operandów poprzedzają bezpośrednio symbol operatora, na przykład wyrażenie a+b zapisujemy w ONP jako a b +. TRANSLACJA WYRAŻEŃ ARYTMETYCZNYCH Współczesne podejście translacji wyrażeń arytmetycznych polega na wydzieleniu dwu etapów translacji:» translacja do ONP» translacja ONP na język symboliczny W celu zobrazowania translacji do ONP przyjmujemy, że źródłowy zapis wyrażeń arytmetycznych pojawia się na wejściu specjalnego automatu poniższy rysunek. Na wyjściu uzyskamy zapis ONP tych wyrażeń, sam zaś automat wyposażony jest w pamięć stosową.: 2
3 Podczas translacji wyrażeń arytmetycznych szczególnej analizie poddawane są symbole operacji (+,-,*,itp.) zwane ogranicznikami,stąd wprowadza się dodatkowo listę priorytetów ograniczników (tablica 1): Ogranicznik Priorytet * / 1 2 Tablica 1. Priorytety symbolów operacji (ograniczników) Działanie automatu odbywa się według następującego algorytmu postępowania: 1. Pobierz kolejny element (nazwę zmiennej, stałą lub ogranicznik) źródłowego wyrażenia arytmetycznego. 2. Jeśli ten element jest nazwą zmiennej lub stałą, przekaż go natychmiast na wyjście; w przeciwnym wypadku, jeśli priorytet ogranicznika jest wyższy od priorytetu ogranicznika zajmującego szczyt stosu lub jeśli stos jest pusty, dopisz go na stos, jeśli wreszcie na szczycie stosu znajduje się ogranicznik o wyższym lub równym priorytecie - odczytaj go ze stosu i prześlij na wyjście, a ogranicznik z wejścia dopisz na stosie, chyba, że nowy ogranicznik zajmujący szczyt stosu w wyniku odczytania priorytetu ma priorytet nie mniejszy niż ogranicznik z wejścia. w takim przypadku należy kontynuować odczytywanie ze stosu i przesyłanie na wyjście aż do wystąpienia na szczycie stosu ogranicznika o priorytecie niższym od priorytetu ogranicznika nadchodzącego z wejścia. 3. Jeśli wyrażenie źródłowe zostało wyczerpane, odczytaj wszystkie ograniczniki ze stosu na wyjście automatu. 3
4 Przykłady translacji wyrażeń arytmetycznych do postaci ONP i odwrotnie z postaci postfiksowej (ONP) na infiksową Przykład 1: Przykład 1 przedstawia poszczególne takty procesu translacji do ONP dla wybranego wyrażenia arytmetycznego. Niech wyrażenie źródłowe ma postać: x + 3 * z k Poszczególne takty translacji są następujące: Takt Wejście Stos Wyjście 1 x x * +,* 5 z +,* z 6 +, * 7 k +, k 8 koniec,+ Poszczególne takty procesu translacji wyrażenia do ONP dla przykładu 1 Na wyjściu uzyskamy wyrażenie ONP postaci: x, 3, z, *, k,, + Dla uzyskania prawidłowej konwersji wyrażeń arytmetycznych uzupełniamy listę ograniczników o następujące symbole: nawiasy ( ) operator negacji NEG (jako symbol operacji unarnej służący do zmiany znaku) funkcje trygonometryczne (operatory jednoargumentowe) 4
5 Priorytety wyżej wymienionych ograniczników przedstawia poniższa tabela: Ogranicznik Priorytet ( ) 1 * / NEG 2 3 sin cos tg ctg 4 Priorytety rozszerzonych symbolów operacji (ograniczników) Działanie automatu uzupełniamy następującymi regułami:» Ogranicznik ( jest dopisywany do stosu bez jakiegokolwiek odczytywania stosu.» Ogranicznik ) nie jest dopisywany na stos, pojawienie się jednak tego ogranicznika na wejściu powoduje odczytanie ze stosu i przesłanie na wyjście wszystkich kolejnych ograniczników aż do pojawienia się ogranicznika (.» Ogranicznik ( ze szczytu stosu zostaje usunięty bez przekazywania na wyjście, jeśli aktualnym symbolem na wejściu jest ). Pojawienie się nawiasu zamykającego ) na wejściu automatu powoduje wyprowadzenie na wejście wszystkich ograniczników z wnętrza pary nawiasów aż do nawiasu otwierającego ( oraz likwidację tego nawiasu. Przykład 2: Przykład 2 przedstawia proces translacji z uwzględnieniem powyższych reguł. Niech wyrażenie źródłowe ma postać: b * c ( d - e*k ) Poszczególne takty translacji są następujące: Takt Wejście Stos Wyjście 1 b b 2 * * 3 c * c 4 *, 5 ( *,, ( 5
6 6 d *,, ( d 7 - *,, (,- 8 e *,, (,- e 9 * *,, (,-,* 10 k *,, (,-,* k 11 ) *, *,- 12 koniec,* Przykład 3: Poszczególne takty procesu translacji wyrażenia do ONP dla przykładu 2 Na wyjściu uzyskamy wyrażenie ONP postaci: b, c, d, e, k, *, -,,* Przykład 3 przedstawia translację krótkiego wyrażenia arytmetycznego z funkcjami trygonometrycznymi. Niech wyrażenie źródłowe ma postać: sinx + cosy + tgz Poszczególne takty translacji są następujące: Takt Wejście Stos Wyjście 1 sin sin 2 x sin x sin 4 cos +, cos 5 y +, cos y cos, + 7 tg +, tg 8 z +, tg z 9 koniec tg, + Poszczególne takty procesu translacji wyrażenia do ONP dla przykładu 3 Na wyjściu uzyskamy wyrażenie ONP postaci: x, sin, y, cos, +, z, tg, +, Nic nie stoi na przeszkodzie by procesowi translacji poddać wyrażenia arytmetyczne zawierające operacje logiczne i warunkowe. W tym celu należy odpowiednio rozszerzyć ilość priorytetów, a także chcąc odzwierciedlić składnie: if..then..else należy wprowadzić odpowiednie oznaczenia, które będą sygnalizowały konieczność wykonania skoku warunkowego lub bezwarunkowego. Operacje te zapisujemy w postaci SW (k) i SB (k), gdzie 6
7 SW- oznacza then, a SB else. Dla translacji wyrażeń arytmetycznych z elementami logicznymi koniecznym jest wprowadzenie dwóch różnych pojęć priorytetów: priorytet porównawczy (p.p) i priorytet stosowy (p.s.). gdzie: priorytet porównawczy dla danego ogranicznika oznacza moc rozładowania stosu, a priorytet stosowy moc blokowania stosu. W praktyce oznacza to, że jeżeli na wejściu automatu pojawi się symbol operacji (ogranicznik) to celem ewentualnego odczytania symboli ze stosu porównujemy priorytet porównawczy tego symbolu z priorytetem stosowym symboli operacji na stosie. Uzupełniona tablica priorytetów ograniczników wraz z uwzględnieniem pojęć: priorytet stosowy i porównawczy kształtuje się następująco: Ogranicznik p. stosowy p. porównawczy (, if 0 nie dotyczy then 0 1 else 1 2 ), ; nie dotyczy > < = * / NEG Uzupełniona lista ograniczników z uwzględnieniem elementów logicznych Algorytm konwersji zostaje uzupełniony o nowe reguły związane z elementami logicznymi: if..then...else: 1. Gdy na wejściu pojawi się ogranicznik then, wówczas, oprócz wszystkich ograniczników wyprowadzanych ze stosu na wyjście ze względu na ich priorytety, zostaje także usunięty ze szczytu stosu ogranicznik if ( konstrukcja if - then jest analogiczna do pary nawiasów ( ) w wyrażeniach arytmetycznych). Na wyjście automatu zostaje wyprowadzona operacja SW z pustym nawiasem SW( ), zaś ogranicznik then zostaje dopisany do stosu wraz z numerem, pod jakim występuje w zapisie ONP operacja SW( ). 2. Gdy na wejściu pojawia się ogranicznik else, powoduje on wyprowadzenie wszystkich symboli na wyjście automatu aż do momentu pojawienia się ma stosie ogranicznika then. Na wyjście zostaje wpisana niekompletna operacja SB(), operacja SW( ) będąca na wyjściu zostaje uzupełniona przez wpisanie do nawiasu 7
8 numeru pozycyjnego z zapisu ONP, a sam ogranicznik else zostaje dopisany do stosu wraz z numerem pozycyjnym SB( ) w zapisie ONP. 3. Gdy podczas wyprowadzania ograniczników ze stosu natrafimy na else, wówczas uzupełniamy odpowiedni nawias operacji SB( ) odpowiadającej danemu else, zaś sam ogranicznik else zostaje zlikwidowany tzn. nie jest wyprowadzany na wyjście automatu. Przykład 4: Przykład 4 obrazuje translację wyrażeń zawierających elementy logiczne. Niech wyrażenie na wejściu ma postać: y + ( if a>0 then 3 else a ) Poszczególne takty konwersji przedstawia poniższa tabela: Takt Wejście Stos Wyjście Numer pozycyjny w ONP 1 y y ( + 9 ( 0 4 if + 9 ( 0 if 0 5 a + 9 ( 0 if 0 a 2 6 > ( 0 if 0 > ( 0 if 0 > then ( 0 then 5 0 > SW() 4 5 po takcie 10 - SW(8) ( 0 then else ( 0 else 7 1 SB() 7 po takcie 12- SB(9) 11 a + 9 ( 0 else 7 1 a 8 12 ) ; + 9 Górne indeksy przy then i else oznaczają numer pozycyjny instrukcji SW i SB w ONP, zaś indeksy dolne oznaczają priorytet stosowy lub porównawczy danego ogranicznika. 8
9 Etap drugi translacji wyrażeń arytmetycznych polega na wygenerowaniu programu w języku symbolicznym (docelowym). Proces ten także korzysta z pamięci stosowej a sam algorytm postępowania wymaga przyjęcia pewnych oznaczeń : ð i - i = 0, 1,... są to kolejne pozycje stosu; język docelowy pozwala na występowanie dwu typów instrukcji: ð i := Z i ð i : = ð i op ð i+1 gdzie Z jest nazwą zmiennej lub stałą, a op jest symbolem operacji. Proces translacji zapisu ONP na język docelowy przebiega według następującego algorytmu: 1. Ustalamy i=0, k=1 2. Odczytujemy k-ty element ONP : E k 3. Jeśli E k jest nazwą zmiennej lub stała, generuje się operacja ð i :=E k i następuje zwiększenie i o 1 i:= i +1; jeśli E k jest symbolem operacji op NEG, generuje się operacja ð i-2 := ð i-2 op ð i-1 oraz następuje zmniejszenie i o 1 i := i - 1; jeśli E k = NEG, następuje wygenerowanie operacji ð i-1 := - ð i-1 4. Jeśli E k nie był ostatnim symbolem wyrażenia w ONP, to k:= k + 1 i przechodzimy do punktu 2. Przykład 5: Sposób translacji wyrażenia ONP na język symboliczny przedstawia przykład 5. Niech wyrażenie arytmetyczne ma postać: ( a + b ) / ( k (-c) ) Postać ONP tego wyrażenia jest następująca: a, b, +, k, c, NEG, / i k 0 1 1: ð 0 := a 1 2 2: ð i := b 2 3 3: ð 0 := ð 0 +ð i 1 4 4: ð i := k 2 5 5: ð 2 := c 3 6 6: ð 2 := -ð : ð i := ð i ð : ð 0 := ð o / ð : brak symboli w wyrażeniu ONP - koniec algorytmu 9
10 Wiadomości zawarte w tym rozdziale przedstawiają nam drogę od zrodzenia się algorytmu, aż po wykonanie programu na maszynie cyfrowej co schematycznie przestawia następujący rysunek: Schematyczny przebieg powstawania programu 10
Odwrotna Notacja Polska
Odwrotna Notacja Polska Odwrotna Notacja Polska w skrócie ONP) jest sposobem zapisu wyrażeń arytmetycznych. Znak wykonywanej operacji umieszczany jest po operandach, argumentach tzw. zapis postfiksowy).
Składnia rachunku predykatów pierwszego rzędu
Początek Gramatyka Kwantyfikatory Poprawność Logika obliczeniowa Instytut Informatyki Początek Gramatyka Kwantyfikatory Poprawność Plan wykładu 1 Na (dobry) początek Zrozumieć słowa Oswoić znaki 2 Gramatyka
Ję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
Obliczenia 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
Programowanie 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
Przyczyny dwustopniowego tłumaczenia
Generacja kodu pośredniego Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Przyczyny dwustopniowego tłumaczenia Łatwość generowania kompilatorów tego samego języka dla róŝnych platform systemowo-sprzętowych
Programowanie 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
Podstawy 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
Gramatyki 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
Elż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,
Analiza 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)
Programowanie 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
Plan 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ń,
Metody 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,
Podstawy programowania
Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót
1 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,
Programowanie 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
Analiza 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
Sprzę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).
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd Analiza Syntaktyczna Wstęp Parser dostaje na wejściu ciąg tokenów od analizatora leksykalnego i sprawdza: czy ciąg ten może być generowany przez gramatykę.
Definicje. Algorytm to:
Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi
Matematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Automat ze stosem Automat ze stosem to szóstka
Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Parsery LL() Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy generacyjnej (zstępującej, top-down) symbol początkowy już terminale wyprowadzenie lewostronne pierwszy od lewej
Notacja RPN. 28 kwietnia wyliczanie i transformacja wyrażeń. Opis został przygotowany przez: Bogdana Kreczmera.
1 wyliczanie i transformacja wyrażeń (wersja skrócona) Opis został przygotowany przez: Bogdana Kreczmera 28 kwietnia 2002 Strona 1 z 68 Zakład Podstaw Cybernetyki i Robotyki - trochę historii...............
Programowanie. 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
JAO - Wprowadzenie do Gramatyk bezkontekstowych
JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa
Podstawy 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
Java 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
1. Maszyna Turinga, gramatyki formalne i ONP
1. Maszyna uringa, gramatyki formalne i OP 1.1.Maszyna uringa Automat skończony składa się ze skończonego zbioru stanów i zbioru przejść ze stanu do stanu, zachodzących przy różnych symbolach wejściowych
Elementy 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
Metody 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
Zadanie 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:
Programowanie. 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
Analiza semantyczna. Gramatyka atrybutywna
Analiza semantyczna Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji na temat składni języka podlegającego tłumaczeniu, translator musi posiadać możliwość korzystania z wielu innych informacji
Języki formalne i automaty Ćwiczenia 4
Języki formalne i automaty Ćwiczenia 4 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Sposób tworzenia deterministycznego automatu skończonego... 4 Intuicyjne rozumienie konstrukcji
ALGORYTMY I PROGRAMY
ALGORYTMY I PROGRAMY Program to ciąg instrukcji, zapisanych w języku zrozumiałym dla komputera. Ten ciąg instrukcji realizuje jakiś algorytm. Algorytm jest opisem krok po kroku jak rozwiązać problem, czy
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Abstrakcyjne struktury danych dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 5 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury
Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.
Andrzej Wiśniewski Logika I Materiały do wykładu dla studentów kognitywistyki Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu. 1 Logika Klasyczna obejmuje dwie teorie:
Wprowadzenie do programowania paradygmaty programowania. dr hab. inż. Mikołaj Morzy
Wprowadzenie do programowania paradygmaty programowania dr hab. inż. Mikołaj Morzy plan wykładu wprowadzenie do języków programowania generacje języków programowania translacja, interpretacja, kompilacja
Struktura i działanie jednostki centralnej
Struktura i działanie jednostki centralnej ALU Jednostka sterująca Rejestry Zadania procesora: Pobieranie rozkazów; Interpretowanie rozkazów; Pobieranie danych Przetwarzanie danych Zapisywanie danych magistrala
Dynamiczny 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
Instrukcja 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
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Liniowe struktury danych. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład
1. Synteza automatów Moore a i Mealy realizujących zadane przekształcenie 2. Transformacja automatu Moore a w automat Mealy i odwrotnie
Opracował: dr hab. inż. Jan Magott KATEDRA INFORMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 207 Temat: Automaty Moore'a i Mealy 1. Cel ćwiczenia Celem ćwiczenia jest
METODY 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ę
Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Automat ze stosem Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Automat ze stosem (1) dno stosu Stos wierzchołek stosu Wejście # B B A B A B A B a b b a b a b $ q i Automat ze
Języki i metodyka programowania
Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201 Algorytmika Literatura
Efektywna analiza składniowa GBK
TEORETYCZNE PODSTAWY INFORMATYKI Efektywna analiza składniowa GBK Rozbiór zdań i struktur zdaniowych jest w wielu przypadkach procesem bardzo skomplikowanym. Jego złożoność zależy od rodzaju reguł produkcji
Podstawy programowania 2. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 2 Podstawy programowania 2 Temat: Zmienne dynamiczne tablica wskaźników i stos dynamiczny Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny 1.1 Tablice wskaźników Tablice
MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW
MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW Projektowanie urządzeń cyfrowych przy użyciu układów TTL polegało na opracowaniu algorytmu i odpowiednim doborze i zestawieniu układów realizujących różnorodne funkcje
Języki formalne i automaty Ćwiczenia 7
Języki formalne i automaty Ćwiczenia 7 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Automaty... 2 Cechy automatów... 4 Łączenie automatów... 4 Konwersja automatu do wyrażenia
KATEDRA INFORMATYKI TECHNICZNEJ. Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych. ćwiczenie 204
Opracował: prof. dr hab. inż. Jan Kazimierczak KATEDA INFOMATYKI TECHNICZNEJ Ćwiczenia laboratoryjne z Logiki Układów Cyfrowych ćwiczenie 204 Temat: Hardware'owa implementacja automatu skończonego pełniącego
Algorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Podstawowe struktury danych dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 6 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych.
Języki i paradygmaty programowania
Języki i paradygmaty programowania Instytut Teleinformatyki ITI PK Kraków marzec 2012 Spis rzeczy 1 Operatory w C/C++ Operatory Operatory w C/C++ operator - rodzaj funkcji wbudowanej w język; różnica notacja
Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska
1 Przykład wyliczania wyrażeń arytmetycznych Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Copyright
INFORMATYKA, 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
PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk PROLOG www.agh.edu.pl Pewnego dnia przyszedł na świat komputer Komputery
Translacja 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
Algorytm. 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
Technologie informacyjne - wykład 12 -
Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski
Algorytmy i. Wykład 3: Stosy, kolejki i listy. Dr inż. Paweł Kasprowski. FIFO First In First Out (kolejka) LIFO Last In First Out (stos)
Algorytmy i struktury danych Wykład 3: Stosy, kolejki i listy Dr inż. Paweł Kasprowski pawel@kasprowski.pl Kolejki FIFO First In First Out (kolejka) LIFO Last In First Out (stos) Stos (stack) Dostęp jedynie
Informatyka. Michał Rad
Informatyka Michał Rad 13.10.2016 Co i po co będziemy robić Plan wykładów: Wstęp, historia Systemy liczbowe Co to jest system operacyjny i po co to jest Sprawy związane z tworzeniem i własnością oprogramowania
(mniejszych od 10 9 ) podanych przez użytkownika, wypisze komunikat TAK, jeśli są to liczby bliźniacze i NIE, w przeciwnym przypadku.
Zadanie 1 Już w starożytności matematycy ze szkoły pitagorejskiej, którzy szczególnie cenili sobie harmonię i ład wśród liczb, interesowali się liczbami bliźniaczymi, czyli takimi parami kolejnych liczb
EGZAMIN MATURALNY Z INFORMATYKI
WPISUJE ZDAJĄCY NUMER UCZNIA EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY CZĘŚĆ I ARKUSZ EGZAMINACYJNY PROJEKTU INFORMATURA DATA: 13 LUTEGO 2015 R. CZAS PRACY: 60 MINUT LICZBA PUNKTÓW DO UZYSKANIA:
Algorytmika i Programowanie VBA 1 - podstawy
Algorytmika i Programowanie VBA 1 - podstawy Tomasz Sokół ZZI, IL, PW Czas START uruchamianie środowiska VBA w Excelu Alt-F11 lub Narzędzia / Makra / Edytor Visual Basic konfiguracja środowiska VBA przy
Ję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 -
Podstawy Informatyki Systemy sterowane przepływem argumentów
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer
UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.
Zadaniem centralnej jednostki przetwarzającej CPU (ang. Central Processing Unit), oprócz przetwarzania informacji jest sterowanie pracą pozostałych układów systemu. W skład CPU wchodzą mikroprocesor oraz
Podstawy Informatyki Gramatyki formalne
Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Języki i gramatyki Analiza syntaktyczna Semantyka 2 Podstawowe pojęcia Gramatyki wg Chomsky ego Notacja Backusa-Naura
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych
Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze
Warsztaty 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
Algorytmy 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
Ję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
ForPascal 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:
1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl
Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,
6. Zagadnienie parkowania ciężarówki.
6. Zagadnienie parkowania ciężarówki. Sterowniki rozmyte Aby móc sterować przebiegiem pewnych procesów lub też pracą urządzeń niezbędne jest stworzenie odpowiedniego modelu, na podstawie którego można
Struktury danych (I): kolejka, stos itp.
Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Struktury danych (I): kolejka, stos itp. Struktury danych (I): kolejka, stos itp. Struktura danych stanowi sposób uporządkowania
Paradygmaty 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
Temat 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,
2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego
2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego Gramatyka Gramatyką G nazywamy czwórkę uporządkowaną G = gdzie: N zbiór symboli nieterminalnych, T zbiór symboli terminalnych, P zbiór
Zapisywanie algorytmów w języku programowania
Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
INFORMATYKA DANE.
INFORMATYKA DANE http://www.infoceram.agh.edu.pl DANE Dane to zbiory liczb, znaków, sygnałów, wykresów, tekstów, itp., które mogą być przetwarzane. Pojęcie danych jest relatywne i istnieje tylko razem
Zapis algorytmów: schematy blokowe i pseudokod 1
Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu
INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne Sortowanie Dane wejściowe : trzy liczby w dowolnym porządku Dane wyjściowe: trzy liczby
Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.
Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji
Aproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
Podstawy Programowania Algorytmy i programowanie
Podstawy Programowania Algorytmy i programowanie Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Algorytm Algorytm w matematyce, informatyce, fizyce, itp. lub innej dziedzinie życia,
Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści
Język programowania DELPHI / Andrzej Marciniak. Poznań, 2012 Spis treści Przedmowa 11 Przyjęta notacja 13 Rozdział 1. Wprowadzenie 15 1.1. Ogólne zasady programowania zorientowanego obiektowo 15 1.2. Historia
Ocena poziomu rozwoju podstawowych zdolności arytmetycznych w oparciu o baterie testów wydawnictwa PROMATHEMATICA
Ocena poziomu rozwoju podstawowych zdolności arytmetycznych w oparciu o baterie testów wydawnictwa PROMATHEMATICA Profil arytmetyczny U Test Porównywania Ilości Figur określa: Proces rozumienia liczb na
Algorytmy komputerowe. dr inŝ. Jarosław Forenc
Rok akademicki 2009/2010, Wykład nr 8 2/24 Plan wykładu nr 8 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2009/2010
Podstawy programowania w języku C i C++
Podstawy programowania w języku C i C++ Część czwarta Operatory i wyrażenia Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu,
Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000
SYSTEMY LICZBOWE I. PODZIAŁ SYSTEMÓW LICZBOWYCH: systemy liczbowe: pozycyjne (wartośd cyfry zależy od tego jaką pozycję zajmuje ona w liczbie): niepozycyjne (addytywne) (wartośd liczby jest sumą wartości
Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania
http://torus.uck.pk.edu.pl/~fialko Operatory, wyrażenia, instrukcja przypisania Operatory arytmetyczne * / + - % operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania,
EGZAMIN MATURALNY Z INFORMATYKI
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. MIN 2016 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę EGZAMIN MATURALNY Z INFORMATYKI POZIOM ROZSZERZONY CZĘŚĆ I DATA: 17
Dr 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
Podstawy 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