Как да напиша преводач

Съдържание:

Как да напиша преводач
Как да напиша преводач

Видео: Как да напиша преводач

Видео: Как да напиша преводач
Видео: Как да използвате Google Преводач ( Онлайн превод на текстове / думи синтеза интернет Trqnslate ) 2024, Може
Anonim

Има много езици за програмиране, които имат свои уникални характеристики. Но за да работи програма, написана в който и да е от тях, трябва да я излъчите. Понякога се разработват езици за програмиране за собствени нужди (например поддръжка за автоматизация в големи приложения) и тогава става необходимо да се напише преводач.

Как да напиша преводач
Как да напиша преводач

Необходимо

  • - естествена граматика или БНФ на изходния език;
  • - инструменти за разработка.

Инструкции

Етап 1

Подгответе данните за лексикален анализ на текста на изходния език. Избройте всички символи на езика. Разбийте ги на категории (ключови думи, числови и низ литерали, идентификатори, интервали, пунктуация и др.).

Стъпка 2

Внедрете модул или лексер. На входа той трябва да получи "суров" поток от данни, а на изхода формира списък с елементи, съдържащи маркери и техните идентификатори на типа в последователността, в която се срещат в изходния текст. Програмата за синтактичен анализ може да бъде доста проста " скенер на едно ниво. Прилагането на възстановяване на грешки няма смисъл. Невалидните знаци трябва да се третират като грешки.

Стъпка 3

Подгответе данните за синтактичен анализ. Въз основа на естествената граматика или BNF на изходния език, съставете неговата граматика LL1. Въз основа на този тип граматика изгответе схема за синтактичен анализ по отношение на категориите на валидни лексеми и семантични конструкции на езика.

Стъпка 4

Внедрете модул или парсер. На входа тя трябва да получи списък с жетони, подготвени на етапа на лексикалния анализ. Разработете рекурсивни алгоритми за проверка на синтаксиса, използвайки схемата, която сте създали в стъпка трета. Ако е необходимо, внедрете механизми за възстановяване на грешки. Добавете функционалност към алгоритмите за синтактичен анализ, за да изградите дърво за изчисляване на функции, методи на клас. С правилната структура на алгоритмите за разбор, тази функционалност може да бъде внедрена без никакви проблеми. Това избягва необходимостта да се прилага като отделен модул. Създадените структури от данни трябва да съдържат списъци с инструкции под формата на "плоски" последователности (аритметични изрази, разширени в постфикс форма, подходяща за изчисление на стекова машина, цикли, преобразувани в комбинации от последователности от изчислителни инструкции и условни или безусловни скокове и т.н.).

Стъпка 5

Създайте модул за оптимизация, ако е необходимо. Той трябва да обработва и трансформира структурите от данни, подготвени в предишната стъпка. Алгоритмите и методите за оптимизация са много разнообразни.

Стъпка 6

Разработете генератор на код. Когато обработва структурите, подготвени в четвъртата или петата стъпка, той трябва просто да трансформира последователностите от абстрактни инструкции в инструкции за изпълнение на определена платформа.

Стъпка 7

Създайте програма за свързване (линкер), ако е необходимо. Той трябва да формира резултантния изпълним модул, като избере местоположението на кодовите сегменти, изчисли адресите на етикетите и т.н.

Препоръчано: