Size: a a a

Compiler Development

2021 February 06

M

MrSmith in Compiler Development
Нет, я про аналог тулзы выше
источник

M

MrSmith in Compiler Development
В вайне пытался пустить оно упало вот думаю вдруг аналоги есть
источник

M

MrSmith in Compiler Development
Map файлам же тонна лет
источник

KR

K R in Compiler Development
Они разве не текстовые?
источник

M

MrSmith in Compiler Development
Текстовые, dwarf в самом обтектнике
источник

KR

K R in Compiler Development
Ну под Unix такое просто grep, sed, cut делают на текстовых файлах.
источник

KR

K R in Compiler Development
Чтобы вывести символы Elf - objdump.
источник

KR

K R in Compiler Development
И nm.
источник

DF

Dollar Føølish in Compiler Development
И gdb -batch )))
источник

M

MrSmith in Compiler Development
источник

M

MrSmith in Compiler Development
источник

H

Hirrolot in Compiler Development
написал парочку примеров для компиляторов на datatype99 (библиотека для тип-сумм в C99):

кодировка AST: https://github.com/Hirrolot/datatype99/blob/master/examples/ast.c
кодировка токенов: https://github.com/Hirrolot/datatype99/blob/master/examples/token.c
источник

SS

Sergey Sverdlov in Compiler Development
В очередной раз начался курс лекций "Трансляция языков программирования". Сегодня опубликована первая видеолекция. Лекции будут выходить еженедельно. Курс для начинающих.
https://www.youtube.com/watch?v=thohRc7ZJQA
источник

SS

Sergey Sverdlov in Compiler Development
Программы с лекций публикуются здесь: https://t.me/c3c_education/3318
источник

К

Константин in Compiler Development
А видеолекции в каждом курсе пишутся заново? Что-то постоянно меняется?
источник

SS

Sergey Sverdlov in Compiler Development
В прошлом году видеолекции начали публиковаться с конца марта. Сейчас выйдут начальные лекции. Потом перейду на прошлогодние.
источник

D

Danya in Compiler Development
Спасибо!
источник

JT

James Tevision in Compiler Development
@alexanius, можете подскзать пару моментов?

Я могу как-то указать gcc что моему фронтэнду тоже необходима обработка препроцессором? (стандартным cpp)

А как в gimple образаться к аргументам функции?
Аля
int main(int argc, char** argv)
{ return argc; }

И возможно вам будет полезно:
Гимпл понимает анонимные метки
(Т.е вместо get_identifier("name") даем NULL_TREE)
Так намного удобней делать ветвления поскольку не надо думать об уникализации имен

(Возможно это работает и с переменными)
источник

A

Alex in Compiler Development
James Tevision
@alexanius, можете подскзать пару моментов?

Я могу как-то указать gcc что моему фронтэнду тоже необходима обработка препроцессором? (стандартным cpp)

А как в gimple образаться к аргументам функции?
Аля
int main(int argc, char** argv)
{ return argc; }

И возможно вам будет полезно:
Гимпл понимает анонимные метки
(Т.е вместо get_identifier("name") даем NULL_TREE)
Так намного удобней делать ветвления поскольку не надо думать об уникализации имен

(Возможно это работает и с переменными)
Есть способ простой, но не самый красивый - вызывать процесс из своего фронтенда.

Если делать по красоте, то я бы смотрел в сторону файла конфигурации lang-specs.h. Там, есть строчка вроде:

{"@x",  "x1 %i %(cc1_options) %{!fsyntax-only:%(invoke_as)}", 0, 1, 0},

которая показывает что нужно вызывать ещё и ассемблер (на сколько я понял). По идее здесь же можно указать необходимость вызова cpp. Подробнее синтаксис этого файла можно почитать тут: https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html

По гимплу не скажу - я туда даже не заглядывал.
источник

VR

Vartan RedMan in Compiler Development
есть кто знает как внедрить в функцию вызов функции printf через llvm?
пытаюсь сделать через getOrInsertFunction() используя ModulePass но не получается
источник