Architektura komputerów

Podobne dokumenty
WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA ALGORYTM. Język programowania PROGRAM. instrukcja-dla. instrukcja-przypisania.

Języki programowania zasady ich tworzenia

Wykład 4. Algorytmy i programy. Algorytmy + struktury danych = programy. Niklaus Wirth. Algorytm = logika + sterowanie.

Specyfika projektowania Mariusz Rawski

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Programowanie komputerów

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Podstawy Informatyki Języki programowania

Język programowania PASCAL

O (o)programowaniu. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Wstęp do programowania

Wstęp do Informatyki i Programowania

Wstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka.

Struktury systemów operacyjnych Usługi, funkcje, programy. mgr inż. Krzysztof Szałajko

Programowanie w języku Python. Grażyna Koba

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Algorytm. a programowanie -

Algorytmy od problemu do wyniku

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Zapisywanie algorytmów w języku programowania

Programowanie w języku C++ Grażyna Koba

Podstawy programowania

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

PASCAL. Etapy pisania programu. Analiza potrzeb i wymagań (treści zadania) Opracowanie algorytmu Kodowanie Kompilacja Testowanie Stosowanie

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Programowanie i techniki algorytmiczne

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania

Java EE produkcja oprogramowania

Historia modeli programowania

Języki i metodyka programowania

Technologie informacyjne - wykład 12 -

Wstęp do Informatyki dla bioinformatyków

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

1 Wprowadzenie do algorytmiki

Programowanie obiektowo zorientowane. Mirosław Głowacki Wykład w języku C++

dr hab. Joanna Jędrzejowicz Podstawy informatyki i komputeryzacji Gdańska Wyższa Szkoła Humanistyczna

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Paradygmaty programowania

Podstawy programowania w języku C

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

LEKCJA TEMAT: Zasada działania komputera.

Języki i paradygmaty programowania. I. Wprowadzenie

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Podstawy Informatyki Systemy sterowane przepływem argumentów

Algorytm. Krótka historia algorytmów

3. Podaj elementy składowe jakie powinna uwzględniać definicja informatyki.

Architektura systemów komputerowych

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Podstawy Informatyki Języki programowania c.d.

Metody Kompilacji Wykład 1 Wstęp

Języki i paradygmaty programowania

2.8. Algorytmy, schematy, programy

Programowanie. Projektowanie funkcje programu tworzenie algorytmu i struktur danych. Programowanie implementacja algorytmu kompilacja programu

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Pascal - wprowadzenie

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Efektywna analiza składniowa GBK

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

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

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

Programowanie w Turbo Pascal

DIAGRAMY SYNTAKTYCZNE JĘZYKA TURBO PASCAL 6.0

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

ForPascal Interpreter języka Pascal

Algorytmy zapisywane w pseudojęzyku programowania. Klasa 2 Lekcja 6

Budowa komputera Komputer computer computare

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

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Język ludzki kod maszynowy

Języki programowania deklaratywnego

Jerzy Nawrocki, Wprowadzenie do informatyki

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Programowanie w języku C++ Podstawowe paradygmaty programowania

Algorytmika i pseudoprogramowanie

Magistrala systemowa (System Bus)

Definicje. Algorytm to:

Spis treści. Podstawy posługiwania się komputerem

Języki programowania Język programowania Język maszynowy Kod maszynowy

Podstawy programowania. Wprowadzenie

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Matematyka Dyskretna. Andrzej Szepietowski. 25 czerwca 2002 roku

ECDL Podstawy programowania Sylabus - wersja 1.0

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

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Algorytm - pojęcie algorytmu, sposób zapisu, poziom szczegółowości, czynności proste i strukturalne. Pojęcie procedury i funkcji.

Informatyka. Michał Rad

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Podstawy Programowania. Wykład 1

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Zapis algorytmów: schematy blokowe i pseudokod 1

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Transkrypt:

Architektura komputerów Urządzenia wprowadzania danych: klawiatury czytniki urządzenia przetwarzania dokumentów manipulatory Urządzenia wyprowadzania danych: monitory drukarki urządzenia foniczne urządzenia graficzne Urządzenia przetwarzania i przechowywania danych: pamięć operacyjna procesor kanały WE/WY urządzenia pamięci zewnętrznej: taśmy dyski (elastyczne, twarde, optyczne)

Model komputera wg von Neumann a Pamięć: stała ROM o dostępie swobodnym RAM Jednostka arytmetyczno -logiczna Urządzenia wejścia i wyjścia Moduł sterowania

Model komputera (szyna systemowa) Komunikacja pomiędzy komponentami odbywa się współdzielonymi zasobami zwanymi szyną systemową, która składa się z: szyny danych, szyny adresowej szyny sterującej

Model komputera (warstwy) Komputer może być przedstawiany jako zestaw warstw poczynając od warstwy programów a kończąc na poziomie tranzystorów Poziom użytkownika: Programy Języki wysokiego poziomu Kod maszynowy (Asembler) Sprzętowe/programowalne sterowanie Moduły funkcjonalne (ALU, pamięć,..) Bramki logiczne Tranzystory

Języki programowania Składnia typowego języka zawiera: warianty kilku struktur sterujących sposoby definiowania rozmaitych struktur danych wzorce podstawowych instrukcji ALGORYTM symbole Język programowania PROGRAM słowa kluczowe składnia semantyka

Języki programowania c.d. Algorytm sumowania liczb od 1 do N w hipotetycznym języku JP: definiuj N, X, Y liczby całkowite wczytaj N; X : = 0; dla Y od 1 do N wykonaj X : = X + Y koniec; wypisz X. Słowa kluczowe: definiuj, wczytaj, dla itd. Instrukcje: przypisania - X : = 0 iteracji - dla... wykonaj... koniec

Kompilatory i interpretatory Kompilacja - przekładanie całego programu napisanego w języku wysokiego poziomu na program w języku niższego poziomu Interpretacja - przekładanie kolejno instrukcji języka wysokiego poziomu na instrukcje poziomu maszynowego koncepcja algorytmu algorytm programowanie program w języku wysokiego poziomu kompilacja program w języku adresów symbolicznych kod maszynowy wykonanie na komputerze

Uruchomienie programu Język wysokiego poziomu dla Y od 1 do N wykonaj (treść iteracji) koniec Asembler LDS 0,Y (załaduj 0 pod adres Y) PĘTLA POR N,Y (porównaj wart. pod adr.) SKR DALEJ (jeśli równe, to skocz) DDS 1,Y (dodaj 1 do wart. pod adr. Y) (tłumaczenie treści iteracji) SKO PĘTLA (skocz z powrotem) DALEJ...

Uruchomienie programu - krok 1 i 2 Załadowanie programu z pamięci zewnętrznej do pamięci systemowej komputera 1. krok PROCESOR Pamięć operacyjna Pamięć zewnętrzna Program Pobranie danych dla programu z pamięci zewnętrznej lub z urządzeń wejściowych 2. krok Urz. wejściowe PROCESOR Pamięć operacyjna Dane Program Pamięć zewnętrzna

Uruchomienie programu - krok 3 i 4 Wykonanie algorytmu dla pobranych danych 3. krok PROCESOR Pamięć operacyjna Dane Wyniki Program Podanie wyniku działania programu na ekranie lub zapisanie do pliku... 4. krok PROCESOR Pamięć operacyjna Urz. wyjściowe Dane Wyniki Program

Definiowanie składni języka Notacji BNF (Backus-Naur Form): ( oznacza lub ) <instrukcja> : <instrukcja-dla> <instrukcja-przypisania>... <instrukcja-dla> : dla <nagłówek-dla> wykonaj <instrukcja> koniec <nagłówek-dla> : <zmienna> od <wartość> do <wartość> <wartość> : <zmienna> <liczba>... Diagramy składniowe: instrukcja instrukcja-dla instrukcja-przypisania nagłówek-dla instrukcja-dla zmienna dla nagłówek-dla wykonaj instrukcja koniec od wartość z krokiem do wartość wartość wartość zmienna cyfra

Definiowanie składni języka (c.d) Definiowanie struktur danych: definiuj TA tablica [1..50,8..107] w niej liczby całkowite i odwołanie do elementu tablicy TA[wartość,wartość] Składnia języka programowania określa: jak opisywać struktury sterujące jak opisywać struktury danych jak tworzyć poprawne ciągi symboli dla nazywania zmiennych i struktur danych jak stosować interpunkcję (np. spacje, średniki, kropki, nawiasy) Semantyka określa znaczenie poprawnych składniowo wyrażeń

WIEŻA BABEL JĘZYKÓW PROGRAMOWANIA BASIC (Beginner's All-Purpose Symbolic Instruction Code) najprostszy język wyższego poziomu - łatwy do opanowania język ogólnego przeznaczenia opracowany w połowie lat 60 przez Johna Kemeny ego i Thomasa Kurtza z Dartmouth College, N.H. stał się popularny na początku lat 80 wraz z rozwojem komputerów osobistych początkowo interpretowany, a obecnie raczej kompilowany

WIEŻA BABEL JĘZYKÓW PROGRAMOWANIA FORTRAN (Formula Translation) język przeznaczony do obliczeń inżynierskich i naukowych opracowany w 1957 r. przez Johna Backusa z IBM wielokrotnie modyfikowany wciąż popularny w zastosowaniach numerycznych wersja opracowana w 1990 r. - FORTRAN 90 została wyposażona w wiele dodatkowych elementów rozszerzających zakres zastosowań sterowanie: skok goto, instrukcja warunkowa i ograniczona iteracja (brak rekurencji)

WIEŻA BABEL JĘZYKÓW PROGRAMOWANIA COBOL (Common Business-Oriented Language) najpopularniejszy język w środowisku biznesu (banki, firmy ubezpieczeniowe, duże przedsiębiorstwa) firmy współpracujące z Departamentem Obrony USA powołały w 1959 r. CODASYL (Conference on Data Systems Languages), która opracowała język mający zapewnić łatwość przenoszenia programów na różne platformy sprzętowe i posiadający łatwe do zrozumienia instrukcje - podobne do zdań w języku angielskim od momentu powstania był wielokrotnie modyfikowany zawiera mechanizmy definiowania struktury pliku z danymi (sekcja data division) sterowanie: skok goto, instrukcja warunkowa i perform - ograniczona iteracja i wywołanie podprogramu

COBOL (przykład) Przykładowa struktura pliku opisującego szkołę wyższą PLIK-SZKOLNY STUDENT WYDZIAŁ 1000 2 NAZWISKO-STUDENTA PRZEDMIOT NR-ALBUMU NAZWA-WYDZIAŁU PRZEDMIOT A(15) 30 999999 A(10) 50 NAZWA-PRZEDMIOTU OCENA AAAA999 99 NAZWA-PRZEDMIOTU AAAA999 PROWADZĄCY A(10)

COBOL (przykład c.d.) Przykładowa definicja pliku opisującego szkołę wyższą data division 01 PLIK-SZKOLNY 02 STUDENT occurs 1000 times 03 NAZWISKO-STUDENTA pic A(15) 03 PRZEDMIOT occurs 30 times 04 NAZWA-PRZEDMIOTU pic AAAA999 04 OCENA pic 99 03 NR-ALBUMU pic 99999 02 WYDZIAŁ occurs 2 times 03 NAZWA-WYDZIAŁU pic A(10) 03 PRZEDMIOT occurs 50 times 04 NAZWA-PRZEDMIOTU pic AAAA999 04 pic A(10)

WIEŻA BABEL JĘZYKÓW PROGRAMOWANIA Pascal opracowany przez Niklausa Wirtha z Federal Institute of Technology w Zurichu w końcu lat 60. w zamierzeniu miał służyć celom edukacyjnym w systematycznej nauce programowania oraz pozwalać na budowę szybkich i niezawodnych kompilatorów pierwszy kompilator opracowany przez Wirtha w 1974 r. był za darmo rozpowszechniany w środowiskach uniwersyteckich wywarł duży wpływ na inne później powstające języki programowania, np. na język Ada reguły syntaktyczne języka są zwarte i czytelne co pozwala łatwiej go opanować w porównaniu z innymi językami wyższego poziomu można w nim przejrzyście opisywać nawet złożone algorytmy i struktury danych programy są łatwe do zrozumienia i łatwo wykrywa się w nich błędy oferuje możliwości definiowania nowych struktur danych (wskaźniki)

Pascal Przykładowe definicje nowych typów zmiennych type kolor = (niebieski, czerwony, purpurowy, brązowy, biały); type paleta = set of kolor; type dzień = 1..365 Przykładowy program wypełniający listę type komórka = record zawartość : integer; następna : dowiązanie end; type dowiązanie = komórka; var POCZĄTEK, X : dowiązanie; begin new(początek); X : = POCZĄTEK; while not eof do begin read(x.zawartość); if not eof then begin new(x.następna); X : = X.następna end end; X.następna : = nil end.

WIEŻA BABEL JĘZYKÓW PROGRAMOWANIA C został opracowany przez Dennisa Ritchie z AT&T Bell Laboratories w 1972 r. choć jest językiem wyższego poziomu to zawiera jednak wiele instrukcji charakterystycznych dla języków niższych poziomów (bezpośrednie operacje na adresach i bitach) pozwala tworzyć programy łatwe do przenoszenia na różne platformy sprzętowe system operacyjny UNIX został prawie całkowicie napisany w C staje się coraz bardziej popularny zarówno na mikrokomputerach jak i na większych maszynach

WIEŻA BABEL JĘZYKÓW PROGRAMOWANIA LISP (List Processor) został opracowany na przełomie lat 50 i 60 przez grupę z Massachusetts Institute of Technology kierowaną przez Johna McCarthy ego (z wykorzystaniem formalizmu matematycznego zwanego rachunkiem lambda) opracowano kilka wersji języka (ta z 1984 r. jest de facto standardem) oparty jest na listach, jako podstawowych strukturach danych, i na rekurencji, jako podstawowej strukturze sterującej łatwości manipulowania listami obiektów o różnej naturze stanowi o jego unikalności wymaga dużych obszarów pamięci i jest zwykle interpretowany sprawdza się najlepiej w obliczeniach symbolicznych (rozgrywanie gier, przetwarzanie języka naturalnego, uczenie się, podejmowanie decyzji i wnioskowanie logiczne)

Badania nad językami programowania podstawy matematyczne interpretacji i kompilacji definiowanie semantyki metodą operacyjną lub denotacyjną tworzenie języków zapytań i manipulowania danymi opracowywanie środowisk programowania wizualne języki programowania - rysowanie programów równoważność języków rozbudowa struktur sterujących zwiększanie elastyczności - możliwości definiowania własnych struktur