Przekonałem się, że jeśli nie rozumiem etymologii kryjącej się za terminem cs / programowanie, zwykle oznacza to, że przeoczyłem lub źle zrozumiałem jakąś ważną koncepcję.
Nie rozumiem, dlaczego gwiazda Kleene jest również nazywana zamknięciem Kleene. Czy ma to związek z zamknięciami w programowaniu, funkcją ze związanymi zmiennymi nielokalnymi?
... po zastanowieniu, może dlatego, że pozwala na napisanie zbioru otwartego w formie wyrażenia zamkniętego?
... no cóż, w dobrym, starym stylu wyjaśniającym gumową kaczkę , domyślam się, że o to chodzi, ale nadal chętnie przyjmę wiarygodną odpowiedź.
automata
regular-expressions
mallardz
źródło
źródło
Odpowiedzi:
Zestaw jest zamykany przez jakiegoś operatora, jeśli wynik zastosowania operatora do rzeczy w zestawie jest zawsze w zestawie. Na przykład liczby naturalne są zamknięte podczas dodawania, ponieważ za każdym razem, gdy i m są liczbami naturalnymi, n + m jest liczbą naturalną. Z drugiej strony, naturals nie są zamknięte odejmowanie, ponieważ na przykład 3 - 5 nie jest liczbą naturalną.n m n + m 3 - 5
Zamknięcie z ustalonym pod pewnym operatora jest najmniejszy zestaw zawierający S , który jest zamknięty pod operatora. Na przykład zamknięcie odejmowanych liczb naturalnych jest liczbami całkowitymi; zamknięcie dodawanych liczb naturalnych jest tylko liczbami naturalnymi, ponieważ zestaw jest już zamknięty.S. S.
Tak więc „zamknięcie Kleene” nie jest alternatywną nazwą dla „gwiazdy Kleene”. Gwiazdą Kleene jest operator; zamknięcie Kleene zestawu jest zamknięciem tego zestawu pod operatorem.
źródło
W skrócie
Nazwa zamknięcie Kleene ma wyraźnie oznaczać zamknięcie w przypadku niektórych operacji łańcuchowych.
Jednak dokładna analiza (dzięki krytycznemu komentarzowi OP mallardz) pokazuje, że gwiazda Kleene nie może być zamknięta podczas konkatenacji, co raczej odpowiada operatorowi Kleene plus.
Operator gwiazdy Kleene w rzeczywistości odpowiada zamknięciu pod operacją mocy pochodzącą z konkatenacji.
Nazwa gwiazda Kleene pochodzi od syntaktycznego przedstawienia operacji z gwiazdą
*
, podczas gdy zamknięcie jest tym, co robi.Jest to wyjaśnione poniżej.
Przypomnijmy, że zamknięcie w ogóle, a zwłaszcza gwiazda Kleene, jest operacją na zbiorach, tutaj na zbiorach ciągów, tj. Na językach. Zostanie to wykorzystane w wyjaśnieniu.
Zamknięcie podzbioru w ramach operacji zawsze zdefiniowane
Jest to przykład definicji o najmniej ustalonym punkcie, często używanej w semantyce, a także używanej w językach formalnych. Gramatyka bezkontekstowa może być postrzegana jako układ równań języków (tj. Równań ciągów znaków), gdzie nieterminalne oznaczają zmienne językowe. Najmniej rozwiązywanym punktem kojarzy język z każdą zmienną, a językiem związanym w ten sposób z symbolem początkowym jest język zdefiniowany przez gramatykę CF.
Rozszerzenie koncepcji
+
*
W rzeczywistości pomysł zamknięcia można rozszerzyć lub rozważyć na różne sposoby.
Rozszerzenie na inne właściwości algebraiczne
Rozszerzenie poprzez operację pochodną
lub z ustalonymi równaniami:
Ma to również sens, gdy argumenty nie należą do tego samego zestawu. Wtedy możesz mieć zamknięcie w odniesieniu do niektórych argumentów w jednym zestawie, biorąc pod uwagę wszystkie możliwe wartości dla innych argumentów (możliwych jest wiele odmian).
To daje nam operację gwiazdy Kleene, gdy konstrukcja jest zastosowana do operacji konkatenacji wolnego Monoidu z łańcuchów.
Szczerze mówiąc, nie jestem pewien, czy nie oszukiwałem. Ale definicja jest tylko tym, co stworzysz, i to był jedyny sposób, w jaki znalazłem sposób, aby zmienić gwiazdę Kleene w zamknięcie. Być może próbuję zbyt mocno.
Komentarze są mile widziane.
Zamykanie zestawu w ramach operacji, która nie zawsze jest zdefiniowana
Jest to nieco inny pogląd i zastosowanie koncepcji zamknięcia. Ten pogląd tak naprawdę nie odpowiada na pytanie, ale wydaje się, że warto o tym pamiętać, aby uniknąć pewnych nieporozumień.
Tak buduje się liczby całkowite z liczb naturalnych, biorąc pod uwagę zestaw par liczb naturalnych ilorazowych przez relację równoważności (dwie pary są równoważne, jeśli dwa elementy są w tej samej kolejności i mają tę samą różnicę).
W ten sposób można również tworzyć racjonalne liczby całkowite.
I w ten sposób można zbudować klasyczne realia z racjonalności, chociaż konstrukcja jest bardziej złożona.
źródło
Operator Kleene plus również spełnia te aksjomaty, więc jest również operatorem zamknięcia zgodnie z tą definicją.
źródło