JĘzyki programowania obiektowego wiesław Porębski Ada95 Program Wykładu



Pobieranie 187.36 Kb.
Strona2/8
Data28.04.2016
Rozmiar187.36 Kb.
1   2   3   4   5   6   7   8

1.2.Elementy leksykalne


Tekst programu jest sekwencją oddzielnych elementów leksykalnych. Każdy element leksykalny jest tworzony z sekwencji znaków według określonych reguł, i jest albo elementem oddzielającym, identyfikatorem, słowem zarezerwowanym (kluczowym), literałem numerycznym, literałem znakowym, literałem łańcuchowym, lub komentarzem. Szczególnymi elementami leksykalnymi są pragmy, które podają pewne informacje dla kompilatora. Kompilatory Ady muszą wspierać długości wierszy tekstu programu oraz identyfikatorów co najmniej 200-znakowych.

1.2.1.Zbiór znaków


W tekście programu w języku Ada95 dopuszcza się używanie 8-bitowego zbioru znaków określonego przez standard ISO 8859-1 (Latin-1) oraz 16-bitowego zbioru znaków określonego przez standard ISO 10646. Pierwszy z nich reprezentuje zbiór wartości typu Character, zaś drugi – zbiór wartości typu Wide_Character.

1.2.2.Elementy rozdzielające


Element oddzielający (separator lub ogranicznik) jest jednym ze znaków specjalnych

& ' ( ) * + , - . / : ; < = > |

lub jednym z następujących symboli dwuznakowych



=> .. ** := /= >= <= << >> <>

Symbole dwuznakowe mają następujące nazwy:



symbol nazwa

=> strzałka, symbol asocjacji (skojarzenia)

.. podwójna kropka, symbol zakresu, podzakresu

** podwójna gwiazdka, potęgowanie

:= przypisanie

/= różne


>= większe lub równe

<= mniejsze lub równe

<< lewy nawias kątowy etykiety

>> prawy nawias kątowy etykiety



<> skrzynka

1.2.3.Komentarze


Komentarz zaczyna się od dwóch kolejnych znaków minus i rozciąga się do końca wiersza, w którym występuje. Nie ma wpływu na poprawność programu. Dłuższe komentarze można umieszczać w dwóch lub więcej wierszach.

1.2.4.Identyfikatory


Identyfikatory są używane jako nazwy. Identyfikator nie może być słowem zarezerwowanym (kluczowym). Zaleca się, aby pierwszy znak identyfikatora był dużą literą. Jeżeli identyfikator składa się z więcej niż jednego słowa, poszczególne słowa powinny się zaczynać z dużej litery, a pomiędzy słowami powinny być znaki podkreślenia.

1.2.5.Słowa kluczowe


Standard Ada 95 wprowadził 69 słów kluczowych:


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












1.2.6.Literały numeryczne


Istnieją dwa rodzaje literałów numerycznych: literały rzeczywiste i całkowite. Literał rzeczywisty zawiera kropkę dziesiętną; literał całkowity nie zawiera kropki. Wyróżnia się literały numeryczne decymalne i bazowe.

Literały decymalne

Literał decymalny jest literałem numerycznym (rzeczywistym lub całkowitym) w konwencjonalnej notacji dziesiętnej (tj. z podstawą liczenia 10). W literałach całkowitych wykładnik nie może mieć znaku minus. Jeżeli literał jest dużą liczbą, poszczególne grupy cyfr można przedzielać pojedynczymi znakami podkreślenia.

Przykłady literałów decymalnych:

4.12 0 1E6 123_456 345_23_76 -- literały całkowite

12.0 12.0E1 0.0 0.456 845.4e-1 3.14159_26 -- literały rzeczywiste

Literały bazowe

Literał bazowy jest literałem numerycznym o postaci:

podstawa_liczenia#literał_decymalny#

Podstawa liczenia może być liczbą od 2 do 16. Literał decymalny musi być zapisany w systemie z daną podstawą liczenia. Po drugim # można umieścić znak ‘E’ lub ‘e’ (±), który reprezentuje wtedy podstawę potęgi równą podstawie liczenia, a po nim wykładnik potęgi, zapisany w systemie dziesiętnym. Przykłady literałów bazowych:

2#1111_1111#, 16#FF#, 016#0ff# -- literały całkowite wartości 255

16#E#E1, 8#340#, 2#1110_0000#, -- literały całkowite wartości 224

16#F.FF#E+2, 2#1.1111_1111_1110#E11 -- literały rzeczywiste wartości 4095.0

Literały znakowe

Literał znakowy jest znakiem ujętym w dwa apostrofy. Przykłady: 'A' '*' "' ' '



Literały łańcuchowe

Literały łańcuchowe są sekwencjami zero lub więcej znaków ujętymi w podwójne apostrofy. Jeżeli w łańcuchu ma wystąpić jeden podwójny apostrof, piszemy wówczas dwa kolejne podwójne apostrofy. W łańcuchu nie może wystąpić znak końca wiersza. Przykłady:

"Message of the day:"

"" -- zerowy literał łańcuchowy

" " "A" """" -- trzy literały łańcuchowe o długości 1

1.2.7.Pragmy


Pragma jest dyrektywą dla kompilatora. Istnieją pragmy predefiniowane, które podają instrukcje dla optymalizacji, kontroli listingów, etc. Zapis pragmy zaczyna się od słowa kluczowego pragma, po którym następuje jej nazwa i – opcjonalnie – jeden lub więcej argumentów. Istnieje szereg pragm predefiniowanych, np. pragma Inline zaleca kompilatorowi zastąpić każde wywołanie podprogramu, o ile to możliwe, kodem jego instrukcji. Nierozpoznane pragmy nie mają wpływu na program. ale ich obecność musi być sygnalizowana jako ostrzeżenie.

Przykłady pragm z argumentami:

pragma List(Off); -- wyłącza generację listingu

pragma Optimize(Off); -- wyłącza opcjonalne optymalizacje

pragma Inline(Set_Mask); -- generuj kod dla Set_Mask inline

pragma Suppress(Range_Check, On => Index); -- wyłącza sprawdzanie zakresu -- indeksów.


1.2.8.Operatory i wyrażenia


Operator jest symbolem, który operuje na jednym lub wielu argumentach dla otrzymania pewnego wyniku. W języku Ada 95 zdefiniowano sześć kategorii operatorów, które podajemy według rosnącego priorytetu.

  1. Logiczne: and (koniunkcja), or (alternatywa), xor (alternatywa wyłączna).

  2. Relacyjne: = (przyrównanie), /= (nierówność), < (mniejsze), <= (mniejsze lub równe), > (większe), >= (większe lub równe).

  3. Binarne arytmetyczne: + (dodawanie), - (odejmowanie), & (konkatenacja)

  4. Unarne arytmetyczne: + (plus jednoargumentowy), - (minus jednoargumentowy)

  5. Mnożenia: * (mnożenie), / (dzielenie), mod (modulus), rem (reszta z dzielenia).

  6. Najwyższego priorytetu: ** (potęgowanie), abs (wartość bezwzględna), not (negacja).

Ponadto wprowadzono warunkowe operatory logiczne and then i or else. Dają one takie same wyniki, jak predefiniowane operatory and i or dla wyrażeń logicznych, za wyjątkiem tego, że lewy argument operatora jest zawsze wartościowany jako pierwszy; jeżeli wartość lewego argumentu określa wynik, to prawy argument nie będzie wartościowany.



Wyrażenie jest to formuła, która definiuje obliczenie lub wyznaczenie wartości. Język Ada95 zawiera następujące kategorie wyrażeń: termy (np. 2*Line_Count), wyrażenia pierwotne (np. literały, stałe, zmienne, atrybuty, wywołania funkcji), wyrażenia proste (np. B**2 - 4.0*A*C) i relacje (np. A xor B).

Każde wyrażenie jest określonego typu, który określa rodzaj obliczenia lub wyznaczenia wartości tego typu.


: katedry
katedry -> Identyfikacja bakterii z rodzaju Streptococcus w oparciu o ich właściwości biochemiczne
katedry -> Kierunek: kulturoznawstwo
katedry -> WspóŁczesne teorie socjologiczne wykład dla II roku studiów dziennych
katedry -> Katedra Systemów Mikroelektronicznych Gdańsk, 01. 06. 2010 Wydział eti pg tematy prac dyplomowych magisterskich do realizacji w r ak. 2010/2011 dla specjalności Systemy Mikroelektroniczne
katedry -> Katedra Systemów Mikroelektronicznych Gdańsk, 14. 05. 2012 Wydział eti pg tematy prac dyplomowych magisterskich do realizacji w r ak. 2012/2013 dla specjalności Systemy Mikroelektroniczne
katedry -> Wydział Humanistyczny agh rok akademicki: 2009/2010 Kierunek: kulturoznawstwo II rok studiów licencjackich, stacjonarne Wykład z elementami konwersatorium Tytuł przedmiotu: Teoria literatury
katedry -> Podstawy biologii – dr Beata Zalewska-Piątek seminarium
katedry -> Hodowla mikroorganizmów rekombinantowych produkcja białek w komórkach drożdży Pichia pastoris
katedry -> Spis publikacji katedry Mikrobiologii od 1981


1   2   3   4   5   6   7   8


©absta.pl 2019
wyślij wiadomość

    Strona główna