WDP Wykład 13


Języki programowania
Historia
1
Języki 1-szej generacji
/języki maszynowe/
Algorytmy wyrażone w języku maszynowym komputera (kody
operacji i ich argumenty przedstawiane za pomocą liczb)
Wprowadzenie opisowych nazw komórek pamięci i mnemonicznych
nazw rozkazów, a następnie tłumaczenie ich na język maszynowy
Asemblery
/programy tłumaczące każdy rozkaz programu zródłowego
zapisanego w postaci mnemonicznej na jeden rozkaz maszynowy/
156C LD R5, CENA
166D LD R6, PODATEK
5056 ADDI R0, R5, R6
206E ST R0, SUMA
C000 HLT
2
Języki 2-giej generacji
Języki asemblerowe
Systemy nazw mnemonicznych służących do
reprezentacji programów
Programowanie składa się z małych kroków
Programy nie dają się łatwo przenosić na
komputery o innej architekturze
3
Języki 3-ej generacji
/niezależne od komputera/
Zastosowanie konstrukcji pierwotnych
niezależnych od komputera (FORTRAN,
COBOL)
Konieczny kompilator
Translatory
Interpretery  wykonują instrukcję w miarę
ich tłumaczenia
4
Języki 4-tej generacji
używają graficznych systemów dialogu z
użytkownikiem lub opisu w języku
naturalnym
CA-Visual Objects
Delphi
Clarion
Magic
5
Paradygmaty programowania
6
Ewolucja paradygmatów
programowania
LISP ML Scheme
Funkcyjny
SIMULA C++ Ada 95
Obiektowy
Smalltalk Visual Basic Java
Języki maszynowe FORTRAN BASIC C Ada
Imperatywny
COBOL ALGOL APL Pascal
GPSS Prolog
Deklaratywny
/na czym polega problem?/
7
Implementacja języków
programowania
8
Translacja
Proces przekształcania programu z
jednego języka na drugi.
program zródłowy
program wynikowy
9
Konsolidacja i ładowanie
W większości języków programowania można
niezależnie od siebie pisać i kompilować
poszczególne moduły programu.
Konsolidacja polega na połączeniu wielu
programów wynikowych (powstałych w wyniku
niezależnych translacji) w jeden kompletny tzw.
moduł ładowalny.
Program ładujący umieszcza ten moduł w
pamięci.
10
Pełny proces przygotowania programu do
wykonania w języku wysokiego poziomu
składa się z trzech kroków:
translacji
konsolidacji
załadowania
11
Podstawowe pojęcia
Aspekty języka programowania:
Syntaktyka (składnia) - zbiór reguł
określający formalnie poprawne
konstrukcje językowe
Semantyka - opisuje znaczenie
konstrukcji językowych
Pragmatyka - opisuje wszystkie inne
aspekty języka
12
Proces translacji składa się z trzech faz:
analizy leksykalnej
 tworzy ciąg tokenów (leksemów)
analizy składniowej
- rozpoznaje gramatyczną strukturę
programu
/języki o ustalonym formacie, o dowolnym formacie/
generowania kodu
- tworzenie programu w języku
maszynowym
13
Analiza składniowa
Słowa kluczowe
Słowa zastrzeżone
Diagramy składniowe
Drzewa składniowe
14
Sposoby opisu składni języka
Notacja BNF (Backus-Naur Form)
Notacja EBNF (Extended Backus-Naur Form)
Diagramy syntaktyczne (Syntax Diagram)
15
Elementy notacji EBNF
Symbole pomocnicze (nieterminalne -
wymagają dalszego opisu)
Symbole końcowe (terminalne)
Produkcje
Metasymbole
< > - symbol pomocniczy
::= - symbol produkcji
| - symbol alternatywy
{ } - powtórzenie 0 lub więcej razy
[ ] - wystąpienie 0 lub 1 raz
16
Przykład
Przykład (EBNF)
::= 0|1|2|3|4|5|6|7|8|9
::= {}
::= | + | -
Przykład (BNF)
::= 0|1|2|3|4|5|6|7|8|9
::= |
::= | + | -
17
Diagramy składniowe
A::=x|(B)
B::=AC
C::={+A}
( )
( B )
B
A
A )
(
A
x
A +
B
B x
A C
A C
C
C
A +
A +
18
program p1;
var i,j: integer;
begin
j:=i+1;
end.
Analiza leksykalna:
program p1 ; var i j : integer begin := +1 end .
Analiza składniowa:
drzewo rozbioru składniowego, tabela symboli:
nazwa leksem typ
:=
id1 i integer
id2 +
id2 j integer
MOV id1, R1
id1 1
ADD R1, #1.0
19
MOV R1, id2
wyrażenie
+
składnik
wyrażenie
-
x
x+y
*
składnik
x*y
składnik
wyrażenie
x*y-z
/
x+y*z
x
x/y+(x+y)
y
z
20
w
drzewo składniowe
s - w
x*y-z
s
s *
w
z
z
x s
s
y
21
if W1 then if W2 then I1 else I2
if-then-else
if
if then else
Wyr Instr Instr
if (w1)
if(w2)
instrukcja
I1;
instrukcja
else
I2;
then
Wyr Wyr
if if
instrukcja instrukcja
then
instrukcja
else
w1 w1
if (w1)
I2
{
instrukcja
if(w2)
then
Wyr
if if
if
Wyr
I1;
instrukcja instrukcja
then else
}
I1
else
w2 I1 I2 w2
I2;
22


Wyszukiwarka

Podobne podstrony:
Budownictwo Ogolne II zaoczne wyklad 13 ppoz
wykład 13 24 1 13
Wyklad 13 Elektryczność i magnetyzm Prąd elektryczny
wykład 13 i 14 stacjonarne
Wykład 13
Wykład 13
wykład 13 Równania Różniczkowe
Wyklad 13
Wykład 13
PWiK Wykład 13
Chemia organiczna wykład 13
KPC Wykład (7) 13 11 2012
BHP Wyklad 13
Mechanika nieba wykład 13

więcej podobnych podstron