03 elementy jezykow programowania

background image

Języki programowania II

Elementy języków programowania

Olsztyn 2005

Wojciech Sobieski

background image

Elementy JP

Języki programowania wymyślono po to, by można było dzięki nim
tworzyć różnorodne programy komputerowe. Oczekuje się również, że
tworzone aplikacje będą wykonywać swoje zadania w sposób
jednoznaczny i zgodny z określoną na etapie projektowania specyfikacją
wymagań - języki programowania muszą się więc opierać na ogólnie
obowiązujących zasadach logiki i arytmetyki. Z tego też względu, można
wyodrębnić w strukturach różnych języków szereg elementów
uniwersalnych, spełniających w nich analogiczną rolę.

background image

Elementy JP

1. Ściśle określony zbiór znaków i symboli.

Używanie znaków niedozwolonych spowoduje wystąpienie błędów
podczas translacji kodu źródłowego. Zakres znaków obejmuje duże i małe
litery alfabetu (rozróżniane bądź nie), cyfry oraz znaki specjalne i symbole
wieloznakowe. Mimo, że wiele języków programowania posiada podobny
zestaw znaków dopuszczalnych, niektóre z nich mogą mieć zupełnie inne
znaczenie. Przykładem może być znak “//” - w FORTRANIE służący do
łączenia łańcuchów tekstowych, zaś w PASCALU do oznaczenia wiersza
komentarza.

background image

Elementy JP

Zestaw znaków i symboli dopuszczalnych

w językach Fortran G77 oraz Free Pascal.

background image

Elementy JP

2. Skończona (zazwyczaj) liczba słów kluczowych i deklaratorów.

Słowa kluczowe są to określone zbiory znaków posiadające konkretne
znaczenie dla translatora (najczęściej są to wyrazy z języka angielskiego,
np. WRITE, READ, PROGRAM, FOR, DO, PROCEDURE, FUNCTION,
itd.).

background image

Elementy JP

Zestaw słów kluczowych występujących

w językach Fortran G77 oraz Free Pascal.

background image

Elementy JP

Bardzo często edytory kodu źródłowego stosują wyróżnienia dla słów
kluczowych (pogrubienie czcionki lub kolory), co ułatwia jego pisanie i
zmniejsza prawdopodobieństwo wystąpienia błędu. W przypadku braku
automatycznego wyróżnienia należy stosować duże i małe litery, np.
instrukcje pisać dużymi literami, a inne nazwy małymi. Nazwy takie jak
SIN, COS, LOG, MOD, itd. nie są słowami kluczowymi lecz nazwami
funkcji wewnętrznych. Oprócz słów kluczowych w językach
programowania występują również deklaratory, czyli słowa
odpowiadające za określanie obiektów lub ich właściwości.

background image

Elementy JP

Edi

background image

Elementy JP

ConText

background image

Elementy JP

3. Ściśle określona struktura i zasady pisania kodu źródłowego.

Kod źródłowy składa się z przynajmniej jednego modułu (programu),
który musi mieć sztywno określoną budowę. Moduł musi posiadać
wyraźnie określony początek i koniec, obszary deklaracji obiektów i
typów występujących zmiennych oraz obszary zawierające bloki
instrukcji, funkcji lub procedur. Budowa kodu źródłowego zależy w
decydujący sposób od rodzaju języka i sposobu realizacji drogi punktu
sterowania.

Zasady pisania kodów źródłowych w językach

Fortran G77 oraz FreePascal.

background image

Elementy JP

Fortran

Pascal

1.Używanie jedynie znaków dopuszczalnych.

2.Brak rozróżnienia znaków pisanych małą lub

wielką literą.

3.Znaków narodowych nie należy używać

(nawet w komentarzach).

4.Nazwy (identyfikatory) stałych, zmiennych,

podprogramów, funkcji, itp. powinny
zaczynać się od litery i nie powinny być
dłuższe niż 6 znaków (słowa kluczowe mają
budowę identyfikatorów, ale mogą być
dłuższe).

5.Treść instrukcji wpisuje się między 7 a 72

kolumną. Nie ma obowiązku zaczynania od 7
kolumny. Znaki za 72 kolumną są ignorowane.

6.Odstępy umieszczane w instrukcjach są

ignorowane – nie ma różnicy pomiędzy np.
GOTO i GO TO.

1.Używanie jedynie znaków dopuszczalnych.

2.Brak rozróżnienia znaków pisanych małą lub

wielką literą.

3.Znaków narodowych nie należy używać

(nawet w komentarzach).

4.Nazwy (identyfikatory) stałych, zmiennych,

podprogramów, funkcji, itp. powinny
zaczynać się od litery – długość dowolna.

5.Treść instrukcji wpisuje się w dowolnej

kolumnie.

6.Odstępy umieszczane w instrukcjach są

ignorowane – nie ma różnicy pomiędzy np.
x:=4 a x := 4.

background image

Elementy JP

Fortran

Pascal

7.W celu zwiększenia czytelności programu
należy stosować wcięcia – szczególnie podczas
stosowania instrukcji zagnieżdżonych.

8.W jednym wierszu może znajdować się tylko
jedna instrukcja.

9.Instrukcje przypisania realizowane są za
pomocą znaku „=”.

10.Na końcu wiersza nie stawia się żadnego
znaku.

11.Poszczególne bloki programu zaczynają się
i kończą w dowolny sposób.

12.Główny blok programu rozpoczyna się
słowem PROGRAM z nazwą, a kończy
słowem END. Po END nie stawia się kropki

13.Warunki arytmetyczne i logiczne określone
są znakami literowymi.

7.W celu zwiększenia czytelności programu
należy stosować wcięcia – szczególnie podczas
stosowania instrukcji zagnieżdżonych.

8.W jednym wierszu może znajdować się kilka
instrukcji, np. if x=1 then y:=1 else y:=2;.

9.Instrukcje przypisania realizowane są za
pomocą znaku „:=”.

10.Na końcu wiersza zazwyczaj jest średnik.

11.Poszczególne bloki programu zaczynają się
i kończą w dowolny sposób, ale muszą być
umieszczone między słowami BEGIN i END.

12.Główny blok programu rozpoczyna się
słowem PROGRAM z nazwą, a kończy
słowem END z kropką na końcu.

13.Warunki arytmetyczne określane są
znakiem „=”.

background image

Elementy JP

Fortran

Pascal

14.Jedna instrukcja może zajmować
maksymalnie 20 wierszy, przy czym pierwszy
wiersz nazywa się wierszem początkowym, a
pozostałe wierszami kontynuacji. Każdy
wiersz kontynuacji należy zaznaczyć poprzez
umieszczenie w szóstej kolumnie znaku
różnego od zera i spacji.

15.W programie należy umieszczać
komentarze – zaczynają się one znakiem „*”,
„C” lub „!”. Komentarze można dodawać na
początku linii lub w dowolnym jej miejscu.
Wiersze z samymi spacjami traktowane są jak
wiersze komentarzy.

16.W kolumnach 1-5 można wpisywać tzw.
etykiety – niepowtarzalny ciąg cyfr –
identyfikujące określone miejsce w programie.

14.Jedna instrukcja może zajmować dowolną

liczbę wierszy.

15.W programie należy umieszczać

komentarze. Bloki komentarza ujmuje się w
nawiasy klamrowe:
{
komentarz...
}

16.Brak etykiet (istneje możliwość

zaznaczania miejsc w kodzie poleceniem
LABEL).

background image

Elementy JP

Fortran

Pascal

17.Numery etykiet powinny być nadawane w
odstępach (standardowo co 10) – daje to
możliwość dopisania nowych etykiet
pomiędzy już istniejące.

18.W programie najpierw umieszcza się
deklaracje a dopiero po nich instrukcje.

19.Deklaracja zmiennych: typ nazwa

20.Zmienne są lokalne, tzn. obowiązują w
obszarze jednego modułu. Wymiana wartości
odbywa się poprzez odpowiednie instrukcje.

21.Podczas pisania programów należy dążyć
do zminimalizowania liczby zmiennych.

22.Należy dbać o przejrzystość i czytelność
kodu – dlatego też zaleca się stosowanie
podprogramów i funkcji.

17.-

18.W programie najpierw umieszcza się
deklaracje a dopiero po nich instrukcje.

19.Deklaracja zmiennych: nazwa : typ

20.Zmienne mogą być lokalna oraz globalne
(zależy to od miejsca deklaracji).

21.Podczas pisania programów należy dążyć
do zminimalizowania liczby zmiennych.

22.Należy dbać o przejrzystość i czytelność
kodu – dlatego też zaleca się stosowanie
podprogramów i funkcji.

background image

Elementy JP

4. Występowanie zasady jednoznaczności identyfikatorów w obrębie
jednego projektu.

Identyfikatory są to nazwy programów, modułów, bloków,
podprogramów, procedur, funkcji i zmiennych. Ponieważ działanie
każdego programu oparte jest na pewnych logicznych zasadach, nie może
dochodzić do sytuacji, w których translator nie wie o jaki moduł, funkcję
czy procedurę chodzi. Większość języków programowania kontroluje,
przynajmniej w podstawowym zakresie, nazwy poszczególnych struktur i
zgłasza błędy o powtarzających się nazwach lub ich błędnej budowie.

background image

Elementy JP

Przykłady poprawnego i błędnego deklarowania nazw

w językach Fortran G77 oraz Free Pascal.

background image

Elementy JP

5. Konieczność komunikacji z użytkownikiem.

Potrzeba taka dotyczy również innych urządzeń komputera, a także zapisu
i odczytu danych z plików. Czynności takie nazywane są operacjami
wejścia-wyjścia. Standardowo do komunikacji z użytkownikiem służy
klawiatura (ewentualnie myszka) i monitor. Pobieranie danych z
klawiatury (lub pliku) wymaga wcześniejszego zadeklarowania typu
zmiennej (chyba, że istnieje możliwość niejawnej deklaracji typu) -
wprowadzany typ będzie wówczas jednoznaczny i zgodny z
oczekiwaniami. Podczas wyprowadzania danych na monitor (lub do pliku)
należy ustalić ich format (wygląd). Podczas zapisu (odczytu) danych do
pliku należy dodatkowo określić rodzaj pliku.

background image

Elementy JP

6. Potrzeba sterowania formatem (wyglądem) zmiennych.

Formatowanie jest dokonywane podczas wyprowadzania wartości danych
na ekran monitora lub podczas zapisu do plików. Formatowanie
zmiennych nie zawsze jest konieczne (każdy język programowania
posiada domyślne sposoby zapisu poszczególnych typów zmiennych) ale
może być bardzo przydatne – można zażądać, aby wszystkie liczby miały
tą samą ilość znaków i były zapisane np. w postaci wykładniczej o
określonej liczbie cyfr po przecinku.

background image

Elementy JP

7. Konieczność jawnego lub niejawnego deklarowania typów zmiennych.

Rozróżnia się typ całkowity, rzeczywisty, zespolony, tekstowy, logiczny i
inne. Zależnie od języka, poszczególne typy mogą mieć wiele odmian.
Oprócz typów prostych, wiele języków umożliwia tworzenie własnych
typów lub struktur danych o bardziej złożonej budowie. Odpowiednie
dobranie typów zmiennych pozwala zaoszczędzić pamięć operacyjną oraz
skrócić czas wykonywania obliczeń. Często istnieje konieczność
konwersji typów, czyli zamiany zawartości jednego typu na inny.

background image

Elementy JP

Należy pamiętać, że nie każdy rodzaj konwersji jest możliwy
(przykładowo: nie da się zamienić łańcucha liter na liczbę) i że nie zawsze
konwersja jest dokładna (np. podczas konwersji zmiennej rzeczywistej na
całkowitą traci się część ułamkową). Konwersję wykorzystuje się między
innymi podczas używania kodów ASCII (często stosowane w
FORTANIE), wyprowadzania danych na ekran monitora (OBJECT
PASCAL) lub dostosowywania do innych standardów danych (np.
konwersja typów STRING i PCHAR w języku OBJECT PASCAL).

background image

Elementy JP

Typy występujących zmiennych oraz ich zakresy

w języku Fortran G77.

background image

Elementy JP

Typy występujących zmiennych oraz ich zakresy

w języku Free Pascal.

background image

Elementy JP

8. Potrzeba wymiany danych między różnymi modułami (podprogramami,
funkcjami i procedurami).

Sposób wymiany danych (wartości zmiennych) zależy w dużej mierze od
organizacji i struktury konkretnego języka programowania. Podstawowe
metody to:

deklarowanie wspólnych bloków pamięci,

deklarowanie wspólnych adresów pamięci,

deklarowanie bloków zawierających zbiory zmiennych

przenoszenie wartości zmiennych w nagłówkach nazw
procedur i funkcji,

podział zmiennych na zmienne lokalne i publiczne,

ładowanie pliku wejściowego,

wykorzystanie plików (zapis i odczyt).

background image

Elementy JP

9. Potrzeba wykonywania działań na zmiennych.

Rozróżnia się trzy podstawowe rodzaje zmiennych: liczbowe, tekstowe i
logiczne, przy czym każda grupa wymaga innego podejścia. Zdarza się, że
języki programowania (szczególnie starsze) są ukierunkowane na jeden
rodzaj danych. Działania na zmiennych wymagają stosowania operatorów,
relacji, wyrażeń, instrukcji, funkcji lub procedur.

background image

Elementy JP

10. Potrzeba wykonywania działań na plikach.

Bardzo często programy komputerowe odczytują pewne dane z plików,
przekształcają je lub na ich podstawie obliczają nowe dane, a następnie
zapisują wyniki do pliku. Język programowania powinien nie tylko
umożliwiać zapis i odczyt, ale także wykonywanie podstawowych działań
na plikach (tworzenie, kasowanie, przenoszenie czy zmiana nazwy).
Zależnie od rodzaju języka i jego implementacji możliwości w tym
zakresie są bardzo zróżnicowane.

background image

Elementy JP

11. Potrzeba komunikacji z systemem operacyjnym.

Przydatnym elementem języka programowania jest możliwość korzystania
w funkcji systemu operacyjnego. Jest to zazwyczaj możliwe na dwa
sposoby:

język posiada własne instrukcję odpowiadające poleceniom

systemu operacyjnego (ale i tak przeważnie w jakiś sposób z
nich korzysta),

język posiada mechanizm wywoływania poleceń

systemowych i ich parametrów.

background image

Elementy JP

12. Potrzeba zarządzania pamięcią operacyjną komputera.

Istnieją dwa podstawowe rodzaje zarządzania pamięcią: statyczne i
dynamiczne. Zarządzanie statyczne polega na ścisłym przydzielaniu
zmiennym określonej ilości pamięci operacyjnej (identyfikowanej tzw.
adresami), przy czym ilość ta zależna jest od zadeklarowanego typu
zmiennej. Ilość przydzielonej pamięci nie może się już zmienić – wskutek
czego nie można np. zadeklarować tablicy o nieznanym z góry rozmiarze.
Zarządzanie dynamiczne nie posiada takich ograniczeń, a pamięć
operacyjna przydzielana jest automatycznie, w zależności od potrzeb.

background image

Elementy JP

13. Potrzeba obsługi błędów (wyjątków).

Jest to konieczne ze względu na dwa podstawowe czynniki: niemożność
przewidzenia wszystkich działań użytkownika oraz możliwość
wystąpienia awaryjnych stanów pracy komputera (np. uszkodzenie pliku,
nośnika danych, systemu operacyjnego).

background image

Zmienne i stałe

Zmienna - jest to symboliczna nazwa komórki w pamięci operacyjnej
komputera i służy do zapisu wartości liczbowej, tekstowej, logicznej, itd.
Zmienne są podstawowym elementem algorytmu obliczeniowego.
W czasie działania programu wartości przypisane zmiennym mogą się
dowolnie zmieniać, zależnie od wykonywanych operacji. Zmienne są
rozróżniane po nazwach, czyli tzw. identyfikatorach. Nadanie wartości
zmiennym odbywa się poprzez instrukcję przypisania – bezpośrednio
podczas deklaracji typu lub później (zależy to od języka programowania).

background image

Zmienne i stałe

Zmienna indeksowana (tablica) – zmienna zawierająca nie jedną wartość
lecz cały ich zbiór. W przypadku zmiennych indeksowanych oprócz
deklaracji typu należy podać jej wymiar. Służy do zapisywania list,
wektorów i tablic. Maksymalna ilość wymiarów zmiennej indeksowanej
jest zależna od języka programowania.

background image

Zmienne i stałe

Stała – jest to symboliczna nazwa komórki w pamięci operacyjnej
komputera i również służy do zapisu określonej wartości. Różnica
pomiędzy zmienną a stałą jest taka, że wartości stałej nie można zmienić
podczas wykonywania obliczeń. Deklaracja stałej i nadanie wartości
realizuje się odpowiednią instrukcją.

background image

Zmienne i stałe

Podział zmiennych i stałych ze względu na typ:

zespolone,

rzeczywiste,

całkowite,

logiczne,

walutowe,

daty lub czasu,

tekstowe.

Podział zmiennych i stałych ze względu na sposób deklaracji:

deklarowane jawnie,

deklarowane niejawnie.

background image

Zmienne i stałe

Podział zmiennych i stałych ze względu na dokładność (dotyczy
zmiennych zespolonych i rzeczywistych):

o pojedynczej precyzji,

o podwójnej precyzji.

Podział zmiennych i stałych ze względu na strukturę:

prosty,

indeksowany (wektory i tablice).

background image

Zmienne i stałe

Podział zmiennych i stałych ze względu na ilość zajmowanej pamięci:

o określonej ilości bajtów (1, 2, 4, 6, 8 lub 10 bajtów),

o dowolnej ilości bajtów.

Podział zmiennych i stałych ze względu na sposób przydziału pamięci:

statyczne,

dynamiczne.

background image

Wyrażenia

Wyrażenia arytmetyczne – służą do obliczania wartości zmiennych
liczbowych na podstawie wzorów matematycznych.

W wyrażeniach arytmetycznych mogą wystąpić następujące elementy:

stałe arytmetyczne,

odwołania do zmiennych,

odwołania do elementów tablic,

wywołania funkcji wewnętrznych i zewnętrznych.

background image

Wyrażenia

Wyrażenia realizowane są przy pomocy operatorów (znaków dodawania,
odejmowania, mnożenia, dzielenia i potęgowania) oraz funkcji
(wewnętrznych i zewnętrznych). Podczas tworzenia wyrażeń
arytmetycznych należy zwrócić uwagę na typ wyniku, szczególnie w
przypadku, gdy w wyrażeniu biorą udział zmienne różnych typów.

Kolejność wykonywania operacji zależy od priorytetu operatora, wg
kolejności: potęgowanie, mnożenie i dzielenie oraz dodawanie i
odejmowanie. Kolejność wykonywania działań można dowolnie zmienić
stosując nawiasy.

background image

Elementy JP

Rodzaje operatorów arytmetycznych

w językach Fortran G77, Free Pascal, BASIC i C++.

Fortran

+ - * / **

Pascal

+ - * / ** div mod shl shr

BASIC

+ - * / ↑ (**)

C++

+ - * / * % ++ -- << >>

background image

Wyrażenia

Wyrażenia tekstowe – służą do przetwarzania zmiennych tekstowych (np.
tworzenie podłańcuchów) oraz do zbierania określonych informacji (np.
określanie długości łańcucha, położenia określonego znaku w łańcuchu,
itp.). Elementami wyrażeń tekstowych są:

stałe i zmienne tekstowe,

podłańcuchy,

wywołania funkcji tekstowych.

background image

Wyrażenia

Wyrażenia relacji – służą do porównania wartości dwóch wyrażeń
arytmetycznych lub logicznych. Dostępne operatory relacji to znaki:

mniejsze niż,

mniejsze lub równe,

równe,

nierówne,

większe lub równe,

większe niż.

background image

Wyrażenia

Operatory relacji mogą być zapisywane symbolami matematycznymi lub
tekstowymi w zależności od języka programowania. Często zdarza się, że
operator relacji nie pokrywa się z operatorem przypisania - poniżej
przedstawiony jest przykład:

background image

Wyrażenia

Wyrażenia logiczne – służą do wyznaczania wartości logicznej typu
PRAWDA lub FAŁSZ. Elementami wyrażenia logicznego są:

stałe i zmienne logiczne,

elementy tablic logicznych,

wywołania funkcji logicznych,

wyrażenia relacji.

Najczęściej stosowane operatory logiczne to:

negacja,

koniunkcja,

alternatywa,

tożsamość,

nie tożsamość.

background image

Wyrażenia

Podane operatory zostały uporządkowane według priorytetów, czyli
kolejności w jakiej wykonywane są operacje podczas wyznaczania
wartości wyrażenia logicznego. Argumenty operatorów logicznych muszą
być typu logicznego. Kiedy dwa następujące po sobie w wyrażeniu
operatory mają równe priorytety, to najpierw wykonywana jest operacja
stojąca z lewej strony. Operator negacji poprzedza argument, pozostałe
operatory wymagają podania dwóch argumentów w porządku (operator w
środku). Jeżeli w jakimś wyrażeniu występują jednocześnie operatory
arytmetyczne, relacji i logiczne, to kolejność wykonywania działań jest
następująca:

operacje arytmetyczne,

operacje relacji,

operacje logiczne.

background image

Wyrażenia

Tabela wyrażeń logicznych.

background image

Olsztyn 2005

Dziękuję za uwagę

Wojciech Sobieski


Wyszukiwarka

Podobne podstrony:
elementy językoznawstwa cz I
programowanie imprez turystycznych 13.03.2011, GWSH, programowanie imprez turystycznych
Elementy indywidualnego programu resocjalizacji i jego zadania
TOB 03 - Elementy RLC w obwodach pradu sinusoidalnie zmiemmego
Wykłady Maćkiewicza, 2008.03.05 Językoznawstwo ogólne - wykład 15, Językoznawstwo ogólne
07 gestalt - kognitywizm 23.02.2007 - 02.03.2007, JĘZYKOZNAWSTWO, Notatki
Cwiczenie 03 - Elementy RLC w obwodach pradu sinusoidalnie zmiemmego
03 elementy termodynamiki
03 53 ustanowienie programu regionalnej pomocy publiczne
Elementy językoznawstwa 11 12
JS 03 Zmienne i Typy, Programowanie, instrukcje - teoria
03 Baza danych w programie Access
elementy algorytmu programu kolektorek
Algorytmy poszukiwania i porzadkowania elementy jezyka programowania prezentacja 3
Wykłady Maćkiewicza, 2008.03.17 Językoznawstwo ogólne - wykład 17, Językoznawstwo ogólne

więcej podobnych podstron