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

Тег compiler-construction следует применять к вопросам, касающимся программирования компиляторов, или к вопросам о детальной внутренней работе компиляторов. НЕ ИСПОЛЬЗУЙТЕ для вопросов об * использовании * определенных компиляторов или ошибках компиляции.

6
Какие шаблоны я могу применить к коду, чтобы упростить перевод на другой язык программирования? [закрыто]
Закрыто . Этот вопрос должен быть более конкретным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, отредактировав этот пост . Закрыт 5 лет назад . Уточните этот вопрос Я собираюсь выполнить побочный проект, целью которого является перевод …

11
Детерминировано ли создание файлов классов Java?
При использовании одного и того же JDK (т.е. одного и того же javacисполняемого файла) всегда ли сгенерированные файлы классов идентичны? Может быть разница в зависимости от операционной системы или оборудования ? Могут ли быть какие-то различия, кроме версии JDK? Есть ли какие-либо параметры компилятора, чтобы избежать различий? Возможно ли различие …

5
реализация вывода типа
Я вижу здесь несколько интересных дискуссий о статической и динамической типизации. Обычно я предпочитаю статическую типизацию из-за проверки типа компиляции, лучшего документированного кода и т. Д. Однако я согласен с тем, что они действительно загромождают код, например, так, как это делает Java. Итак, я собираюсь начать создавать собственный язык функционального …


8
Как подойти к созданию языка программирования JVM?
Я создал компилятор на C (используя Lex & Bison) для языка программирования с динамической типизацией, который поддерживает циклы, объявления функций внутри функций, рекурсивные вызовы и т. Д. Я также создал виртуальную машину, которая запускает промежуточный код, созданный компилятором. Я думал о компиляции его в байт-код Java вместо моего собственного промежуточного …

4
Компиляция против транспилирования
В поисках разницы я наткнулся на следующие определения: Компиляция - это общий термин для преобразования исходного кода, написанного на одном языке, в другой. Транспилирование - это особый термин для преобразования исходного кода, написанного на одном языке, в другой язык, имеющий аналогичный уровень абстракции. Я понимаю, что такое абстракция. Но что …

6
Действительно ли парсеры GCC и Clang написаны от руки?
Похоже, что GCC и LLVM-Clang используют рукописные рекурсивные анализаторы спуска , а не машинно-сгенерированные, восходящие парсеры на основе Bison-Flex. Может ли кто-нибудь здесь подтвердить, что это так? И если да, то почему основные среды компиляторов используют рукописные синтаксические анализаторы? Обновление : интересный блог на эту тему здесь

7
Как ядро ​​Linux может скомпилироваться?
Я не совсем понимаю процесс компиляции ядра Linux, когда устанавливаю систему Linux на свой компьютер. Вот что меня смутило: Ядро написано на C, однако как ядро ​​было скомпилировано без установленного компилятора? Если компилятор C установлен на моем компьютере до компиляции ядра, как компилятор может быть скомпилирован без установленного компилятора? Пару …

6
Компиляторы создают лучший код для циклов do-while по сравнению с другими типами циклов?
В библиотеке сжатия zlib (которая среди многих других используется в проекте Chromium) есть комментарий, который подразумевает, что цикл do-while в C генерирует «лучший» код для большинства компиляторов. Вот фрагмент кода, где он появляется. do { } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) …

7
Почему проще написать компилятор на функциональном языке? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы на него можно было ответить с помощью фактов и цитат, отредактировав этот пост . Закрыт 2 года назад . Уточните этот вопрос Я очень долго думал над этим …



13
В чем разница между токеном и лексемой?
В «Конструировании компилятора» Ахо Уллмана и Сетхи указано, что входная строка символов исходной программы делится на последовательность символов, имеющих логическое значение и называемых токенами, а лексемы - это последовательности, составляющие токен, и что в чем принципиальная разница?

2
Где я могу изучить основы написания лексера?
Я хочу научиться писать лексический анализатор. В моем университетском курсе было задание, в котором мы должны были написать синтаксический анализатор (и лексер для его выполнения), но это было дано нам без каких-либо инструкций или отзывов (за пределами установленной отметки), поэтому я особо не многому из него научился. После поиска по …

8
Почему GDB непредсказуемо перескакивает между строками и выводит переменные как «<оптимизированное значение>»?
Может ли кто-нибудь объяснить такое поведение gdb? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.