Konspekt progr, Podstawy programowania


Tomasz Bajorek

Podstawy programowania
w języku Turbo Pa
scal

  1. Środowisko zintegrowanego pakietu programowania języka
    TU
    RBO PASCAL (7.0).

    1. Wstęp.

Historia praktycznego wykorzystania języków programowania ma kilkadziesiąt lat, choć podstawy teoretyczne algorytmicznego sterowania automatami cyfrowymi są znacznie starsze. Do połowy lat 50-tych panował język maszynowy (komputery Eniac, Mark I). Kodowanie instrukcji procesora odbywa się w postaci ciągu liczb dwójkowych (elementarny rozkaz i dane), co jest bardzo pracochłonne (same liczby, długie algorytmy działań takich jak dodawanie i mnożenie) i powoduje trudność śledzenia błędów. W latach 50-tych zastąpiono kody operacji nazwami mnemotechnicznymi elementarnych operacji (np. mnożenie MPY (multiply), taki język symboliczny zwany jest assemblerem. Assembler to także program tłumaczący na kod maszynowy (wewnętrzny), program dissassembler przeprowadza tłumaczenie odwrotne. Stosowany jest do dziś - np. w oprogramowaniu interfejsów pomiarowych, wprowadzaniu danych z pomiarów, ich obróbka komputerowym przetwarzaniu itp. Cechami assemblera są: zmniejszona ale nadal duża pracochłonność tworzenia algorytmów, możliwość błędów (prawie każda kombinacja znaków można być wykonana), ukierunkowanie na konkretny komputer (procesor) dla którego program był pisany, wąski zbiór rozkazów (prymitywna architektura ówczesnych komputerów, brak rejestrów, brak operacji zmiennoprzecinkowych).

Pod koniec lat 50-tych zapanował etap tzw. języków wysokiego poziomu (kod maszynowy i assembler to niski poziom - bliższy procesorowi). Zapis operacji wykonywanych przez program jest tu łatwiejszy dla programisty, zrozumiały i dobrze kontrolowany. Po stworzeniu kodu źródłowego programu w języku wysokiego poziomu następuje proces tłumaczenia na język wewnętrzny komputera: w całości (kompilacja) i dopiero jego wykonanie, lub też dla niektórych języków (np. Basic, LOGO) kod źródłowy jest tłumaczony w czasie wykonania instrukcja po instrukcji (interpretacja).

Języki wysokiego poziomu po etapie początkowym stały się maszynowo niezależne z powodu wielu wersji kompilatorów (programów kompilujących).

W kolejnych latach nastąpiła obfitość języków programowania. Najważniejsze to:

Klasyfikacja języków programowania:

Świat rzeczywisty lub abstrakcyjny reprezentowany jest przez dane, na których wykonywane są operacje. Aby opisać dane i operacje potrzebne są ustalone umowy, tworzące tzw. język formalny - zbiór słów nad określonym alfabetem.

Język programowania - zbiór konwencji i umów umożliwiających komunikatywność zapisu i ich zrozumiałość dla kompilatora.

Określa się przy tym:

Błędy składniowe - np. pominięcie słowa kluczowego instrukcji lub jego przekręcenie,

Błędy semantyczne - np. zły typ danych, licznik pętli nie jest typu całkowitego itp.

Jeżeli spełnione są warunki, iż:

- syntaktyka pozwala na analizę poprawności konstrukcji językowych,

- opis języka obejmuje pragmatykę (zalecenia do używania poprawnych struktur)

to język formalny może być językiem programowania.

Definicja algorytmu:

ALGORYTM - skończony zbiór ściśle określonych zasad rozwiązywania pewnej klasy zadań, przepis - specyfikacja ciągu operacji, które w wyniku działania na wejściowy zbiór obiektów dają zbiór wynikowy.

Opis algorytmu składa się z:

- opisu obiektów podlegających przetwarzaniu,

- opisu czynności wykonywanych na tych obiektach.

deklaracje, definicje - są to opisy obiektów używanych w programie,

instrukcje - czynności na obiektach,

program - algorytm zapisany w języku programowania,

podprogram - wyodrębniona część programu (ze względu na zwiększenie czytelności lub umożliwienie jego wielokrotnego użycia), posiadająca wyodrębnioną nazwę i sposób wymiany informacji z pozostałymi jego częściami,

deklaracja podprogramu - opis podprogramu,

instrukcja wywołania podprogramu - wykonanie, zastosowanie podprogramu wewnątrz programu głównego lub innego podprogramu

Język PASCAL (autor Nicklaus Wirth, lata 70-te) posiada następujące cechy:

Sposoby pisania programu:

0x01 graphic

Rys.1. Etapy programowania.