Deterministyczny język algebraiczny

W teoretycznej informatyki i teorii języka , o deterministyczny język algebraiczny jest język algebraiczne uznany (przez stany końcowe) przez deterministycznego automatu push-down . Interesem języków deterministycznych jest to, że ich analiza składniowa jest wykonywana w czasie liniowym w długości słowa, podczas gdy w każdym języku algebraicznym złożoność jest sześcienna, lub w każdym razie redukuje się do złożoności iloczynu macierzowego, dlatego jest w O ( n 2,37 ), gdzie n jest długością słowa według algorytmu Valianta . Każdy deterministyczny język algebraiczny można opisać za pomocą gramatyki LR (1) i odwrotnie. Pozwala to na wykorzystanie ich w praktycznych zastosowaniach. Zatem większość języków programowania to deterministyczne języki algebraiczne.

Przykłady

Nieruchomości

Klasa deterministycznych języków algebraicznych ściśle zawiera klasę języków wymiernych i jest ściśle zaliczana do klasy języków algebraicznych, a nawet jednoznacznych języków algebraicznych .

Typowym kontrprzykładem niedeterministycznego języka algebraicznego jest zbiór palindromów .

Klasę deterministycznych języków algebraicznych zamyka komplementarność. Jednak:

Przykłady języków niedeterministycznych

Zasada konstrukcji tych języków jest taka sama: automat wypychający musi podjąć decyzję nie znając całości danych; w pierwszym przykładzie musi przewidzieć, czy liczba b jest równa lub podwójna liczba a , w drugim przykładzie musi sprawdzić obecność litery a w drugiej połowie, nie wiedząc, czy jest już w druga połowa.

Istnieje specjalny lemat iteracyjny dla deterministycznych języków algebraicznych, który umożliwia formalne udowodnienie, że język nie jest deterministyczny. Oświadczenie jest dość skomplikowane. Równie skomplikowany wariant tego lematu podaje Sheng Yu.

Uwagi i odniesienia

  1. Wolper 2006 , sekcja 4.4.4, s.  97 .
  2. Harrison 1978 , Twierdzenie 11.8.5.
  3. Michael Harrison pokazuje nawet, że ten język nie jest związkiem skończonej liczby języków deterministycznych.
  4. Harrison 1978 , Twierdzenie 11.8.3.

Bibliografia

<img src="https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;">