singlepost

На чем проще написать анализатор Modula-2? << На главную или назад  

нужно написать анализатор языка Modula-2 для строк типа:
FOR<параметр>:=<начальные значения>TO<конечные значения>[BY<шаг>]DO
<параметр> :: = <идентификатор>|<идентификатор>[<список индексов>]
<список индексов> :: = <индекс>|<список индексов>,<индекс>
<индекс> :: = <идентификатор>|<константа целая>
<начальные значения> :: = <константа целая>
<конечные значения> :: = <константа целая>
<шаг> :: = <константа целая>

на чем будет написать проще: С++ или ТР, учитывая знание С++ в объеме лекций за 1 семестр (закончили на шаблонах)? И как реализовать в общих чертах этот анализатор?

59 ответов в теме “На чем проще написать анализатор Modula-2?”

  1. 5
    Александр Матрёнин ответил:

    2 Артем
    прости мне мою неграмотность, но я действительно не пойму о чем ты… объясни, что такое Flex или Yacc…

  2. 4
    Артём Шалхаков ответил:

    2 Александр

    В смысле "не прав"? Тебе, значиццо, надо реализовать лексический и синтаксический анализ (для вон того подмножества грамматики) — а синтаксический анализ как раз строит синтаксическое дерево. :) В этом тебе помогут Flex/Yacc (или их аналоги, тысячи их!).

  3. 3
    Александр Матрёнин ответил:

    2 Артем
    не, ты немного не прав… мне ужно написать программу-анализатор, если быть точным, которая говорит о введенной строке, правильно или нет она введена и где какие ошибки… извини, что не уточнил сразу… а то я даж таких слов-то не знаю…Flex, Yacc, (E)BNF…)))

  4. 2
    Роман Еннер ответил:

    //ru.wikipedia.org/wiki/%D0%A4%D0%BE%D1%80%D0%B...
    //ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D1%8...

  5. 1
    Артём Шалхаков ответил:

    Тебе нужно разобраться с (E)BNF, регулярными выражениями, Flex и Yacc.

    Собсно, потом придется разбираться с тем, как работает компилятор. :) Тебе нужно из строки построить AST, по всей видимости.

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.