Skąd się wzięły wyjątki?

Zdecydowana większość współczesnych języków programowania posiada wbudowaną obsługę wyjątków. Związana z nią składnia zazwyczaj jest we wszystkich tych językach dosyć podobna – wyjątki rzuca się (throw) lub podnosi (raise), a następnie łapie (catch), jeśli wystąpiły wewnątrz blokutry. Istotną sprawą jest tu możliwość przekazywania kontroli sterowania nie tylko o jeden poziom wyżej – wyjątki propagowane są w […]

Read More

AIML, czyli piszemy gadającego bota

Zapewne większość korzystających z internetu osób ma jakieś doświadczenia dotyczące rozmów z botami (mówiąc dokładniej – chatbotami – tak bowiem określa się aplikacje prowadzące rozmowy z ludźmi). Swego czasu popularny w polskiej sieci był program Infobot – można było korzystać z niego m.in. za pośrednictwem Gadu-Gadu, a swój ponad 10-letni żywot zakończył niespełna 2 lata temu. […]

Read More

Podsumowanie prologowego wyzwania

Jak zapowiadałem pod koniec października, moim celem na listopad była nauka języka programowania Prolog. Czytałem książki i opracowania, pisałem kod, szukałem realnych zastosowań tej technologii. Czas nie pozwolił mi na zgłębienie w ciągu miesiąca tyle wiedzy, ile bym pragnął, jak również nie udało mi się opublikować wszystkich wpisów w zamierzonym okresie. Naocznym rezultatem mojego wyzwania […]

Read More

Relacje przechodnie w Prologu

W jednym z wcześniejszych wpisów poruszałem temat definiowania relacji symetrycznych w języku Prolog. Rozwiązaniem problemu okazało się tam zdefiniowanie relacji pomocniczej, dzięki której pozbywaliśmy się nieskończonej pętli wywołań. Podobnie jest i w tym przypadku, bowiem i tu definiowanie takiej relacji w sposób „naiwny” i „naturalny” nie zdaje egzaminu. Rozważmy taki oto przykład, w którym szeregujemy kraje […]

Read More

Realne zastosowania języka Prolog

Trudno nie zgodzić się z opinią, że Prolog jest językiem pod wieloma względami ciekawym. Chociażby dlatego, iż reprezentuje on paradygmat programowania logicznego, który zdecydowanie nie należy do najczęściej używanych. Sądzę, że owa odmienność od tego, z czym mamy styczność na co dzień jest jednym z powodów, dla których warto poznać pewne podstawy Prologa. Zyskujemy w […]

Read More

Relacje symetryczne w Prologu

Jeśli potrzebujemy zdefiniować jakąś relację (dajmy na to małżeństwo) jako symetryczną, to posługując się językiem logiki matematycznej możemy ją zapisać mniej więcej tak: Przekładając to na zapis charakterystyczny dla Prologu i dokładając jeszcze kilka faktów dotyczących znanych nam małżeństw uzyskamy: married(X, Y) :- married(Y, X). married(adam, ewa). married(andrzej, aleksandra). married(tadeusz, zofia). Jest to kod syntaktycznie […]

Read More

Czy można pisać kod po polsku?

Tytułowe pytanie zadają niekiedy osoby, zaczynające swoją przygodę z programowaniem. Cóż, nic dziwnego. Istnieją na rynku książki, w których przykłady kodu źródłowego zawierają polskojęzyczne nazwy zmiennych, funkcji i klas. Oczywiście przeplatają się one z angielskimi słowami kluczowymi, stanowiąc w rezultacie obraz co najmniej niepoważny. Gdy korzystająca z takich źródeł osoba, nie mogąc poradzić sobie z […]

Read More

Plankalkül – język, który wyprzedził swoje czasy

Był rok 1945, kiedy Konrad Zuse, niemiecki inżynier, kończył właśnie pisać swój szkic na temat języka o tajemniczo brzmiącej nazwie Plankalkül. Przez ostatnie lata Zuse zajmował się projektowaniem maszyn liczących, spośród których największym osiągnięciem było urządzenie nazwane Z3, obecnie uznawane za pierwszy na świecie programowalny komputer. Podczas prac nad swoimi wynalazkami zauważył potrzebę takiego sposobu komunikacji […]

Read More

Wiedza początkowa

Niewątpliwie każdy, kto postawi sobie za cel zostanie programistycznym poliglotą, wyrusza w tę podróż wyposażony w inny zestaw umiejętności. Moja dotychczasowa wiedza w zakresie języków programowania to efekt połączenia kilku lat pracy zawodowej, studiów oraz samodzielnej nauki „po godzinach”. Niektóre technologie znam lepiej, inne gorzej, jednak w żadnej z nich nie jestem póki co ekspertem. […]

Read More