Wprowadzenie. Teoria automatów i języków formalnych. Literatura (1)

Podobne dokumenty
Wprowadzenie: języki, symbole, alfabety, łańcuchy Języki formalne i automaty. Literatura

Translacja wprowadzenie

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk

Matematyczne Podstawy Informatyki

Gramatyki, wyprowadzenia, hierarchia Chomsky ego. Gramatyka

Matematyczne Podstawy Informatyki

Języki programowania zasady ich tworzenia

GRAMATYKI BEZKONTEKSTOWE

Języki i gramatyki formalne

Wprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy

Zadanie analizy leksykalnej

Program We Kompilator Wy Źródłowy

Matematyczne Podstawy Informatyki

Automat ze stosem. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Metody Kompilacji Wykład 1 Wstęp

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań

Klasyczne i kwantowe podejście do teorii automatów i języków formalnych p.1/33

Gramatyki atrybutywne

JIP. Analiza składni, gramatyki

Jaki język zrozumie automat?

Języki formalne i automaty Ćwiczenia 1

Gramatyki rekursywne

Kultura logicznego myślenia

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Efektywna analiza składniowa GBK

Logika dla socjologów Część 2: Przedmiot logiki

WSTĘP ZAGADNIENIA WSTĘPNE

JĘZYKIFORMALNE IMETODYKOMPILACJI

Wstęp do Programowania Obiektowego. Wykład 13 Paradygmaty. Składnia i semantyka.

Podstawy Informatyki Gramatyki formalne

Wykład 11a. Składnia języka Klasycznego Rachunku Predykatów. Języki pierwszego rzędu.

Logika Matematyczna (1)

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Matematyczne podstawy informatyki Mathematical Foundations of Computational Sciences. Matematyka Poziom kwalifikacji: II stopnia

JĘZYKI FORMALNE I METODY KOMPILACJI

Symbol, alfabet, łańcuch

Algorytmy zapisywane w pseudojęzyku programowania. Klasa 2 Lekcja 6

WYKŁAD. Jednostka prowadząca: Wydział Techniczny. Kierunek studiów: Elektronika i telekomunikacja. Nazwa przedmiotu: Język programowania C++

Logika dla archeologów

Wstęp do logiki. Kto jasno i konsekwentnie myśli, ściśle i z ładem się wyraża,

Historia Kompilatory Podstawy składni Zastosowanie. Język Fortran. Bartosz Radliński. Poznań, 2015

Logika Matematyczna (1)

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Obliczenia inspirowane Naturą

Metodologie programowania

Języki i operacje na językach. Teoria automatów i języków formalnych. Definicja języka

Gramatyka operatorowa

Języki formalne i gramatyki

MATEMATYKA DYSKRETNA, PODSTAWY LOGIKI I TEORII MNOGOŚCI

2.2. Gramatyki, wyprowadzenia, hierarchia Chomsky'ego

Gramatyki (1-2) Definiowanie języków programowania. Piotr Chrząstowski-Wachjtel

ForPascal Interpreter języka Pascal

Hierarchia Chomsky ego Maszyna Turinga

Programowanie komputerów

Wstęp do logiki. Semiotyka cd.

1. Maszyna Turinga, gramatyki formalne i ONP

Modele Obliczeń. Wykład 1 - Wprowadzenie. Marcin Szczuka. Instytut Matematyki, Uniwersytet Warszawski

Analiza semantyczna. Gramatyka atrybutywna

Logika Stosowana. Wykład 1 - Logika zdaniowa. Marcin Szczuka. Instytut Informatyki UW. Wykład monograficzny, semestr letni 2016/2017

Maszyna Turinga języki

Paradygmaty i języki programowania. Analiza leksykalna Skaner, RE, DAS, NAS, ε- NAS

AUTOMATYKA INFORMATYKA

Logika. dr Agnieszka Figaj

Metodologia prowadzenia badań naukowych Semiotyka, Argumentacja

INSTYTUT NAUK EKONOMICZNYCH I INFORMATYKI Rozkład zajęć, Semestr zimowy, Kierunek INFORMATYKA PONIEDZIAŁEK

JĘZYKI FORMALNE I METODY KOMPILACJI

Wykład 1 Wiadomości wstępne

11 Probabilistic Context Free Grammars

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

KONSTRUKCJA KOMPILATORÓW

Języki formalne i automaty Ćwiczenia 2

Generator YACC: gramatyki niejednoznaczne

Adam Meissner.

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Języki formalne i automaty Ćwiczenia 3

TRANSLACJA I TRANSLATORY

Obliczenia inspirowane Naturą

Analiza metodą zstępującą. Bartosz Bogacki.

Jerzy Nawrocki, Wprowadzenie do informatyki

Plany studiów na rok akademicki Etnolingwistyka

Składnia rachunku predykatów pierwszego rzędu

Teoria automatów i języków formalnych. Określenie relacji

Maszyny Turinga. Jerzy Pogonowski. Funkcje rekurencyjne. Zakład Logiki Stosowanej UAM

Open Access w technologii językowej dla języka polskiego

Logiczne podstawy prawoznawstwa

Semantyka i Weryfikacja Programów - Laboratorium 6

Podstawy logiki praktycznej

Algorytmy stochastyczne, wykład 05 Systemy Liendenmayera, modelowanie roślin

Opis efektów kształcenia dla modułu zajęć

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]

Spis treści. spis treści wygenerowany automatycznie

Filozofia z elementami logiki Język jako system znaków słownych część 2

Umysł-język-świat 2012

Metodyki i techniki programowania

Metody Kompilacji Wykład 3

Rachunek logiczny. 1. Język rachunku logicznego.

Transkrypt:

Wprowadzenie Teoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Literatura (1) 1. Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison-Wesley, 1986 (tłumaczenie polskie: Kompilatory. Reguły, metody i narzędzia, WNT 2002). 2. Aho A. V., Ullman J. D.: The Theory of Parsing, Translation and Compiling, vol. 1, Prentice-Hall, 1972 (tłumaczenie rosyjskie: Ахо А., Ульман Дж.: Теория синтаксического анализа, перевода и компиляции, Издательство Мир, 1978) 3. Blikle A.: Automaty i gramatyki, PWN, 1971 4. Blikle A.: Wybrane zagadnienia lingwistyki matematycznej, w: Problemy przetwarzania informacji, tom 2, praca zbiorowa pod red. A. Mazurkiewicza, WNT 1974. 5. Gries D.: Compiler Construction for Digital Computers (jest tłumaczenie polskie). 6. Homenda W.: Elementy lingwistyki matematycznej i teorii automatów, Oficyna Wydawnicza Politechniki Warszawskiej 2005.

Literatura (2) 7. Hopcroft J. E., Motwani R., Ullman J. D.: Wprowadzenie do teorii automatów, języków i obliczeń, PWN, 2005. 8. Hopcroft J. E., Ullman J. D.: Wprowadzenie do teorii automatów, języków i obliczeń, PWN, 1994 9. Kowalski St., Mostowski A. Wł.: Teoria automatów i lingwistyka matematyczna, PWN, 1979. 10. Ross K. A., Wright C. R. B.: Matematyka dyskretna, PWN, 1996. 11. Sipser M.: Wprowadzenie do teorii obliczeń, WNT 2009. 12. Waite W. M., Goos G.: Konstrukcja kompilatorów, WNT, 1989. Lingwistyka, języki Dziedzina wiedzy: Lingwistyka matematyczna Czym będziemy się zajmować: Opisywać języki Opis języka (semiotyka) (a) syntaktyka (opis składni) (b) semantyka (znaczenie) (c) pragmatyka (uŝyteczność) Jaki aspekt języka będziemy opisywać? Składnia zasady budowy poprawnych wypowiedzi w języku (tylko poprawnych; nie bierze się pod uwagę aspektu znaczeniowego i pragmatycznego, nie analizuje się znaczenia wypowiedzi, a tym bardziej prawdziwości lub fałszu wypowiedzi) Jakie języki będziemy opisywać? (a) (b) Języki: naturalne (np. polski, angielski, chiński,...) formalne (sztuczne, np. Pascal, C, Algol,...) Zajmujemy się wyłącznie opisem języków formalnych.

Przykład (1) Przykład: (notacja BNF) <zdanie> ::= <grupa_podmiotu> <grupa_orzeczenia> <grupa_podmiotu> ::= <fraza_rzeczownikowa> <grupa_orzeczenia> ::= <fraza_czasownikowa> <fraza_rzeczownikowa> ::= <przymiotnik> <fraza_rzeczownikowa> <rzeczownik> <fraza_czasownikowa> ::= <czasownik> <fraza_przysłówkowa> <czasownik> <fraza_rzeczownikowa> <czasownik> <fraza_przysłówkowa> ::= <przyimek> <fraza_rzeczownikowa> <przysłówek> <przysłówek> <przyimek> <fraza_rzeczownikowa> <przymiotnik> ::= szybki rudy omszały głęboki mądry <rzeczownik> ::= lis pień dół <przysłówek> ::= zgrabnie bardzo <przyimek> ::= przez <czasownik> ::= przeskoczył polubił Przykład (2) Poprawne zdania: szybki rudy lis przeskoczył przez omszały pień mądry lis polubił głęboki omszały dół głęboki lis przeskoczył przez mądry dół szybki głęboki pień polubił przez mądry rudy dół lis przeskoczył zgrabnie przez głęboki dół Niepoprawne zdania: lis przeskoczył bardzo zgrabnie przez głęboki dół (nie moŝna uŝyć dwóch przysłówków w jednym zdaniu) szybki rudy wilk przeskoczył przez omszały pień (rzeczownik wilk nie występuje w definicji języka) polubił głęboki omszały dół (w zdaniu musi wystąpić <grupa_podmiotu>)

Przykład (3) BNF Do opisu języka trzeba uŝywać metajęzyka. PowyŜsza przykładowa definicja języka została stworzona w tzw. notacji Backusa-Naura. W zapisie tym elementami metajęzyka są: <zdanie>, <grupa_podmiotu>,... zwane symbolami nieterminalnymi, symbolami pomocniczymi lub zmiennymi językowymi, ::= operator podstawienia metajęzykowego, symbol metajęzykowy lub. Elementami języka są zaś tzw. symbole terminalne (końcowe) jak np.: szybki, rudy, lis. Zapis typu: <...> ::=... nazywamy produkcją lub regułą syntaktyczną. Zapis typu: <AAA> := aaa bbb jest równowaŝny dwóm produkcjom <AAA> := aaa <AAA> := bbb

Gramatyka języka formalnego Do pełnej definicji języka musimy określić: V zbiór symboli nieterminalnych, np.: V = {<zdanie>, <grupa_podmiotu>,...} Σ zbiór symboli terminalnych, np.: Σ = {szybki, rudy, lis,...} P zbiór produkcji np.: P = {<zdanie> ::= <grupa_podmiotu> <grupa_orzeczenia>,...} S N symbol początkowy od którego zawsze rozpoczynamy wyprowadzanie napisów języka, u nas S = <zdanie>. Te cztery kategorie łącznie noszą nazwę gramatyki języka formalnego. Antynomia Grelinga (1) Dlaczego do opisu języka musimy uŝywać jakiegoś innego języka (metajęzyka)? Problem ten ilustruje tzw. antynomia Grelinga, która stanowi dowód na to, Ŝe trzeba pojęciowo odróŝniać język od metajęzyka. Przypuśćmy, Ŝe język L (zbiór pewnych słów) sam się opisuje, tzn. Ŝe moŝna w nim opisać jego słowa. Dokonajmy podziału słów tego języka na dwie klasy: słowa autosemantyczne, które orzekają o sobie a L jest autosemantyczne a jest a słowa heterosemantyczne, które nie orzekają o sobie a L jest heterosemantyczne ( a jest a ) Przykłady słów autosematycznych: rzeczownik jest rzeczownikiem osiemnastoliterowe jest osiemnastoliterowe Przykłady słów heterosemantycznych: czasownik nie jest czasownikiem (bo jest rzeczownikiem), pięcioliterowe nie jest pięcioliterowe (bo jest czternastoliterowe)

Antynomia Grelinga (2) Niech h L, h = heterosemantyczny Do której z dwóch klas naleŝy słowo h? ZałóŜmy, Ŝe h jest heterosemantyczne: (h jest heterosemantyczne) ( heterosemantyczne jest heterosemantyczne) (h orzeka o sobie) (h jest autosemantyczne) (SPRZECZNOŚĆ) ZałóŜmy, Ŝe h jest autosemantyczne: (h jest autosemantyczne) ( heterosemantyczne jest autosemantyczne) (h nie orzeka o sobie) (h jest heterosemantyczne) (SPRZECZNOŚĆ) Tak więc napotykamy istotne trudności chcąc dany język opisać jego własnymi słowami.