Вопросы с тегом «compiler»

16
Почему так сложно набирать на работу, связанную с компилятором? [закрыто]

Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . На прошлой неделе несколько моих коллег и я участвовали в ярмарках вакансий в...

16
Как перейти от сборки к машинному коду (генерация кода)

Есть ли простой способ визуализировать шаг между сборкой кода в машинный код? Например, если вы откроете бинарный файл в блокноте, вы увидите текстовое представление машинного кода. Я предполагаю, что каждый байт (символ), который вы видите, является соответствующим символом ascii для его двоичного...

16
Недостатки функциональной промежуточной формы

Я пишу оптимизатор для языка, похожего на JavaScript, и мне нужно выбрать промежуточное представление кода. Очевидный / типичный выбор в эти дни - статическое одиночное назначение (SSA). Однако в современной реализации компилятора на C также обсуждается функциональная промежуточная форма, что в...

15
Как дженерики реализованы в современном компиляторе?

Я имею в виду, как нам перейти от какого-то шаблона T add(T a, T b) ...к сгенерированному коду? Я подумал о нескольких способах достижения этой цели: мы храним обобщенную функцию в AST как, Function_Nodeа затем каждый раз, когда мы ее используем, мы сохраняем в исходном узле функции свою копию со...

15
Есть ли подкасты (не лекции) о разработке компилятора?

Ответы на этот вопрос - работа сообщества . Отредактируйте существующие ответы, чтобы улучшить этот пост. В настоящее время он не принимает новые ответы или взаимодействия. Есть несколько подкастов с лекциями из университетов. Я ищу "другие" подкасты. Так есть ли какие-нибудь нелекционные подкасты...

15
Предупреждения компилятора

Многие компиляторы имеют предупреждающие сообщения, предупреждающие программистов о возможных ошибках времени выполнения, логике и производительности, в большинстве случаев вы их быстро исправляете, но как насчет нефиксируемых предупреждений? Как вы справляетесь с нефиксированными предупреждениями?...

15
Как система статических типов влияет на разработку языка на основе прототипов?

Статья Википедии на прототипы языков на основе содержит следующий пункт: Почти все системы на основе прототипов основаны на интерпретируемых и динамически типизированных языках. Однако системы, основанные на статически типизированных языках, технически осуществимы. Каким образом статическая система...

15
Существуют ли какие-либо компиляторы, которые пытаются исправить синтаксические ошибки самостоятельно? [закрыто]

Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 5 лет назад . Некоторое время назад я слышал, что раньше был...

15
Работа компилятора - сколько нужно образования [закрыто]

Закрыто. Этот вопрос не по теме . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения стека Exchange. Закрыто 4 года назад . Я был мотивирован вопросом « Построение компилятора как предмет» и...

15
Могут ли компиляторы преобразовывать рекурсивную логику в эквивалентную нерекурсивную логику?

Я изучаю F #, и это начинает влиять на то, как я думаю, когда я программирую на C #. С этой целью я использовал рекурсию, когда чувствую, что результат улучшает читабельность, и я не могу представить, что это приведет к переполнению стека. Это заставляет меня спросить, могут ли компиляторы...

15
Правда ли, что первые версии компиляторов C работали в течение десятков минут и требовали смены дискет между этапами?

Вдохновлен этим вопросом . Я слышал, что некоторые очень ранние версии компиляторов C для персональных компьютеров (я полагаю, это около 1980 года) располагались на двух или трех дискетах, поэтому для компиляции программы сначала нужно было вставить диск с «первым проходом», запустить «первый...

15
Имеет ли смысл Scrum при реализации нового бэкэнда компилятора?

У меня есть существующий язык, который мне нужно перенести на новую платформу. Я, вероятно, попробую это, изменив бэкэнд существующего компилятора. Переписать бэкэнд - это значительный объем работы. Я не вижу способа разбить это на разумные истории, не нарушив критерии INVEST. Я не вижу, как каждая...

14
Как компиляторы знают о других классах и их свойствах?

Я пишу свой первый язык программирования, который является объектно-ориентированным и до сих пор хорош в создании единого «класса». Но, скажем, я хочу, чтобы уроки, скажем, ClassAи ClassB. Если эти двое не имеют ничего общего друг с другом, тогда все хорошо. Однако, скажем, ClassAсоздает - это...

14
Зачем на С ++ писать компилятор?

Мне было интересно, почему C ++ является хорошим выбором для написания компилятора. Конечно, C также хорош для этой цели, потому что многие компиляторы написаны либо на C, либо на C ++, но в этот раз меня больше интересует C ++. Есть веские причины? Я искал это в Интернете, но не могу найти веских...

14
Почему LLVM имеет IR в виде сборки, а не в виде дерева IR? Или: почему проекты нацелены на LLVM IR, а не на AST Clang?

Почему промежуточное представление LLVM (LLVM IR) похоже на сборку, а не на дерево? В качестве альтернативы, почему языковые реализации нацелены на IR LLVM, а не на AST Clang? Я не пытаюсь задавать два разных вопроса одновременно, если так кажется. Мне просто кажется, что и клиентские и...

14
Как я узнаю, что компилятор нарушил мой код и что мне делать, если это был компилятор?

Время от времени код C ++ не будет работать при компиляции с некоторым уровнем оптимизации. Это может быть компилятор, выполняющий оптимизацию, которая нарушает код, или это может быть код, содержащий неопределенное поведение, которое позволяет компилятору делать все, что он чувствует. Предположим,...

14
Используются ли компиляторы вне разработки?

Насколько я понимаю, компиляторы предназначены для разработчиков, компилирующих свой код в исполняемые (машинные) файлы. Компиляторы не распространяются на клиентскую машину или систему конечного пользователя. Вместо этого разработчики просто используют компилятор для преобразования своего кода в...

13
Есть ли стандартный способ или стандартная альтернатива упаковке структуры в c?

Когда программирование в CI показало, что упаковывать структуры, используя __attribute__((__packed__))атрибут GCCs, неоценимо, я могу легко преобразовать структурированный кусок энергозависимой памяти в массив байтов, который будет передаваться по шине, сохраняться в хранилище или применяться к...

13
Какое отношение имеет разбор без сканера к «Проблеме с висящими остальными»?

Я не понимаю это предложение из статьи в Википедии, посвященной проблеме оборванного остального : [Проблема Dangling Else] - это проблема, которая часто возникает при построении компилятора, особенно при анализе без сканирования. Может кто-нибудь объяснить мне, как методы анализа без сканирования...

13
Почему компилятор не может избежать импорта файла заголовка дважды?

Новое в C ++! Итак, я читал это: http://www.learncpp.com/cpp-tutorial/110-a-first-look-at-the-preprocessor/ Заголовок охранников Поскольку заголовочные файлы могут включать в себя другие заголовочные файлы, возможно, что в конечном итоге файл заголовка будет включен несколько раз. Поэтому мы делаем...