Такс, значит у нас тут компиляторы со всем с ними связанным. Немного полезных материалов:
- Компиляторы. Принципы, технологии и инструментарий (2018). А. Ахо ⭐
- Конструирование компиляторов (2015). С. Свердлов
- Проектирование и конструирование компиляторов (1984). Р. Хантер
- Теория формальных языков (2004). Пентус А.Е.
- Основы построения компиляторов (2007). Н. Смирнова, С. Тарасов ⭐
- Построение компиляторов (2010). Н. Вирт
- Введение в теорию автоматов, языков и вычислений (2008). Дж. Хопкрофт
- Ассемблер для процессоров Intel Pentium. (2006). Ю.Магда ⭐
Все книги в папке books
.
Первая книга всеобъемлюща настолько, что хватит только ее, чтобы понять все что нужно :)
Мне очень нравится вот этот плейлист
- Основы Тык ⭐
-
Какие языки можно использовать для транспиляции?
Желательно любой компилируемый язык. Можно сходит на википедию и выбрать любой: ссылка
-
В какой ассемблер происходит транспиляция (точнее даже чем потом надо будет компилировать ассемблер)?
Можно использовать masm (macro assembler), можно использовать любой другой, который интересно попробовать изучить.
Т.е. вам придётся выучить и разобраться в двух языках программирования, исходном с которого будете транслировать программу и ассемблер.
Ну и третий язык нужно уже знать достаточно хорошо, Си++ для написания работы.
-
Какие программы нужно будет реализовать на языке (какие части языка нужно реализовать)?
Решение квадратного уравнения; бинарная сортировка с рекурсией, решение системы уравнений, расчёт факториала.
Реализация массивов не нужно, а вот разобраться как реализовать функцию (макро команду), скорее всего придётся.
-
А как без массивов с сортировкой?
Стэк, запись в память, в файл, ну либо если массивы нужны, то реализовывайте их.
-
-
Нужно ли ходить на практики?
Желательно. Как я буду контролировать ход выполнения вами курсовой? Она довольно сложная, без посещения вы будете откладывать её выполнение и в конце концов не успеете.
-
И если ходить, то что показывать?
Расскажу на практике.
-
Нужно ли показывать промежуточные этапы проделанной работы?
Да.
-
Так же вот сейчас вопрос который интересует многих, можно ли взять С/С++?
Нет.
-
А как будет оцениваться работа?
В конечном счёте должна получиться программа, которая оттранслирует программу с исходного языка в ассемблерный код, исходная программа и ассемблерный код должны компилировать и выполняться. Ваша программа должна показывать в виде вывода на экран или файл ту информацию, на основе которой выполняет фазу лексического, синтаксического анализатора и генератора кода.
Ну и вы должна объяснить и понимать что происходит на каждом этапе и зачем.
Все делается с 0, без использования генераторов!
💡 Удачи со сдачей!