Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
14 / 1 / 0
Регистрация: 13.01.2017
Сообщений: 45
1

Транслятор с подмножества языка Pascal

01.03.2018, 12:02. Показов 3231. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! С подобным заданием столкнулся впервые и если честно, то вообще не понимаю на данный момент способ его реализации. Хотелось бы разобраться, что и как лучше делать, каким образом вообще это все реализовывать и как это будет выглядеть, т.к. вообще на данный момент нет идей. На данный момент пытаюсь вникнуть в теорию и читаю то, что предоставил преподаватель .
Пункты к заданию идут следующие :
1. Язык для трансляции – Pascal;
2. Обеспечить развернутую диагностику ошибок;
3. Реализовать класс транслятора;
4. Синтаксический разбор - на основе LR(k)-грамматик;
5. Разбор логических выражений выполнять методом Бауэра-Замельзона;
6. В языке поддерживаются – у идентификатора 8 символов значащие; – не менее 3х директив описания переменных;
– простой арифметический оператор;
– сложное логическое выражение;
– условный оператор if … then…else
7. пример программы на заданном языке:
Pascal
1
2
3
4
5
6
 var a,b : integer; 
begin
 a:=3; b:=a;
 if (a>b) and (b>0) then c:=a else begin
 c:=b; b:=1;
 end; end.
Если поможете разобраться, буду очень благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2018, 12:02
Ответы с готовыми решениями:

Транслятор на языке Prolog для подмножества языка SQL
Может ли быть 3 атрибута в скобках при написании программы с заданной тематикой? combo(bool,...

Транслятор собственного языка
Собственно, во втором семестре нас ожидает курсовая работу, суть которой заключается в написании...

Как назвать транслятор языка PL/0
Привет. В книге Вирта (Алгоритмы + структуры данных = программы) в конце разрабатывается Транслятор...

Транслятор языка запросов СУБД
Кто нибудь занимался разработкой такого рода трансляторов? Где можно найти информацию?

6
14 / 1 / 0
Регистрация: 13.01.2017
Сообщений: 45
07.03.2018, 14:57  [ТС] 2
Подскажите как написать подобный транслятор, какую литературу почитать или уроки посмотреть. Буду очень благодарен, потому, что сейчас это выглядит не реальным, сложным, но очень хочется разобраться и вникнуть во все это.
0
130 / 101 / 42
Регистрация: 01.03.2018
Сообщений: 291
07.03.2018, 15:48 3
x3mSmile,
сначала надо разработать "Лексический анализатор" - который будет разбивать исходную строку на токены - то есть вам сначала надо выбелить синтаксические конструкции
Цитата Сообщение от x3mSmile Посмотреть сообщение
методом Бауэра-Замельзона
в данном методе используются 2 стека ((теория)
1
14 / 1 / 0
Регистрация: 13.01.2017
Сообщений: 45
19.04.2018, 16:43  [ТС] 4
Метод вроде бы разобрал, даже понимаю
Но вот с реализацией и началом программы, что-то вообще не получается.
Казалось бы все просто, но вот как начинать, не имею представления
А разобраться хочется
0
14 / 1 / 0
Регистрация: 13.01.2017
Сообщений: 45
03.06.2018, 15:00  [ТС] 5
Блин, народ, помогите объяснить , как написать эту программу Я уже несколько месяцев с ней вожусь, казалось бы все не так тяжело, но мне тяжело ее реализовать, даже не пойму как начать все это
Понимаю, что нужно лексический анализ и синтаксический сделать
пробую уже внести символы:
C#
1
 private static char[] similarSplitters = { ',', '.', '(', ')', '[', ']', ':', ';', '+', '-', '*', '/', '<', '>', '@', '=' };
затем ключевые слова
C#
1
private static string[] SpecialWords = { "program", "var", "real", "integer", "begin", "for", "downto", "do", "begin", "end", "writeln" };
после пробую анализировать каждую лексему, что наверное делаю не правильно, ибо теряюсь в коде и очень путаюсь, не знаю , как правильно записать его
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
private static void f_program() // <program> ::= id: begin Declare <ListOfDescriptions>; <ListOfOperators> end id;
            {
                if (lexem != "var")
                    throw new UnexpectedLexem("var", lexem);
                string p_Name = lexem;
                Next("a");
                if (lexem != "a")
                    throw new UnexpectedLexem("a", lexem);
                Next(",");
                if (lexem != ",")
                    throw new UnexpectedLexem(",", lexem);
                Next("b");
                if (lexem != "b")
                    throw new UnexpectedLexem("b", lexem);
                Next(":");
                if (lexem != ":")
                    throw new UnexpectedLexem(":", lexem);
 
                Next("integer");
                if (lexem != "integer")
                    throw new UnexpectedLexem("integer", lexem);
                Next(";");
                if (lexem != ";".ToLower())
                    throw new UnexpectedLexem(";", lexem);
                Next("description");
                f_ListOfDescriptions();
                Next();
                f_ListOfOperators();
                Next(p_Name);
                if (lexem != p_Name)
                    throw new UnexpectedLexem(p_Name, lexem);
                Next(";");
                if (lexem != ";")
                    throw new UnexpectedLexem(";", lexem);
            }
1
14 / 1 / 0
Регистрация: 13.01.2017
Сообщений: 45
03.06.2018, 15:05  [ТС] 6
Есть даже пример написанный на C# транслирую язык подмножества PL/1
Кто-нибудь помогите пожалуйста в этом разобраться , очень хочется это понять, но уже все перечитал и не выходит
Хотя и понимаю, реализация хромает очень, а сдавать уже совсем скоро работу
Вложения
Тип файла: rar Пример.rar (83.2 Кб, 29 просмотров)
0
Модератор
2121 / 991 / 169
Регистрация: 23.07.2018
Сообщений: 3,328
Записей в блоге: 3
04.10.2018, 13:22 7
x3mSmile, сдали работу в итоге?
0
04.10.2018, 13:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2018, 13:22
Помогаю со студенческими работами здесь

Транслятор-анализатор, создание своего языка
Помогите, пожалуйста, нужно доделать свои язык. Правила грамматики такие же как и у C++, но никак...

Транслятор из языка Паскаль в СИ (текст программы) возможен ли
На фрилансе Человек поинтересовался: &quot;Здравствуйте, нужно написать конвертор на языке Си для...

Транслятор из Pascal в С++
Добрый вечер! Требуется написать транслятор из Pascal в С++. Подскажите с чего можно начать, просто...

С какого языка стоит начать обучение? С языка программирования Pascal?
Здравствуйте. Хотелось бы больше знать о компьютерной безопасности, в частности, о...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru