Jak Napisać Tłumacza

Spisu treści:

Jak Napisać Tłumacza
Jak Napisać Tłumacza

Wideo: Jak Napisać Tłumacza

Wideo: Jak Napisać Tłumacza
Wideo: Jak Tłumaczyć Całe Zdania? Google Tłumacz "Dotknij, by przetłumaczyć" 2024, Kwiecień
Anonim

Istnieje wiele języków programowania, które mają swoje unikalne cechy. Ale aby program napisany w którymkolwiek z nich działał, musisz go nadawać. Czasami języki programowania rozwijane są na własne potrzeby (np. wsparcie automatyzacji w dużych aplikacjach) i wtedy konieczne staje się napisanie tłumacza.

Jak napisać tłumacza
Jak napisać tłumacza

Niezbędny

  • - gramatyka naturalna lub BNF języka źródłowego;
  • - narzędzia programistyczne.

Instrukcje

Krok 1

Przygotuj dane do analizy leksykalnej tekstu w języku źródłowym. Wymień wszystkie tokeny w danym języku. Podziel je na kategorie (słowa kluczowe, literały numeryczne i łańcuchowe, identyfikatory, spacje, znaki interpunkcyjne itp.).

Krok 2

Zaimplementuj moduł lub lekser. Na wejściu powinien otrzymać „surowy” strumień danych, a na wyjściu utworzyć listę elementów zawierających tokeny i ich identyfikatory typu w kolejności, w jakiej występują w tekście źródłowym. Program parsujący może być dość prostym „ skaner jednopoziomowy. Wdrażanie odzyskiwania po błędzie nie ma sensu. Nieprawidłowe znaki należy traktować jako błędy.

Krok 3

Przygotuj dane do parsowania. W oparciu o gramatykę naturalną lub BNF języka źródłowego skomponuj jego gramatykę LL1. Na podstawie tego typu gramatyki sporządź schemat parsowania pod kątem kategorii poprawnych tokenów i konstrukcji semantycznych języka.

Krok 4

Zaimplementuj moduł lub parser. Na wejściu powinna otrzymać listę tokenów przygotowaną na etapie parsowania leksykalnego. Opracuj rekurencyjne algorytmy sprawdzania składni, korzystając ze schematu utworzonego w kroku trzecim. Jeśli to konieczne, zaimplementuj mechanizmy odzyskiwania błędów, dodaj funkcjonalność do algorytmów parsowania, aby zbudować drzewo do obliczania funkcji, metody klas. Przy odpowiedniej strukturze algorytmów parsowania ta funkcjonalność może być zaimplementowana bez żadnych problemów. Pozwala to uniknąć konieczności wdrażania go jako osobnego modułu. Tworzone struktury danych powinny zawierać listy instrukcji w postaci ciągów „płaskich” (wyrażenia arytmetyczne rozwinięte do postaci postfiksowej nadające się do obliczeń na maszynie stosowej, pętle zamienione na kombinacje ciągów instrukcji obliczeniowych oraz skoki warunkowe lub bezwarunkowe itp.).

Krok 5

W razie potrzeby utwórz moduł optymalizacji. Powinien przetwarzać i przekształcać przygotowane w poprzednim kroku struktury danych. Algorytmy i metody optymalizacji są bardzo zróżnicowane.

Krok 6

Opracuj generator kodu. Przetwarzając struktury przygotowane w kroku czwartym lub piątym, należy po prostu przekształcić sekwencje instrukcji abstrakcyjnych w instrukcje do wykonania na określonej platformie.

Krok 7

W razie potrzeby utwórz program wiążący (konsolidator). Powinien tworzyć wynikowy moduł wykonywalny poprzez wybór lokalizacji segmentów kodu, obliczenie adresów etykiet itp.

Zalecana: