Запитання з тегом «compiler-construction»

Побудова компілятора тегів має застосовуватися до питань, що стосуються програмування компіляторів або до питань про детальну внутрішню роботу компіляторів. НЕ ВИКОРИСТОВУЙТЕ для питань щодо * використання * конкретних компіляторів або помилок компіляції.

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

11
Чи є створення файлів класу Java детермінованим?
Чи використовуються однакові файли JDK (тобто той самий javacвиконуваний файл), завжди збігаються файли класів? Чи може бути різниця залежно від операційної системи чи обладнання ? За винятком версії JDK, чи можуть існувати якісь інші фактори, що призводять до відмінностей? Чи є варіанти компілятора, щоб уникнути відмінностей? Чи є різниця лише …


4
Компіляція проти Транспілювання
Шукаючи різницю, я натрапив на такі визначення: Компіляція - загальний термін прийняття вихідного коду, написаного однією мовою, і перетворення на іншу. Транспіляція - це специфічний термін для прийняття вихідного коду, написаного однією мовою, та перетворення на іншу мову, яка має подібний рівень абстракції. Я розумію, що таке абстракція. Але що …

8
Створіть мову програмування JVM
Я створив компілятор на мові C (використовуючи lex & bison) для динамічної набраної мови програмування, що підтримує цикли, оголошення оголошень всередині функцій, рекурсивні виклики тощо. Я також створив віртуальну машину, яка запускає проміжний код, створений компілятором. Зараз я думав, замість того, щоб компілювати свій власний проміжний код, скомпілювати його в …

5
реалізація умовиводу типу
Я бачу тут кілька цікавих дискусій щодо статичного та динамічного набору тексту. Я, як правило, віддаю перевагу статичному набору тексту, завдяки перевірці типу компіляції, кращому документованому коду і т. Д. Однак я погоджуюсь, що вони дійсно захаращують код, якщо це робиться так, як це робить Java, наприклад. Тож я збираюся …

6
Чи справді парсери GCC та Clang написані від руки?
Здається, GCC та LLVM-Clang використовують рукописні парсери рекурсивного спуску , а ні машинний, розроблений на основі Bison-Flex, синтаксичний аналіз знизу вгору. Хтось тут може підтвердити, що це так? І якщо так, то чому основні фреймворки компілятора використовують рукописні парсери? Оновлення : цікавий блог на цю тему тут

6
Чи створюють компілятори кращий код для циклів виконуваної роботи порівняно з циклами інших типів?
У бібліотеці стиснення zlib (яка серед багатьох інших використовується в проекті Chromium) є коментар, який передбачає, що цикл виконуваної роботи в C генерує "кращий" код для більшості компіляторів. Ось фрагмент коду, де він з’являється. do { } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && …

7
Як ядро ​​Linux може скомпілювати себе?
Я не зовсім розумію процес компіляції ядра Linux, коли я встановлюю систему Linux на свою машину. Ось кілька речей, які мене збентежили: Ядро написано на мові C, проте як ядро ​​скомпілювалось без встановленого компілятора? Якщо компілятор C встановлений на моїй машині до компіляції ядра, як сам компілятор може бути скомпільований …

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) **908 …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.