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

Вопросы о программах, которые читают код на одном языке (исходный язык) и переводят его в эквивалентную программу на другом языке (целевой язык).

175
Как может язык, чей компилятор написан на C, быть быстрее C?

Взглянув на веб-страницу Джулии , вы можете увидеть некоторые тесты нескольких языков по нескольким алгоритмам (время показано ниже). Как может язык с компилятором, изначально написанным на C, превзойти C-код? Рисунок: время тестов относительно C (чем меньше, тем лучше, производительность C =...

82
Почему некоторые языки программирования «быстрее» или «медленнее», чем другие?

Я заметил, что некоторые приложения или алгоритмы, построенные на языке программирования, скажем, C ++ / Rust, работают быстрее или быстрее, чем те, которые основаны, скажем, на Java / Node.js, работающие на той же машине. У меня есть несколько вопросов по этому поводу: Почему это происходит? Что...

72
Какие свойства языка программирования делают компиляцию невозможной?

Вопрос: «Некоторые свойства языка программирования могут требовать, чтобы единственный способ получить код, написанный на нем, выполнялся путем интерпретации. Другими словами, компиляция в собственный машинный код традиционного ЦП невозможна. Что это за свойства?» Составители: принципы и практика...

64
Может ли динамический язык, такой как Ruby / Python, достичь производительности, подобной C / C ++?

Интересно, можно ли создавать компиляторы для динамических языков, таких как Ruby, чтобы они были похожи и сопоставимы по производительности с C / C ++? Из того, что я понимаю о компиляторах, возьмем, к примеру, Ruby, компиляция кода Ruby никогда не может быть эффективной, потому что способ,...

63
Почему компиляторы автоматически не вставляют освобождение?

Предполагается, что в таких языках, как C, программист вставляет вызовы бесплатно. Почему компилятор не делает это автоматически? Люди делают это в разумные сроки (игнорируя ошибки), поэтому это не невозможно. РЕДАКТИРОВАТЬ: Для дальнейшего использования, вот еще одна дискуссия, которая имеет...

54
Временная сложность компилятора

Меня интересует сложность времени компилятора. Ясно, что это очень сложный вопрос, так как есть много компиляторов, опций компилятора и переменных, которые необходимо учитывать. В частности, меня интересует LLVM, но меня интересуют любые мысли людей или места, где можно начать исследования....

38
От чего зависит «скорость» языка программирования?

Предположим, что программа написана на двух разных языках, пусть это будет язык X и язык Y, если их компиляторы генерируют один и тот же байт-код, почему я должен использовать язык X вместо языка Y? Что определяет, что один язык быстрее, чем другой? Я спрашиваю об этом, потому что часто вы видите,...

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

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

28
Существуют ли программы, которые могут «переводить» исходный код между любыми двумя языками?

Существуют ли программы, которые могут «переводить» исходный код между любыми двумя языками (при условии, что переводчик имеет доступ к необходимым библиотекам)? Если есть, как они работают (используемые методы, необходимые знания и т. Д.)? Как они могут быть построены? Если нет, то какие...

28
Почему пустой тип C не аналогичен пустому / нижнему типу?

Википедия, а также другие источники, которые я обнаружил в списке voidтипа C как тип единицы, а не пустой тип. Мне кажется, что это сбивает с толку, так как мне кажется, что оно voidлучше подходит под определение пустого / нижнего типа voidНасколько я могу судить, ценности не обитают . Функция с...

28
Что такое пакетный компилятор?

У меня есть следующая цитата из курса моего компилятора (в контексте раскраски графа): Поскольку это медленно, раскраска графа имеет тенденцию использоваться в пакетных компиляторах, в то время как линейное сканирование имеет тенденцию использоваться в компиляторах JIT. Я не мог найти четкое...

22
Чем JIT-компилятор отличается от обычного компилятора?

Было много ажиотажа по поводу JIT-компиляторов для таких языков, как Java, Ruby и Python. Чем JIT-компиляторы отличаются от компиляторов C / C ++ и почему компиляторы, написанные для Java, Ruby или Python, называются JIT-компиляторами, а компиляторы C / C ++ просто называются...

20
Разбор произвольных контекстно-свободных грамматик, в основном коротких фрагментов

Я хочу разобрать определенные пользователем доменные языки. Эти языки обычно близки к математическим обозначениям (я не разбираю естественный язык). Пользователи определяют свои DSL в нотации BNF, например так: expr ::= LiteralInteger | ( expr ) | expr + expr | expr * expr Подобные входные данные 1...

20
Почему плохая рекурсия?

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

20
Существуют ли полностью оптимизирующие компиляторы для завершающих программ?

В книге Эндрю У. Аппеля « Реализация современного компилятора в ML» он говорит в главе 17, что теория вычислимости показывает, что всегда можно изобрести новые оптимизирующие преобразования, и продолжает доказывать, что полностью оптимизирующий компилятор решит проблему остановки: Программа Q,...

16
Почему статическое одиночное назначение предпочтительнее стиля передачи продолжения во многих используемых в отрасли компиляторах?

Согласно странице Википедии о статическом одиночном назначении (SSA) , SSA используется крупными и известными проектами, такими как LLVM, GCC, MSVC, Mono, Dalvik, SpiderMonkey и V8, в то время как страница с проектами использует стиль прохождения продолжения. (CPS) немного не хватает в сравнении. У...

15
Вывод типа с типами продукта

Я работаю над компилятором для конкатенативного языка и хотел бы добавить поддержку вывода типов. Я понимаю Хиндли-Милнера, но я изучаю теорию типов по ходу дела, поэтому не знаю, как ее адаптировать. Является ли следующая система надежной и достоверной? Термин - это литерал, композиция терминов,...