Редактирование: QBE
Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 4: | Строка 4: | ||
<div>__TOC__</div> | <div>__TOC__</div> | ||
− | + | =Входные файлы | |
− | Промежуточный язык предоставляется QBE в виде текста. Как правило, один файл создается для каждой программы с входного языка интерфейса. IL-файл представляет собой последовательность определений для данных, функций и типов. После обработки QBE полученный файл может быть собран и связан с использованием стандартного инструментального ПО (например, [https://ru.wikipedia.org/wiki/GNU_Binutils | + | Промежуточный язык предоставляется QBE в виде текста. Как правило, один файл создается для каждой программы с входного языка интерфейса. IL-файл представляет собой последовательность определений для данных, функций и типов. После обработки QBE полученный файл может быть собран и связан с использованием стандартного инструментального ПО (например, [https://ru.wikipedia.org/wiki/GNU_Binutils GNU binutils]). |
<pre>The intermediate language is provided to QBE as text. Usually, one file is generated per each compilation unit from the frontend input language. An IL file is a sequence of Definitions for data, functions, and types. Once processed by QBE, the resulting file can be assembled and linked using a standard toolchain (e.g., GNU binutils).</pre> | <pre>The intermediate language is provided to QBE as text. Usually, one file is generated per each compilation unit from the frontend input language. An IL file is a sequence of Definitions for data, functions, and types. Once processed by QBE, the resulting file can be assembled and linked using a standard toolchain (e.g., GNU binutils).</pre> | ||
Строка 25: | Строка 25: | ||
<pre>If you have read the LLVM language reference, you might recognize the example above. In comparison, QBE makes a much lighter use of types and the syntax is terser.</pre> | <pre>If you have read the LLVM language reference, you might recognize the example above. In comparison, QBE makes a much lighter use of types and the syntax is terser.</pre> | ||
− | + | =Запись БНФ | |
Синтаксис языка, который Вы сможете найти в разделах данной Wiki (и в оригинальной документации), описан с использованием [https://ru.wikipedia.org/wiki/Форма_Бэкуса_—_Наура БНФ]. Различные используемые конструкции [https://ru.wikipedia.org/wiki/Форма_Бэкуса_—_Наура БНФ] перечислены ниже. | Синтаксис языка, который Вы сможете найти в разделах данной Wiki (и в оригинальной документации), описан с использованием [https://ru.wikipedia.org/wiki/Форма_Бэкуса_—_Наура БНФ]. Различные используемые конструкции [https://ru.wikipedia.org/wiki/Форма_Бэкуса_—_Наура БНФ] перечислены ниже. | ||
Строка 35: | Строка 35: | ||
...* и ...+ используются для произвольных обозначений и для повторений соответственно. | ...* и ...+ используются для произвольных обозначений и для повторений соответственно. | ||
− | + | Символы | |
Промежуточный язык изобилует разными символами, все пользовательские имена выделяются символьным префиксом. Это делается для предотвращения конфликтов с ключевыми словами, а также для быстрого определения области видимости и характера идентификаторов. | Промежуточный язык изобилует разными символами, все пользовательские имена выделяются символьным префиксом. Это делается для предотвращения конфликтов с ключевыми словами, а также для быстрого определения области видимости и характера идентификаторов. |