Pokaż język

Może zabrzmi to trochę głupio, ale chciałbym ci dzisiaj pokazać język. Mam nadzieję, że nie czujesz się obrażony po przeczytaniu tej propozycji i pozwolisz mi się usprawiedliwić. Naprawdę nie miałem nic złego na myśli.

Jeśli chcesz prosie kolegę o jakąś przysługę musisz mu najpierw powiedzieć czego od mego oczekujesz. Do tego właśnie potrzebny jest język. Oczywiście nie musisz nic mówić, możesz na przykład napisać swoją prośbę na kartce lub wręcz pokazać gestem, o co ci chodzi. Kolega będzie mógł ci pomóc jedynie wtedy, gdy zrozumie, co chciałeś mu przekazać, to znaczy gdy będzie znał twój język. (Np. język gestów).

Ja — czyli komputer — jestem w takiej sytuacji jak twój kolega. Z tą tylko małą różnicą, że kolega

— jeśli nawet zrozumie, o co go prosisz — może ci odmówić, ja natomiast nigdy. Problem jest tylko je–den: wszystko musi być dla mnie zupełnie jasne. W gruncie rzeczy jestem strasznym głuptasem i nic sam nie wymyślę

Moi pradziadkowie (komputery stają się dziadkami znacznie szybciej niż ludzie) programowani byli wyłącznie przez rozkazy skierowane do procesora — mózgu i serca każdej maszyny cyfrowej. Trzeba przyznać, że ten język nie miał wiele wspólnego i jakimkolwiek językiem porozumiewania się ludzi, a nawet w przypadku obliczeń matematycznych nie bardzo kojarzył się z tradycyjną arytmetyką. Nic więc dziwnego, że napisanie najprostszego programu wymagało sporej, specjalistycznej wiedzy.

Ale ludzie — zauważyłem — nie lubią się specjalnie przemęczać Zaczęli więc tworzyć języki tzw. "wyższego poziomu", które coraz bardziej przypominają ich język naturalny. Niestety — jak mówią ludzie — nie ma róży bez kolców. Używanie tych języków przynosi obok wygody także niedogodności z których największą jest znaczne zmniejszę nie szybkości wykonywania programu. Dlatego też bezpośrednie programowanie procesora (programowanie w języku wewnętrznym) długo jeszcze będzie stosowane, szczególnie w przypadku bardziej złożonych programów takich jak skomplikowane programy graficzne.

Jak to się jednak dzieje, ze potrafię zrozumieć polecenia wydawane mi w języku wyższego poziomu? Otóż posiadam (jak zresztą i większość moich kolegów) interpreter języka BASIC. Jest to coś w rodzaju „zaszytego" na stałe programu, który – podczas wykonywania programu napisanego w BASIC–u analizuje kolejno każdą linię i tłumaczy ją na rozkazy zrozumiałe dla mikroprocesora. Wymaga to jednak czasu. Znaczne lepszym rozwiązaniem są kompilatory języków. Ich działanie polega na tym, że cały program napisany w języku wyższego poziomu przekształca za pomocą kompilatora na język wewnętrzny i dopiero wówczas przystępuję do pracy. Jest to rozwiązanie o wiele szybsze.

Większość użytkowników domowych mikrokomputerów kojarzy sobie programowanie wyłącznie z językiem BASIC, czyli ciągiem rozkazów umieszczonych w numerowanych liniach, które wykonywane są przeze mnie w określonej kolejności. Nie jest to obraz prawdziwy. Wystarczy choćby popatrzeć jak wygląda programowanie w języku LOGO. Nie ma tu żadnej numeracji linii a jedynie programista uczy mnie kolejno wykonywania pewnych elementów (procedur), z których tworzy następnie bardziej złożone konstrukcje. O takim języku mówimy, że jest on strukturalny.

BASIC stał się moim (a także większości moich kolegów) podstawowym językiem właściwie przez przypadek. Stworzył standard, na który wybrzydzają prawie wszyscy profesjonalni informatycy. A to, że jest niedydaktyczny — stwarza złe nawyki, a to, że nie daje możliwości programownia strukturalnego. Swoją drogą najnowsze wersje tego języka umożliwiają już programowanie strukturalne, a niektóre nawel nie mają numerowanych linii. Pozostałe jedynie pytanie: na ile jest to jeszcze stary, poczciwy BASIC.

Z drugiej strony, na rynku pojawia się coraz więcej programów–kompilatorów różnych języków. Dostępne na dyskietkach, kasetach i kartridgeach (układach pamięci trwałej dopinanych do komputera) mogą być w każdej chwili wczytane do mojej pamięci i tym samym możesz się ze mną porozumiewać, w PASCAL–u. PROLOG–u. LOGO itp. Niektórzy z moich kolegów od razu potrafią porozumiewać się w dwóch językach. Wystarczy jedynie po uruchomieniu komputera wybrać ten. który nam odpowiada.

Pytasz, po co komu tyle różnych języków? Czy nie można wybrać najlepszego a resztę wyrzucić na śmietnik? Niestety, nie można. Przyczyna zaś jest bardzo prosta: NIE ISTNIEJE NAJLEPSZY JĘZYK. Wszystko zależy, do czego będę potrzebny. Innego języka będziesz używał przy obliczeniach inżynierskich. Innego zaś przy konstruowaniu baz danych czy badaniu wzajemnych relacji pomiędzy elementami zbioru. Języki przydatne w jednym przypadku mogą być bardzo niewygodne w użyciu (zarówno dla mnie jak i dla ciebie) w innym. Dlatego też warto poznać przynajmniej zasady programowania w kilku różnych językach.

Czego życzy ci z całego mikroprocesora

Twój Komputer