wyklad7

advertisement
Jezyk programowania
Algorytm, dokładny przepis podający sposób rozwiązania określonego zadania w
skończonej liczbie kroków; zbiór poleceń odnoszących się do pewnych obiektów, ze
wskazaniem porządku, w jakim mają być realizowane. Nabrał znaczenia z rozwojem
informatyki, gdzie opisuje logiczny ciąg operacji, które ma wykonać program.
Algorytm zapisany przy pomocy języka programowania jest programem.
Wyróżnia się algorytmy numeryczne, operujące na liczbach (np. algorytm
Euklidesa), i nienumeryczne, operujące na obiektach nieliczbowych (np. sortowanie
dokumentów). Istnieje również podział algorytmów na sekwencyjne (kolejność
czynności jest określona jednoznacznie) i niesekwencyjne (równoległe, współbieżne
- następstwo między pewnymi operacjami nie jest określone). Algorytmy
charakteryzują się możliwością wyrażania ich w różnych językach i przez skończoną
liczbę symboli, bez odwoływania się do analogii, a także faktyczną wykonalnością i
możliwością wielokrotnej realizacji. Termin algorytm wywodzi się od zlatynizowanej
formy (Algorismus, Algorithmus) nazwiska matematyka arabskiego z IX w., AlChuwarizmiego.
Dekompilacja (angielskie decompilation, deassembling), odtworzenie postaci
źródłowej programu na podstawie jego kodu wynikowego. Dekompilacja nie
odtworzy, co oczywiste, komentarzy i układu tekstu źródłowego programu.
Stosowanie dekompilacji może rodzić problemy prawne.
Interpreter, interpretator (angielskie interpreter),
1) translator przekładający instrukcje programu na kod pośredni, który następnie
interpretuje przy każdym ich wykonaniu. Ponieważ interpreter nie tworzy przekładu w
kodzie maszynowym, lecz wykonuje instrukcje, tłumacząc je na bieżąco za każdym
razem, wykonanie programu znacznie się wydłuża. Interpreter nie zmusza z kolei do
oczekiwania na wykonanie kompilacji po każdej zmianie programu. Typowymi
interpreterami są systemy programowania Basic, Java, Perl;
2) czynnościowy wzorzec projektowania, w którym rozpatruje się automatyczne
zbudowanie zbioru klas interpretujących zdania języka na podstawie jego gramatyki i
opisów semantycznych.
Basic, BASIC (z angielskiego Beginners All-purpose Symbolic Instruction Code),
przełomowy w chwili powstania w 1964, potem mocno krytykowany za brak
strukturalności, prosty, interpretowany język programowania, spopularyzowany w
komputerach ośmiobitowych i kalkulatorach programowanych. Jego twórcy – J.
Kemeny i T. Kurtz (Dartmouth College, USA) – przedstawili go jako rewolucyjną
propozycję wobec języków algolopodobnych. Basic z założenia nadawał się do
pracy interakcyjnej i miał ujmować prostotą (m. in. brak typów, numerowane
instrukcje ułatwiały redagowanie programu).
Pierwsze implementacje Basica były wykonywane na minikomputerach, a nawet na
komputerach stacjonarnych (m. in. na polskich komputerach ODRA 1204 i ODRA
1305, także w wersji kompilowanej). Oprzyrządowany w podstawowe operacje
plikowe Basic na długo stał się nie tylko podstawowym językiem mikrokomputerów,
lecz także ich systemem operacyjnym. Mimo przydatności do programowania
doraźnego w małej skali, oryginalny Basic został odrzucony jako nieprzystosowany
do nauczania początkowego informatyki i wyparty przez strukturalny język Logo.
Odrodzony i zmetamorfozowany zarówno pod względem struktur sterowania i
danych, jak i interfejsu systemowego Basic znajduje szerokie zastosowanie w
programowaniu aplikacji dla komputerów typu IBM PC pod postacią platformy
programowania RAD o nazwie VisualBasic. W tym nowoczesnym produkcie z
Basica pozostała głównie nazwa.
C, proceduralny język programowania wysokiego poziomu, zaprojektowany w 1972
przez D. M. Ritchiego i zrealizowany pod systemem operacyjnym UNIX dla
komputera PDP-11. Początkowo C był językiem oprogramowania systemowego
(powstał jako język do przeprogramowania systemu UNIX). Szybko zyskał
popularność jako uniwersalny język programowania.
Cechami języka C są zwięzłość i elastyczność, przy jednoczesnym przerzucaniu
dużej odpowiedzialności na programistę (nie ma np. wbudowanej kontroli
indeksowania tablic). “Język C jest jak ostry nóż: w sprawnych rękach narzędzie
proste i użyteczne, które jednak może skaleczyć nowicjusza” (Koenig). W latach
1983-1988 język C uległ standaryzacji. Znormalizowany język C nosi nazwę ANSI C.
Fortran, FORTRAN (angielskie FORTRAN, FORmula TRANslator), jeden z
pierwszych szeroko używanych, algorytmicznych języków programowania,
opracowany przez J. Backusa w 1957. Po wielu unowocześnieniach i zmianach
(Fortran 77, Fortran 90) stosowany do dzisiaj.
Język Fortran powstał jako wynik wczesnych doświadczeń w programowaniu
komputerów za pomocą autokodów z lat 1951-56. Pierwszą implementację Fortranu
wykonano dla maszyny IBM-704. W 1958 powstała wersja Fortran II wprowadzająca
możliwość kompilacji niezależnej (IBM-704), a w 1959 jej odpowiednik dla
komputera IBM-709. Kolejna wersja Fortranu nosiła nazwę XTRAN, jej autorzy
weszli w skład grupy projektującej język Algol 58.
Wersja Fortran IV nosiła już wyraźny wpływ języka Algol. W latach sześćdziesiątych
XX w. IBM-owski Fortran spopularyzował się na komputerach różnych typów. Do
końca lat siedemdziesiątych szeroko użytkowany jako język obliczeń inżynierskich i
naukowych. Dostępny również na komputerach osobistych.
Java, popularny język programowania obiektowego autorstwa J. Goslinga,
zaprojektowany w firmie Sun Microsystems, używany szeroko do
oprogramowywania specjalizowanych mikroprocesorów, wzbogacania prezentacji
danych zawartych w dokumentach HTML, pamiętanych w komputerach sieci Internet
oraz do opracowywania samodzielnych aplikacji wielowątkowych i rozproszonych.
Kompilatory języka Java produkują bajtokod, który nadaje się do interpretacji
Język programowania, zbiór zasad składni, instrukcji, dzięki którym powstaje kod
źródłowy programu. Procesor jest w stanie wykonywać program w kodzie
maszynowym. Jednakże tworzenie programów w tym języku jest praktycznie
niemożliwe. Dlatego programista używa języka zrozumiałego dla człowieka, który
następnie jest kompilowany bądź interpretowany do postaci maszynowej.
Istnieje wiele rodzajów języków programowania. Można je podzielić na języki
strukturalne i obiektowe. Innym kryterium podziału jest zastosowanie języków
(innych używa się do tworzenia programów multimedialnych, a innych do obliczeń
numerycznych czy np. aplikacji sieciowych). Niektóre z języków są bardziej
uniwersalne niż inne. Do najpopularniejszych obecnie języków programowania
należą C/C++, Java, Fortran czy Pascal.
Kod maszynowy, język rozumiany przez procesor. Program w kodzie maszynowym
składa się z ciągu wartości binarnych, które oznaczają zarówno instrukcje jak i dane.
Program, który jest napisany w pewnym języku programowania, musi zostać
skompilowany, aby mógł być wykonywany przez komputer. Postać kodu
maszynowego zależy od architektury procesora, na który dany program jest
przeznaczony. Dlatego program musi zostać skompilowany na konkretnej maszynie,
ewentualnie na systemie kompatybilnym z systemem docelowym.
Kompilacja (angielskie compiling), nie całkiem odpowiedni, lecz powszechnie
przyjęty termin określający proces tłumaczenia programu z postaci źródłowej na kod
wynikowy. Obejmując fazy analizy leksykalnej, składniowej i generowania kodu,
kompilacja nie musi przekształcać programu źródłowego w wykonywalny kod
maszynowy komputera. Produktem kompilacji jest najczęściej kod z adresami
względnymi, obliczonymi z osobna dla każdego skompilowanego modułu. Podczas
łączenia modułów (które bardziej zasługiwałoby na miano “kompilacji”, lecz nie jest
to przyjęte) następuje ostateczne przeliczenie adresów względem wspólnej bazy i
doprowadzenie przetłumaczonego programu do postaci ładowalnej.
Kompilator, w informatyce, translator języka wysokiego poziomu, którego programy
wynikowe mogą być wprowadzone do pamięci i wykonane dopiero po zakończeniu
tłumaczenia (w odróżnieniu od interpretatora).
Programy wynikowe kompilatora mogą być przechowywane, łączone z innymi
programami i wielokrotnie wykonywane znacznie szybciej niż programy
interpretowane.
Pascal, strukturalny język programowania stworzony przez N. Wirtha na początku lat
70. Jego zastosowanie w praktyce jest obecnie bardzo ograniczone.
Najważniejszym zastosowaniem języka Pascal jest nauka programowania.
Pozostaje on przez to jednym z najszerzej znanych i popularnych języków,
zwłaszcza wśród początkujących programistów.
Perl, interpretowany język programowania wyróżniający się szczególną
przydatnością do programowania zadań systematycznego przetwarzania tekstów.
Programowanie obiektowe, rodzaj programowania, w którym dane i wykonywane
na nich operacje są połączone. Ten formalny zabieg umożliwia szybsze pisanie
większych programów, przez "składanie ich" ze wzajemnie powiązanych obiektów,
które odpowiadają za daną funkcję programu (np. przygotowanie danych, wykonanie
obliczeń, zaprezentowanie wyników).
Programowanie strukturalne, rodzaj programowania w którym program podzielony
jest na niewielkie moduły - procedury, bądź funkcje. Programowanie strukturalne
ułatwia projektowanie, testowanie a także utrzymanie kodu programu. Do
najpopularniejszych języków strukturalnych zalicza się Pascal, C, Modula-2.
Suma kontrolna (checksum), dodatkowa porcja informacji obliczona na podstawie
ciągu bajtów zawartych w rekordzie, bloku lub komunikacie i dołączona do
zasadniczej informacji w celu wykrywania ewentualnych błędów przy późniejszym
odczytywaniu tej informacji. Jedna z metod obliczania sumy kontrolnej polega na
sumowania bajtów jednostki informacji w polu o ograniczonej długości, bez
uwzględniania powstających nadmiarów.
Stosowana także do wykrywania programów zainfekowanych przez wirusy
komputerowe.
Download