Pomoce:

Historia komputerów
Historia Konrada Zuse
Komputery Konrada Zuse
Historia mikroprocesora Intel 4004

Języki wysokiego poziomu

Pierwsze komputery nie przypominały dzisiejszych maszyn. Były duże, wolne i zawodne. Programowanie takich maszyn jak na poniższym obrazku wymagało bezpośredniego sterowania jednostką centralną maszyny przy pomocy sekwencji kodów binarnych.

obrazek

Komputer Z3 Konrada Zuse.

Kody te umieszczano na dostępnych wtedy nośnikach - np. taśmach perforowanych. Układ dziurek odpowiadał stanom bitów w rozkazie dla procesora i oznaczał określoną operację - np. dodawanie, mnożenie, pierwiastkowanie, itp.

obrazek
K. Zuse wykorzystywał stare taśmy filmowe.

Możemy sobie jedynie wyobrazić, jak żmudną pracą było napisanie nawet krótkiego programu. Aby przezwyciężyć te trudności w latach 50-tych ubiegłego wieku zaczęto wprowadzać różne ułatwienia w programowaniu komputerów. Pierwszym było zastosowanie języka symbolicznego dla rozkazów procesora - tzw. asemblera. Każda wykonywana przez procesor operacja była zapisywana za pomocą kilkuliterowych słów, tzw. mnemoników. Program stał się czytelniejszy dla ludzi - zamiast kodów binarnych, proste nazwy operacji. Np:

Kod binarny instrukcji Asembler
010110100101010
111010101000111
100101011010110
001110101010111
...
LDA #10
ADD (C)
MUL (D)
STA (A)
...

Oczywiście takie rozwiązanie skomplikowało sprawę od strony komputera - tworzony program nie mógł być bezpośrednio wykonany, należało go najpierw zamienić na odpowiedni ciąg binarnych instrukcji. Pracę tą wykonuje asembler - specjalny program tłumaczący, który na wejściu dostaje tekst programu z mnemonikami, a na wyjściu produkuje program wykonywalny dla procesora maszyny cyfrowej. Asemblery stosujemy do dziś. Jednakże ich wykorzystanie napotyka na duże trudności - wymagają od programisty bardzo szczegółowej wiedzy na temat programowanego komputera oraz znajomości najdrobniejszych detali wykonywanych operacji. Napisanie dużego programu w asemblerze jest zatem bardzo kosztowne i wolne - programy takie są również nieprzenośne na inne komputery, których lista rozkazów różni się od listy rozkazów programowanego komputera. Dlatego z asemblera korzysta się tylko wtedy, gdy program musi być bardzo zwarty, szybki i niezwykle efektywny.

Asembler jest tzw. językiem niskiego poziomu - LLL (ang. Low Level Language). Operuje on bezpośrednio na sprzęcie komputera. Dla "zwykłych programistów" opracowano języki bliższe człowiekowi - tzw. języki wysokiego poziomu - HLL (ang. High Level Language). Charakteryzują się one tym, iż stosują bardziej naturalny dla człowieka system opisu wykonywanych operacji, np. zbliżony do zapisu algebraicznego. Dzięki temu rośnie czytelność programu, a co za tym idzie - szybkość jego tworzenia i uruchamiania. Np.

 

HLL LLL LLL
a = (b + c) * d + 15
...
LDA (B)
ADD (C)
MUL (D)
ADD #15
STA (A)
...
100101001010101001
010101110110101011
001011101000001110
100101000101011111
010101010010101001
...

Języki HLL posiadają tę samą wadę co asemblery - program nie może być bezpośrednio wykonany przez procesor - musi zostać przekształcony na ciąg instrukcji binarnych. Często jedna instrukcja języka HLL odpowiada ciągowi instrukcji procesora. Operacji translacji dokonuje specjalny program zwany kompilatorem języka HLL (ang. HLL compiler). Na wejściu kompilator otrzymuje tekst programu w języku wysokiego poziomu, następnie dokonuje analizy tego tekstu i na jej podstawie tworzy na wyjściu program zawierający instrukcje binarne procesora. Proces ten nosi nazwę kompilacji:

tekst źródłowy HLL →  KOMPILATOR  → program wynikowy

Proces kompilacji.

Język C++ jest językiem HLL wymagającym kompilacji. W naszym środowisku Code Blocks zastosowany jest bardzo dobry kompilator języka C++ o nazwie Mingw - Minimalist GNU for Windows. Proces tworzenia programu w języku C++ składa się z trzech etapów:

  1. Tworzenie programu źródłowego, czyli tekstu programu - operację tę wykonuje się w edytorze.

  2. Kompilacja programu źródłowego.

  3. Uruchomienie programu wynikowego.


   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2024 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

W artykułach serwisu są używane cookies. Jeśli nie chcesz ich otrzymywać,
zablokuj je w swojej przeglądarce.
Informacje dodatkowe