Programowanie w języku Common Lisp


To jest strona domowa przedmiotu obieralnego Programowanie w języku Common Lisp (PCL) z klasy tematycznej ISO (Inteligentne Systemy Obliczeniowe). W ciągu semestru, w którym przedmiot jest uruchomiony, pojawiać się tu mogą bieżące komunikaty organizacyjne, więc warto od czasu do czasu zajrzeć. Ponadto dostępne są pewne materiały pomocnicze do przedmiotu oraz informacje o projekcie (dla aktualnego semestru, jeśli przedmiot został w nim uruchomiony, albo dla semestru, w którym przedmiot był ostatnio uruchomiony).

Celem przedmiotu jest zapoznanie studentów potrafiących już sprawnie programować przynajmniej w jednym algorytmicznym języku wysokiego poziomu (np. Pascal, C, C++, Java) z nowym językiem i charakterystycznym dla niego stylem programowania. Poznanie tego stylu rozszerza horyzonty myślenia o programowaniu i ułatwia lepsze programowanie w dowolnym języku. Wszystkich, dla których programowanie jest nie tylko wysiłkiem, ale też przyjemnością, zachęcam do poznania języka Lisp -- nie będziecie żałować, nawet jeśli nie użyjecie go nigdy w prawdziwym projekcie.

O Lispie

Język Lisp jest językiem ogólnego przeznaczenia umożliwiającym programowanie strukturalne i proceduralne podobnie jak Pascal i C, programowanie obiektowe podobnie jak C++ i Java, a dodatkowo sprzyjającym zapisywaniu algorytmów w stylu funkcyjnym (choć nie zmuszającym do tego). Nazwa języka bywa tłumaczona na dwa sposoby:

Żadnej z tych charakterystyk nie należy traktować zbyt dosłownie. Oprócz list język Common Lisp doskonale wspiera wiele innych rodzajów struktur danych, a z bilansowaniem nawiasów poradzi sobie bez trudu za nas przyzwoity edytor. Szczególnie warto tu wymienić kultowy edytor Emacs, którego spora część funkcjonalności jest realizowana przez kod napisany w specjalnym dialekcie Lispa.

Ze względu na dostępność wielu mechanizmów wysokiego poziomu Lisp umożliwia zwięzlą i elegancką implementację nietrywialnych form przetwarzania danych, zwłaszcza o postaci symbolicznej. Wbudowane mechanizmy garbage collection eliminują uciążliwe błędy w zarządzaniu pamięcią, a interaktywne środowisko ułatwia uruchamianie, testowanie i poprawianie programów. Czyni to język Lisp szczególnie przydatnym do szybkiego prototypowania złożonych systemów oraz pisania oprogramowania o charakterze badawczym i dydaktycznym. Jest to również ostatnio jeden z języków, których wybór warto rozważyć przy programowaniu aplikacji WWW. Dostępność wydajnych interpreterów i kompilatorów powoduje, że dawne przekonanie o immanentnej nieefektywności programów w Lispie jest już co najmniej częściowo nieaktualne. Tradycyjnie związany z dziedziną sztucznej inteligencji, może być z powodzeniem wykorzystywany w innych zastosowaniach, takich jak obliczenia numeryczne, symulacja i modelowanie, analiza danych, optymalizacja itd. Wszędzie tam, gdzie mamy swobodę wyboru języka, zależy nam na szybkiej implementacji, łatwości uruchomiania i minimalizacji ryzyka błędów, Lisp jest dobrym kandydatem.

Komentarze na temat zawartości tej strony i inne uwagi dotyczące przedmiotu proszę kierować pocztą.

Aktualności

Przedmiot w obecnym semestrze nie jest uruchomiony. Wszystkie znajdujące się tu informacje mają w związku z tym znaczenie historyczne.

Zasady zaliczania

Zaliczenie przedmiotu następuje na podstawie ocen z trzech zadań projektowych (10, 15, 25 punktów) i egzaminu (50 punktów). Dodatkowo przyznana będzie premia w wysokości 5 punktów za bezprzykładny entuzjazm, którego świadectwem jest zapisanie się na przedmiot.

Projekt

Informacje pomocnicze


Moja strona domowa Moja strona artificial intelligence

Paweł Cichosz