Technologie informacyjne wykład 2 wer. 1.2

Podobne dokumenty
Technologie Informacyjne Wykład 2

Architektura komputerów wer. 3

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Architektura komputerów wer. 7

Technologie Informacyjne Wykład 3

Architektura komputerów

Architektura mikroprocesorów TEO 2009/2010

Arytmetyka komputerów

Podstawy Informatyki Systemy sterowane przepływem argumentów

Budowa komputera Komputer computer computare

LEKCJA TEMAT: Zasada działania komputera.

Oprogramowanie komputerów wer. 9

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Struktura i działanie jednostki centralnej

Organizacja typowego mikroprocesora

Architektura systemów komputerowych. dr Artur Bartoszewski

Logiczny model komputera i działanie procesora. Część 1.

Budowa i zasada działania komputera. dr Artur Bartoszewski

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

Budowa Mikrokomputera

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Architektura systemów komputerowych

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Architektura komputerów

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Oprogramowanie komputerów

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Architektura komputerów

Architektura potokowa RISC

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Architektura typu Single-Cycle

Zapoznanie z technikami i narzędziami programistycznymi służącymi do tworzenia programów współbieżnych i obsługi współbieżności przez system.

LEKCJA TEMAT: Współczesne procesory.

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Podstawy Techniki Mikroprocesorowej

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Architektura komputerów Wykład 2

Architektura komputerów

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

Magistrala systemowa (System Bus)

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

Architektura komputera

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Wydajność obliczeń a architektura procesorów

Projektowanie. Projektowanie mikroprocesorów

Krótka wycieczka do wnętrza komputera

Przykładowe pytania DSP 1

Programowalne układy logiczne

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

MIKROKONTROLERY I MIKROPROCESORY

Mikroprocesory rodziny INTEL 80x86

Mikroprocesor Operacje wejścia / wyjścia

Schemat blokowy procesora rdzeniowego ATmega16. Głównym zadaniem JC jest zapewnienie poprawnego i szybkiego wykonywania programu.

Architektura komputerów. Asembler procesorów rodziny x86

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Przetwarzanie potokowe pipelining

ARCHITEKTURA PROCESORA,

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Podstawy Informatyki JA-L i Pamięci

Maszyny liczace - rys historyczny

Język programowania: Lista instrukcji (IL Instruction List)

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

3.Przeglądarchitektur

Architektura systemów komputerowych. Arytmetyka maszyn cyfrowych

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

Technika mikroprocesorowa I Wykład 2

System mikroprocesorowy i peryferia. Dariusz Chaberski

Architektura komputerów

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Architektura Komputerów

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

Wykład 2. Mikrokontrolery z rdzeniami ARM

architektura komputerów w. 4 Realizacja sterowania

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

16. Taksonomia Flynn'a.

Procesory. Schemat budowy procesora

Lista Rozkazów: Język komputera

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

Architektura mikroprocesorów z rdzeniem ColdFire

Architektura komputerów

Urządzenia zewnętrzne

Architektura Systemów Komputerowych. Architektura potokowa Klasyfikacja architektur równoległych

Sprzęt i architektura komputerów

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

3.Przeglądarchitektur

PAMIĘCI. Część 1. Przygotował: Ryszard Kijanka

Jednostka centralna. dr hab. inż. Krzysztof Patan, prof. PWSZ

Budowa systemów komputerowych

Rejestry procesora. Nazwa ilość bitów. AX 16 (accumulator) rejestr akumulatora. BX 16 (base) rejestr bazowy. CX 16 (count) rejestr licznika

Transkrypt:

Technologie informacyjne wykład 2 wer. 1.2 Wojciech Myszka 24 października 2010 1

Część I Elementy systemu komputerowego. Czynniki wpływające na wydajność.

Elementy systemu komputerowego. Czynniki wpływające na wydajność. wer. 1.3 Wojciech Myszka 10 października 2010

Co to jest komputer? (1) No właśnie, co?

Co to jest komputer? (1)

Co to jest komputer? (1)

Co to jest komputer? (1)

Co to jest komputer? (1)

Co to jest komputer? (1)

Co to jest komputer? (1)

Co to jest komputer? (1) Hmmm...

John von Neumann John von Neumann (ur. 28 grudnia 1903 w Budapeszcie, zm. 8 lutego 1957 w Waszyngtonie), inżynier chemik, fizyk, matematyk i informatyk. Wniósł znaczący wkład do wielu dziedzin matematyki, szczególnie teorii gier i uporządkował formalizm matematyczny mechaniki kwantowej. Uczestniczył w projekcie Manhattan. Przyczynił się do rozwoju numerycznych prognoz pogody.

Architektura von Neumanna Architektura von Neumanna rodzaj architektury komputera, przedstawionej po raz pierwszy w 1945 roku przez von Neumanna stworzonej wspólnie z Johnem W. Mauchly ym i Johnem Presper Eckertem. Polega na ścisłym podziale komputera na trzy podstawowe części: procesor (w ramach którego wydzielona bywa część sterująca oraz część arytmetyczno-logiczna) pamięć komputera (zawierająca dane i sam program) urządzenia wejścia/wyjścia

Architektura von Neumanna

Architektura von Neumanna System komputerowy zbudowany w oparciu o architekturę von Neumanna powinien: mieć skończoną i funkcjonalnie pełną listę rozkazów mieć możliwość wprowadzenia programu do systemu komputerowego poprzez urządzenia zewnętrzne i jego przechowywanie w pamięci w sposób identyczny jak danych dane i instrukcje w takim systemie powinny być jednakowo dostępne dla procesora informacja jest tam przetwarzana dzięki sekwencyjnemu odczytywaniu instrukcji z pamięci komputera i wykonywaniu tych instrukcji w procesorze.

Architektura von Neumanna Podane warunki pozwalają przełączać system komputerowy z wykonania jednego zadania (programu) na inne bez fizycznej ingerencji w strukturę systemu, a tym samym gwarantują jego uniwersalność. System komputerowy von Neumanna nie posiada oddzielnych pamięci do przechowywania danych i instrukcji. Instrukcje jak i dane są zakodowane w postaci liczb. Bez analizy programu trudno jest określić czy dany obszar pamięci zawiera dane czy instrukcje. Wykonywany program może się sam modyfikować traktując obszar instrukcji jako dane, a po przetworzeniu tych instrukcji danych zacząć je wykonywać.

Schemat komputera

Schemat komputera Procesor

Schemat komputera Procesor Pamięć

Schemat komputera Procesor Pamięć Układy we/wy

Schemat komputera Procesor Pamięć Szyna Układy we/wy

Schemat komputera Procesor Pamięć Sterowanie Szyna Układy we/wy

Schemat komputera I W modelu tym wyróżniamy: Procesor. Pamięć (i pod tym pojęciem rozumiemy wszystkie rodzaje pamięci: Cache, RAM, ROM, dyski, dyskietki, dyski wymienne zapisywalne i nie). Urządzenie wejścia/wyjścia (wszystkie urządzenia pozwalające na kontakt ze światem zewnętrznym : klawiatura, mysz, karta graficzna, drukarka, czytniki różnego rodzaju).

Schemat komputera II Sterowanie (wszystkie układy elektroniczne zapewniające właściwą komunikację wszystkich wymienionych wyżej urządzeń ze sobą i zapewniający uporządkowany przepływ informacji po szynie/szynach). Magistrala (szyna) to wszystkie drogi łączące wymienione wyżej urządzenia.

Procesor Operacje logiczne Iloczyn Y = A B A B Y 0 0 0 0 1 0 1 0 0 1 1 1 Różnica symetryczna Y = A B A B Y 0 0 0 0 1 1 1 0 1 1 1 0 Suma Y = A B A B Y 0 0 0 0 1 1 1 0 1 1 1 1

Procesor Jak procesor dodaje? 1. Półsumator 2. Suma dwu bitów (Y = X 1 + X 2 ) 3. Przeniesienie (C out ) 4. Tabela prawdy X 1 X 2 Y C out 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Y = X 1 X 2 C out = X 1 X 2

Procesor Jak procesor dodaje sumator C in X 1 X 2 Y C out 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 Y = C in (X 1 X 2 ) C out = (X 1 X 2 ) (C in (X 1 X 2 ))

Operacje logiczne Zastosowanie XOR Znak Kursor Wynik

Operacje logiczne Zastosowanie XOR Znak Kursor Wynik 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1

Operacje logiczne Zastosowanie XOR Znak Kursor Wynik 0 0 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1

Operacje logiczne Zastosowanie XOR Znak Kursor Wynik 0 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1

Operacje logiczne Zastosowanie XOR Znak Kursor Wynik 0 0 1 0 0 1 1 1 1 1 1 1 0 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1

Operacje logiczne Zastosowanie XOR Znak Kursor Wynik 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1

Operacje logiczne Zastosowanie XOR Znak Kursor Wynik 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1

Operacje logiczne Zastosowanie XOR Znak Kursor Wynik 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 1

Operacje logiczne Zastosowanie XOR 0 0 1 0 0 0 0 1 0 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 Znak Kursor Wynik 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 1 1

Operacje logiczne Zastosowanie XOR Znak Kursor Wynik

XOR Patent nonsense Method for dynamically viewing image elements stored in a random access Patent number: 4197590 Filing date: Jan 19, 1978 Issue date: Apr 8, 1980 Inventors: Josef S. Sukonick, Greg J. Tilden Assignees: NuGraphics, Inc. Primary Examiner: Thomas M. Heckler

Procesor Interfejs pamięci Dekoder i licznik rozkazów Rejestry (Akumulator) Jedna (lub więcej) jednostka arytmetyczna. Rejestry stanu (wskazują jaki był wynik ostatniej operacji).

Od czego zależy szybkość? 1. Zegar procesora 2. Czas dostępu pamięci 3. Liczba jednostek arytmetycznych

A jak to działa? Pipeline IF pobieranie instrukcji, ID dekodowanie instrukcji, EX wykonanie, MEM zapis wyników (cache), WB zapis do pamięci

A jak to działa? Pipeline IF pobieranie instrukcji, ID dekodowanie instrukcji, EX wykonanie, MEM zapis wyników (cache), WB zapis do pamięci

IF pobieranie instrukcji, ID dekodowanie instrukcji, EX wykonanie, MEM zapis wyników (cache), WB zapis do pamięci A jak to działa? Pipeline + dwa procesory

Od czego zależy jeszcze szybkość? Inne metody 1. Zakres liczb całkowitych ( bitowość ) 2. Zestaw realizowanych przez procesor poleceń 3. Wieloprogramowość 4. Wielowątkowość 5. Równoczesne operacje na wielu danych (vector processor)

Od czego zależy jeszcze szybkość? Procesory wektorowe 1. Procesor wektorowy (tablicowy) to CPU skonstruowane w taki sposób, że zawiera polecenia wykonania operacji matematycznej na wielu elementach danych. 2. SIMD Single Instruction, Multiple Data 3. Podstawa superkomputerów z lat 80 i 90. 4. W roku 2000 IBM, Toshiba i Sony współpracowały nad stworzeniem procesora Cell zawierającego jeden procesor skalarny (odwrotność procesora wektorowego) i osiem procesorów wektorowych, który znalazł zastosowanie (między innymi) w PlayStation 3.

Szybkość wiele procesorów Batch processing (przetwarzanie wsadowe) wiele zadań, wiele komputerów (połaczonych), zadania zapisywane są do kolejki (kolejek), zadania przekazywane sa do wykonania na poszczególnych komputerach zgodnie z przyjetą polityką. Symmetric Multi-Processing (SMP) jeden komputer (wspólna pamięć) i kilka procesorów jeden komputer (wspólna pamięć) i procesor kilkurdzeniowy (multicore)

Wiele procesorów Wiele programów. Wiele wątków: program napisany w ten sposób, że zadania, które może realizować zaprogramowane są w taki sposób, że wykonanie jednego zadania może się odbywać niezależnie od innego zadania (zadanie nie mają na siebie żadnego wpływu). Programowanie współbieżne : program napisany w ten sposób, ze niektóre (lub wszystkie) czynności dzielone są na fragmenty mogące być wykonywane niezaleznie.

Część II Procesor i jego architektura (CISC, RISC, 32/64 bity).systemy wieloprocesorowe.

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer. 1.1 Wojciech Myszka 25 pa«zdziernika 2009

CISC I Complex Instruction Set Computers nazwa architektury mikroprocesorów o następujących cechach: duża liczba rozkazów (instrukcji) mała optymalizacja niektóre rozkazy potrzebują dużej liczby cykli procesora do wykonania występowanie złożonych, specjalistycznych rozkazów duża liczba trybów adresowania do pamięci może się odwoływać bezpośrednio duża liczba rozkazów mniejsza od RISC-ów częstotliwość taktowania procesora powolne działanie dekodera rozkazów

CISC II Przykłady rodzin procesorów o architekturze CISC to między innymi: AMD x86 M68000

RISC I Reduced Instruction Set Computers Zredukowana liczba rozkazów do niezbędnego minimum. Ich liczba wynosi kilkadziesiąt (setki w procesorach). Upraszcza to znacznie konstrukcję procesora. Redukcja trybów adresowania większość operacji wykonuje się wg schematu: rejestr C = rejestr A operacja rejestr B.

RISC II Ograniczenie komunikacji pomiędzy pamięcią, a procesorem. Do przesyłania danych pomiędzy pamięcią, a rejestrami służą instrukcje, które nazywają się load (załaduj z pamięci), oraz store (zapisz do pamięci); pozostałe instrukcje operują wyłącznie na rejestrach. Schemat działania załaduj daną z pamięci do rejestru, na zawartości rejestru wykonaj działanie, przepisz wynik z rejestru do pamięci. Zwiększenie liczby rejestrów (np. 32, 192, 256, x86 jest 8), co również ma wpływ na zmniejszenie liczby odwołań do pamięci.

RISC III Przetwarzanie potokowe (ang. pipelining): wszystkie rozkazy wykonują się w jednym cyklu maszynowym, (znaczne uproszczenie bloku wykonawczego), a zastosowanie superskalarności umożliwia równoległe wykonywanie rozkazów. Superskalarność (ang. Superscalar) możliwość ukończenia kilku instrukcji w pojedynczym cyklu zegara. Jest to możliwe dzięki zwielokrotnieniu jednostek wykonawczych. Pierwszym procesorem Intela z rodziny x86 wykorzystującym superskalarność był procesor Pentium. Większość procesorów superskalarnych nie ma w pełni zduplikowanej jednostki wykonywania kodu mogą mieć wiele ALU, jednostek

RISC IV zmiennopozycyjnych i tak dalej, wobec czego pewne instrukcje będą wykonywane bardzo szybko, a inne nie.

VLIW Very Long Instruction Word uproszczenie jednostki sterującej, zwiększanie liczby jednostek wykonawczych, technika wcześniejszego wykonania instrukcji (Out-of-Order Execution), sterowanie pracą procesora zostało przerzucone na kompilator (to on decyduje o sposobie działania procesora). Kompilator (ang. compiler) to program służący do automatycznego tłumaczenia kodu napisanego w jednym języku (języku źródłowym) na równoważny kod w innym języku (języku wynikowym)

ZISC Zero Instruction Set Computer Jeden z pierwszych procesorów ZISC zawierał 36 niezależnych komórek (uważane są za neurony lub równoległe procesory). Każda z nich może porównać wektor wejściowy (64 bajty) z podobnym wektorem przechowywanym w komórkach pamięci. Jeśli wektor wejściowy odpowiada wektorowi w komórce pamięci to komórka ta wypala. Sygnał wyjściowy zawiera komórki, która miała dopasowanie, oraz znacznik mówiący, że nie wystąpiło dopasowanie.

Schemat procesora Rejestr (akumulator) Arytmometr Wskazniki Pamiec (RAM)

Podstawowe operacje Instrukcje arytmetyczne Ładuj <adres pamięci> przepisuje zawartość pamięci o wskazanym adresie do rejestru. Zapisz <adres pamięci> przepisuje zawartość akumulatora do pamięci Ładuj <liczba> zapisuje liczbę do rejestru Dodaj <adres pamięci> do zawartości akumulatora dodaje zawartość komórki o wskazanym adresie (możemy tez założyć, że w podobny sposób potrafi policzyć różnicę, iloczyn i iloraz, choć, w rzeczywistości, nie musi to być prawdą). Wykonanie każdej operacji zmieniającej zawartość rejestru powoduje ustawienie wskaźników (zero, przepełnienie, ujemne).

Podstawowe operacje Instrukcje na bitach Neguj zmienia znak liczby w akumulatorze And <adres pamięci> iloczyn logiczny (bit po bicie dwu słów) Or <adres pamięci> Xor <adres pamięci> różnica symetryczna Przesun_w_lewo Przesun_w_prawo Przesun_cyklicznie_w_lewo Przesun_cyklicznie_w_prawo

Podstawowe operacje Instrukcje sterujące Skocz <adres pamięci> bezwarunkowe przekazanie sterowanie do adresu Skocz_jezeli_zero <adres pamięci> Skocz_jezeli_ujemne <adres pamięci> Skocz_jesli_nadmiar <adres pamięci> Skocz_do_podprogramu <adres pamięci> bardzo podobne do instrukcji zwykłego skoku, ale dodatkowo zapisuje aktualny stan procesora w specjalnie do tego przeznaczonej pamięci

Asembler Bardzo proste działanie: A=B+C

Asembler Bardzo proste działanie: A=B+C W komórce o adresie A ma być umieszczony wynik dodawania zawartości komórek o adresie B i C.

Asembler Bardzo proste działanie: A=B+C W komórce o adresie A ma być umieszczony wynik dodawania zawartości komórek o adresie B i C. Realizacja komputerowa: Ładuj B Dodaj C Zapisz A

MARIE MARIE A Machine Architecture that is Really Intuitive and Easy notacja dwójkowa, zapis w kodzie dopełnieniowym przechowywanie programu, stała długość słowa adresowanie słowne 4K pamięci głównej (12 bitów na każdy adres) 16-bitowe dane (16-bitowe słowa) 16-bitowe rozkazy (4-bitowy kod operacji + 12-bitowy adres) 16-bitowy akumulator (AC) 16-bitowy rejestr rozkazów (IR) 16-bitowy rejestr bufora pamięci (MBR) 12-bitowy licznik rozkazów (PC) 12-bitowy rejestr adresów pamięci (MAR) 8-o bitowy rejestr wejściowy (InREG) 8-o bitowy rejestr wyjściowy (OutREG)

Symulator MARIE

Asembler Bardziej skomplikowany przykład Z = [(A + B)(C + D)] W

Asembler Bardziej skomplikowany przykład Z = [(A + B)(C + D)] W T1 = A + B

Asembler Bardziej skomplikowany przykład Z = [(A + B)(C + D)] W T1 = A + B T2 = C + D

Asembler Bardziej skomplikowany przykład Z = [(A + B)(C + D)] W T1 = A + B T2 = C + D T3 = T1 T2

Asembler Bardziej skomplikowany przykład Z = [(A + B)(C + D)] W T1 = A + B T2 = C + D T3 = T1 T2 Z = T3/W

Odwrotna Notacja Polska Popatrzmy na działanie: Ile wynosi wynik? 3 + 7 5

Odwrotna Notacja Polska Popatrzmy na działanie: Ile wynosi wynik? 50 czy 38? 3 + 7 5

Odwrotna Notacja Polska Popatrzmy na działanie: Ile wynosi wynik? 50 czy 38? A który jest poprawny? 3 + 7 5

Odwrotna Notacja Polska Popatrzmy na działanie: 3 + 7 5 Ile wynosi wynik? 50 czy 38? A który jest poprawny? Czemu tak łatwo znaleźć kalkulator który liczy źle?

Ważność działań arytmetycznych 1. potęgowanie 2. mnożenie i dzielenie 3. dodawanie i odejmowanie Nawiasy mogą ją zmieniać!

Ważność działań arytmetycznych 1. potęgowanie 2. mnożenie i dzielenie 3. dodawanie i odejmowanie Nawiasy mogą ją zmieniać! A gdzie jest zmiana znaku?

Czy jest możliwy zapis jednoznaczny? Polski logik, Łukasiewicz, wprowadził notację przedrostkową. Zamiast z = x + y zaproponował zapis: +xy

Czy jest możliwy zapis jednoznaczny? Polski logik, Łukasiewicz, wprowadził notację przedrostkową. Zamiast z = x + y zaproponował zapis: +xy Zwracam uwagę że jest on bardzo podobny do zapisu funkcji dwu zmiennych: z = f(x, y) Funkcja suma jest też dwuargumentowa: z = +(x, y)

Zapis polski Działanie 3 + 7 5 oznaczające 3 + (7 5) zapisujemy: + 7 5 }{{} 3 }{{}

odwrotny zapis polski Utarło się używanie innego zapisu: najpierw podaje się argumenty działania, później samo działanie: xy+ Stąd nazwa: Odwrotna notacja polska. Nasze działanie zapisujemy tak: 7 5 3+ a to bardziej skomplikowane tak: A B + C D + W /

Odwrotna Notacja Polska stos Praktyczna realizacja działania A B + C D + W / wymaga stosu. I dodatkowych operacji w języku wewnętrznym: Zapisz_na_stos przepisuje zawartość akumulatora na stos. Pobierz_ze_stosu pobiera ze stosu wartość i przepisuje ją do akumulatora

Stos

Stos

Prosty kalkulator http://www.calculator.org Praktyczna realizacja działania A B + C D + W / A = 1, B = 2, C = 3, D = 4, W = 5