Języki naturalne i formalne

Języki, którymi posługują się ludzie, czyli dla przykładu polski, angielski, hiszpański czy francuski są określane naturalnymi. Nie zostały stworzne przez człowieka, ale ewoluowały wraz z nim w sposób naturalny.

Językami formalnymi nazywamy te, które zostały stworzone przez ludzi pod konkretne zastosowania. Zapisy używane przez matematyków są przykładem języka formalnego, który służy do przedstawienia relacji pomiędzy liczbami i symbolami. Chemicy używają języka formalnego do przedstawienia wzorów związków chemicznych. A co najważniejsze:

Języki programowania mają charakter formalny i zaprojektowane zostały,
by wyrazić sposób przetwarzania danych przez komputer zrozumiały dla człowieka.

Charakterytyczną cechą każdego języka formalnego są sztywne reguły, dotyczące ich składni. Równanie 3+3=6 jest zapisane matematycznie poprawnie, ale 3=+6$ już nie. Określnie H2O to poprawna składniowo nazwa chemiczna w przeciwieństwie do = 2Zz

Reguły, dotyczące składni można podzielić na dwie płaszczyzny: tokenów (elementów) i struktury(budowy wyrażeń). Tokeny są podstawowymi elementami języka, jak: słowa, liczby lub wzory chemiczne. W przykładzie 3=+6$ symbol $ nie jest uznawany za prawidłowy token w działaniach matematycznych. Podobnie zapis: 2Zz nie odnosi się do żadnego znanego wzoru chemicznego o symbolu Zz.

Drugi typ zasad, dotyczący składni odnosi się do struktury wyrażenia, czyli sposobu, w jaki tokeny są kategoryzowane. W równaniu 3=+6$ występuje błąd strukturalny, ponieważ niemożliwe jest postawienie znaku + zaraz przy znaku =, a zapis formuł chemicznych wymaga, by indeks znajdował się za nazwą elementu, a nie przed.

Kiedy czytasz zdanie w języku polskim lub innym dowolnych języku formalnym, aby je zrozumieć należy rozszyfrować jego strukturę gramatyczną. Ten proces nazywany parsingiem (analizą składniową).

Przykładowo, kiedy słyszysz zdanie “nieszczęścia chodzą parami”, rozumiesz, że nieszczęscie jest rzeczownikiem, a słowo chodzą jest czasownikiem. Po analizie składniowej zdania, można dowiedzieć się, co przytoczone zdanie oznacza, jakie jest jego znaczenie i semantyka. Zakładając, że wiesz co oznacza słowo nieszczęscie oraz chodzić, zrozumiesz ogólny sens zdania.

Pomimo faktu, że języki formalne oraz naturalne mają wiele cech wspólnych — tokeny, strukturę, składnię oraz semantykę — to w wielu aspektach różnią się między sobą:

dwuznaczność
Języki naturalne cechują się dwuznacznością, z czym ludzie radzą sobie poprzez wpisanie w kontekst zdania. Języki formalne zostały tak zaprojektowane, aby każde wyrażenie było jasne i jednoznaczne bez względu na kontekst użycia.
redundancy
W celu poprawy zrozumienia zdań języków naturalnych stosuje się rozbudowane sentencje, które redukują problem ich niejednoznaczności. Języki formalne są mniej nadmiarowe i bardziej zwięzłe.
dosłowność

Języki formalne oznaczają dokładnie to, o czym mówią w zdaniu. Z drugiej strony, języki naturalne zawierają wiele idiomów oraz metafor.Jeśli ktoś mówi, „drugi but spadł ”, prawdopodobnie nie ma żadnego buta i nic nie spada.

Wskazówka

Musisz znać kawał, aby zrozumieć idiomatycznie znaczenie „drugi but spadł”. Yahoo! Answers na pewno za odpowiedź!

Ludzie posługujący się do tej pory tylko językiem naturalnym—–często napotykają trudności z przystosowaniem się do używania języków formalnych. W pewnym sensie, różnicę pomiędzy formalnym, a naturalnym językiem można porównać do różnicy pomiędzy poezją a prozą:

poezja
Słowa są używane zarówno do wydźwięku, jak i dla ich znaczenia, a całość wiersza tworzy emocjonalną spójność. Dwuznaczność jest często wykorzystywana, by osiągnąć zamierzony cel literacki.
proza

Dosłowne znaczenie słów jest bardziej istotne, a struktura zdań nadaje więcej sensu. Proza jest bardziej podatna na analizę niż poezja, ale w wielu przypadkach pozostaje niejednoznaczna.

gram Treść program komputerowego jest jednoznaczna i dosłowna, może być zrozumiana w całości przez analizę tokenów oraz struktury.

Dalej podane są sugestie jak czytać programy (i inne języki formalne). Po pierwsze należy pamiętać, że języki formalne są bardziej skondensowane niż naturalne, dlatego ich czytanie wymaga więcej czasu. Ponad to, ich struktura jest bardzo istotna, więc lepszym pomysłem jest identyfikacja tokenów i analiza całości struktury w głowie, aniżeli czytanie od góry do dołu lub od lewej do prawej. I na koniec, detale leżą w szczegółach. Małe rzeczy takie jak błędy pisowni i zła interpunkcja, które w języku naturalny mogą ujść na sucho, stanowią duży problem w języku formalnym.

Check your understanding

intro-11-1: Różnice pomiędzy językami naturalnymi a formalnymi to:





intro-11-2: Prawda czy fałsz. Czytanie programu nie różni się od czytania innych rodzajów tekstów.



Następna część - Typowy pierwszy program