background image

 

 

Kompilacja przechodnia

KOMPILATOR

MASZYNA

GŁÓWNA

PROGRAM

WYNIKOWY

MASZYNA

DOCELOWA

DANE

WE

KOMUNIKATY

KONTROLNE

DANE

WY

PROGRAM

ŹRÓDŁOWY

background image

 

 

Interpretacja

INTERPRETATOR

MASZYNA

DOCELOWA

DANE

WE

DANE

WY

PROGRAM

ŹRÓDŁOWY

background image

 

 

Język programowania

Język programowania jest zbiorem reguł, 

symboli i słów specjalnych (kluczowych) 
używanych do zapisywania tekstu programu.

Reguły dotyczą gramatyki (

syntax

) i 

znaczenia - semantyki (

semantics

).

Definicja 1.

 Gramatyką nazywamy reguły 

formalne określające jak zapisywać 
poprawnie instrukcje i konstrukcje w języku 
programowania.

Definicja 2.

 Semantyką nazywamy reguły 

określające znaczenie instrukcji i konstrukcji 
zapisanych w języku programowania.

background image

 

 

Metajęzyk

Gramatyka języka programowania musi być 

jednoznaczna. Uznajemy, że komputer nie 
myśli. W celu uniknięcia niejednoznaczności 
gramatyka języka programowania 
zapisywana jest w precyzyjnym języku 
formalnym
 nazywanym metajęzykiem

Definicja 3.

 Metajęzykiem nazywamy język 

używany do opisu innego języka.

Gramatyka Ady zdefiniowana jest przy pomocy 

rozszerzonej notacji Backusa-Naura.

background image

 

 

EBNF (

Extended Backus-Naur Form

)

 

::= jest określone jako (równe z 

definicji)

[ ] element opcjonalny
{ } element powtórzony 0 lub więcej 

razy

|

lub (oddziela elementy 

zamienne) 

background image

 

 

EBNF (

Extended Backus-Naur Form

)

Przykład 1.

digit ::= 0|1|2|3|4|5|6|7|8|9
identifier ::= letter 

{[_]letter_or_digit}

letter_or_digit ::= letter|digit
letter ::= upper_case_letter 

|lower_case_letter
|accented_letter

 

background image

 

 

Słowniczek

• digit

 – cyfra,

• identifier

 – identyfikator,

• letter

 – litera,

• upper_case_letter

 – wielka litera,

• lower_case_letter

 – mała litera,

• accented_letter

 – litera akcentowana.

 

background image

 

 

Struktura programu w Adzie

 

ada_program ::= [context_clause]
  

procedure

 program_name 

is

    [declarative_part]
  

begin

    sequence_of_statements
  

end

 program_name;

 

Przykład 2.

 Pierwiastki_Trojmianu

 

background image

 

 

Słowniczek

• context_clause

 – lista importowa,

• program_name

 – nazwa (identyfikator) 

programu,

• declarative_part

 – część deklaracyjna,

• sequence_of_statements

 – ciąg instrukcji.

 

background image

 

 

Zapisywanie treści programów

• Składowe tekstu programu
• Identyfikatory
• Słowa zastrzeżone
• Liczby
• Komentarze

background image

 

 

Składowe tekstu programu

• małe i duże litery alfabetu łącznie z 

literami akcentowanymi

• cyfry dziesiętne 

0..9

• znaki specjalne 

” # & ’ ( ) * 

+ , 

- . / : ; < = > _ |

 

• znak odstępu czyli spacji

  

 

background image

 

 

Identyfikatory 1

Definicja 4.

 Identyfikator jest nazwą procesu, 

albo obiektu i służy do odwoływania się do 

tego procesu, albo obiektu

identifier ::= letter 

{[_]letter_or_digit}

Identyfikator musi zaczynać się od litery, nie 

może kończyć się podkreślnikiem, dwa 

podkreślniki nie mogą wystąpić obok siebie

Zalecenia stylistyczne

Używaj identyfikatorów zrozumiałych dla 

czytającego Twój program
Używaj tej samej postaci identyfikatora w 

całym programie

background image

 

 

Identyfikatory 2

Przykład 3.

 To jest formalnie ten sam 

identyfikator
Moj_Program moj_program 
mOJ_pROGRAM MOJ_PROGRAM 

Identyfikatorem nie może być słowo 

zastrzeżone (kluczowe)

background image

 

 

Słowa zastrzeżone albo kluczowe (Ada 

95)

(

reserved words, key words

)

abort

abs

abstract

accept

access

aliased

all

and

array

at

begin

body

case

constant

declare

delay

delta

digits

do

else

elsif

end

entry

exception

exit

for

function

generic

goto

if

in

is

limited

loop

mod

new

not

null

of

or

others

out

package

pragma

private

procedure

protected

raise

range

record

rem

renames

requeue

return

reverse

select

separate

subtype

tagged

task

terminate

then

type

until

use

when

while

with

xor 

background image

 

 

Liczby

Całkowite
Cyfry: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, 

F}

Podstawy: {2, ..., 9, 10, 11, 12, 13, 14, 15}

Domyślna: 10

Postać wykładnicza: E albo e

Przykład 4.

 

2000 = 2e3 = 2000E0

Podstawa#Reprezentacja#

Przykład 5.

 16#B#e+2 = 11*16

2

Grupowanie: 10000000 = 10_000_000 = 10e6
Rzeczywiste zawierają kropkę dziesiętną
123.45 = 1.2345E2 = 12345.0e-2 = 

10#123.45#

background image

 

 

Komentarze

Zalecenia stylistyczne
Należy pisać programy z pełnymi objaśnieniami.
Pierwszy komentarz powinien zostać umieszczony 

po nagłówku programu i powinien wyjaśniać do 

czego program służy. Można tam również podać 

źródło algorytmu wg którego realizowane są 

obliczenia.

Van Tassel (

1982

) podaje następujące zalecenia:

• Stosuj komentarze wstępne – patrz wyżej
• Stosuj przewodniki po długich programach
• Komentarz ma dawać więcej niż parafrazę 

tekstu programu

• Błędne komentarze są gorsze niż zupełny ich 

brak

background image

 

 

Zadania. Literatura podstawowa

Przykład 6.

 

A : Float; -- To jest zmienna 

rzeczywista

Zadania

Ada_Zadania_1_Pojecia_Wstepne.pdf
Literatura podstawowa
Morawski, M., i Zajączkowski, A. M. (2003). 

Wstęp do programowania w języku 
Ada’95
. Rozdziały 1, 2.


Document Outline