Описание тега compiler-design
Используется для вопросов о дизайне компилятора, которые лишены деталей реализации.
1
ответ
Ошибка компилятора в зависимости от положения параметра в сигнатуре метода. Использование неназначенной локальной переменной
Допустим, у меня есть этот класс: class Boo { public override string ToString() { return "I am Boo!"; } } И эти методы: static int Foo(out Boo boo) { boo = new Boo(); return 1; } static void Lol(Boo boo, int n) { Console.WriteLine(n); Console.WriteL…
03 фев '17 в 15:29
1
ответ
Можно ли выразить левый ассоциативный оператор таким образом, чтобы синтаксические анализаторы LL(1) могли его понять?
Я пытался реализовать нисходящий синтаксический анализатор LL(1) для языка калькулятора. Это позволяет нам только суммировать, вычитать, делить и умножать числа. Нет скобок. S -> A A -> B + A | B - A | B B -> int * B | int / B | int Посколь…
06 май '13 в 19:12
1
ответ
Каков наилучший способ реализации оператора break на интерпретаторе?
Я разрабатывал интерпретатор для Brain (язык, похожий на Brainfuck), и у меня есть некоторые опасения относительно дизайна оператора break. Рассмотрим код ниже в JS: var Stmt = (function() { var Stmt = function() {}; Stmt.prototype = { update_expres…
24 май '17 в 21:03
1
ответ
LL1 Сначала и следуйте установленным правилам
Я смотрю на создание таблицы разбора для грамматики LL(1), и все это имеет смысл, кроме одного аспекта!? Правила для последующего набора швов конфликтуют. • Для каждого производства X → αAβ, поместите ПЕРВЫЙ (β) - {€} в СЛЕДУЮЩЕМ (A)• Если € - ПЕРВЫ…
21 авг '12 в 15:05
1
ответ
Что подразумевается под самой левой деривацией?
Пожалуйста, помогите мне понять, что подразумевается под Left Most Derivation второй L в LL Parser, Объясните это на простейшем примере. Я видел следующую картину, объясняющую левое происхождение, но я ее не понимаю:
04 мар '13 в 03:28
1
ответ
Как кодировать наборы FIRST & FOLLOW внутри компилятора
Я пишу компилятор для курса по компиляции, который я прохожу, и в настоящее время я нахожусь на Синтаксическом анализе, где мне нужно написать парсер. Мне нужно иметь наборы FIRST и FOLLOW для обработки любых ошибок, которые могут появиться в исходн…
17 мар '12 в 20:05
2
ответа
ПРОЧИТАЙТЕ перед началом вашего проекта компилятора
Вообще-то, это прежде всего мечта... Возможно, когда-нибудь у меня будет свой собственный язык программирования!, но это скоро превратится в кошмар, сразу после того, как вы ищете Как собрать компилятор?, Я провожу слишком много времени, как и больш…
14 янв '13 в 11:38
1
ответ
Как я должен сделать вывод, когда GC должен работать?
Я пишу статически скомпилированный язык и хотел бы поддержать сборку мусора. Прежде чем приступить к его разработке, я хотел бы узнать, как мне определить, когда должен работать GC? Должно ли это быть после каждых 16 МБ? (проверка после достаточного…
02 окт '10 в 12:22
1
ответ
Тестирование компилятора
В настоящее время я работаю над компилятором, созданным с использованием sablecc. Короче говоря, компилятор примет в качестве входных данных файлы спецификаций (это то, что мы анализируем) и файлы.class и обработает байт-код файлов.class, чтобы убед…
01 авг '11 в 03:25
2
ответа
Генерировать вывод вместе с парсером рекурсивного спуска
Написание простых парсеров тривиально, и я реализовал несколько за эти годы. В колледже нам тоже пришлось написать один. Но нам никогда не приходилось генерировать значимые результаты, используя этот метод; мы никогда не учились создавать бэкэнд. Ес…
20 окт '11 в 04:58
2
ответа
Карри и дизайн компилятора
Это домашнее задание: Объясните, какие преобразования тип подпрограммы претерпевает при частичной параметризации. До сих пор я понимаю, карри. Но я не могу найти никаких ресурсов о том, как подобная функция реализуется компилятором в памяти. Могу ли…
01 ноя '09 в 01:35
1
ответ
Как мне назвать выражения, которые не имеют скобки?
Я добавляю больше к своему языку, используя зубров, и в правилах я немного запутался. Как назвать выражения, которые имеют {}, такие как класс, функции, switch и т. Д. Выражения VS, которым в конце нужна точка с запятой (Int i;) У меня были они как …
13 окт '10 в 06:30
1
ответ
Создать адрес электронной почты из имен Compiler Design
Создание адресов электронной почты с именами форм Вы дали файл, содержащий имена нескольких человек. Файл будет иметь ровно одно имя в каждой строке. Вам нужно создать адрес электронной почты, заканчивающийся @bitmesra.ac.in из этих имен. Правило со…
28 янв '14 в 09:14
1
ответ
Зачем указывать отдельную продукцию для оператора присваивания с символом `=` вместо символа `AssignmentOperator`
Грамматика EcmaScript для AssignmentExpression определяет следующее: AssignmentExpression : ConditionalExpression YieldExpression ArrowFunction AsyncArrowFunction LeftHandSideExpression = AssignmentExpression <-------------- here LeftHandSideExpr…
14 окт '17 в 11:48
1
ответ
Как определить грамматику LR(0) или SLR(1)?
Это грамматика LR(0) или SLR(1)? S -> E $ E -> T + E | T T -> x
16 июл '15 в 12:32
3
ответа
Не сравнивайте, если между кавычками стоит символ (у АКА есть шаблон строки программирования)
Мне поручили написать компилятор для языка программирования Basic. В основном коды разделяются новыми строками или : отметка. например, чтобы следующие коды действительны.Модель № 1 10 PRINT "Hello World 1" : PRINT "Hello World 2" Модель № 2 10 PRIN…
29 мар '14 в 21:23
4
ответа
Как разработать лексер и парсер в Java?
Привет я студент и новичок в концепции проектирования компиляторов. Я не знаю, как разработать лексер и парсер в Java? Пожалуйста, помогите мне сделать это, дайте мне руководство линии...
20 фев '11 в 16:28
1
ответ
Как исключения обрабатываются в целом на любом языке программирования?
Какие изменения происходят в программе при обнаружении исключения? Как сгенерированное исключение попадает в ближайший блок catch.
19 июн '14 в 10:00
0
ответов
Как рекурсивная функция реализована в функциональных языках?
Рассмотрим следующую рекурсивную привязку верхнего уровня: let f = (a => f a); (где arg => expr это лямбда-выражение) Определить f в глобальной среде, сначала мы должны оценить ценность fа именно a => f a, Но с тех пор f выражение еще не оп…
03 май '18 в 15:04
1
ответ
Дизайн компилятора - лексический анализ: сколько столбцов занимает \t?
Я должен хранить информацию о токене для моего лексического анализатора, например его строку и столбец. Если я сталкиваюсь с некоторым исходным кодом, как это: \t \t int myInt; как узнать столбец токена? Потому что я не знаю, сколько столбцов нужно …
30 мар '13 в 19:56