Форум программистов, компьютерный форум, киберфорум
Assembler: MASM64, х64/long mode
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 25
1

Написать язык программирования под 64 битную виртуалку на ассемблере

23.01.2017, 02:30. Просмотров 1889. Ответов 4
Метки нет (Все метки)


Дорогие знатоки, я как не особо знающий язык ассемблера человек, получил такую непростую задачу по курсовому( см. Заголовок). Я конечно понимаю на счет того как создается компилятор, поверхносно, а именно в 7 шагов (на сколько я осведомлен) : лексер - парсер - семантический анализатор - генератор промежуточного кода - машинно-независимая оптимизация - генератор кода - машинно-зависимая оптимизация. Но вот как создать язык программирования я что-то не могу понять. Компилятор - это ведь только часть работы над языком? Что мне вообще надо сделать? Помогите, пожалуйста, кто в этом разбирается.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2017, 02:30
Ответы с готовыми решениями:

Язык программирования под .NET
Какой язык программирования в .NET является для вас основным?

Посоветуйте язык программирования под Android
Добрый день! В связи с огромным ростом популярности мобильных устройств возник вопрос - стоит ли...

Что мощнее язык программирования Perl или язык программирования PHP
Какой из них лучше

Популярный язык программирования для разработки под Linux
Мне кажется один из самых удобных языков программирования при разработке десктопных приложений под...

__________________
Помогаю в написании студенческих работ здесь.
4
2051 / 1526 / 167
Регистрация: 14.12.2014
Сообщений: 13,326
23.01.2017, 04:09 2
Цитата Сообщение от Max7CD Посмотреть сообщение
Но вот как создать язык программирования я что-то не могу понять.
Ну надо лет 20-25 попрограммировать серьезно на каком то языке. Понять что ему не хватает. Т.е. что постоянно переписываешь однотипное и что можно возложить на машину. Ну и потом придумать непротиворечивую логику такого возложения и воплотить это в новых синтаксических конструкциях которых в старом языке нет.
Цитата Сообщение от Max7CD Посмотреть сообщение
Что мне вообще надо сделать? Помогите, пожалуйста, кто в этом разбирается.
Ну компилятор на асме это через чур. Реально понадобился метокомпилятор. т.е. лексер+парсер С++ и вывод в исходник словаря парсинга. Вторую неделю леплю на С++ библиотеку спецстрок в которой каждый символ будет хранить не один символ а алфавит допустимых символов. А нужны такие строчки для того чтобы сформулировать задание генератору таблиц переключений состояний лексера и парсера причем парсить их из грамматик. а то ручками не то что такие таблицы задавать, а даже задания генератору бесполезное занятие. Генератору таблиц лексера еще как то задания в ручную диапазонами даются а для парсера уже никак. Так что думаю на асме дальше простейшей версии С или Фортрана, а еще лучше бейсика где автоматы и в ручную в принципе можно написать можно даже не пытаться.
0
4$M f0r3v3r XD
5822 / 1758 / 192
Регистрация: 14.12.2014
Сообщений: 3,299
Записей в блоге: 11
23.01.2017, 21:33 3
Max7CD, сделайте компилятор языка Brain**** (или придумайте аналог с теми же функциями + можно добавить ещё возможность писать подпрограммы, например, Aкодпродпрограммы; и вызов: a)

В инете очень много кода написано на этом языке и компиляторов...
1
6557 / 2652 / 365
Регистрация: 17.02.2013
Сообщений: 3,884
24.01.2017, 00:57 4
Лучший ответ Сообщение было отмечено Max7CD как решение

Решение

Возьми книгу Вирт Н. Построение компиляторов. Там в конце пример компилятора подмножества языка Оберон в исходниках, а сама книга суть теория этого дела и соответствующие алгоритмы к грядущему компилятору. В общем готовый компилятор в конце - венец всей книги. Кстати, он как раз генерирует код под виртуальную машину.

Плюс я цепляю к сообщению микроскопический компилятор Паскаля, который написан кем-то после прочтения этой книги. Причем в данном случае это компилятор компиляторов. Т.е. он один в один компилирует себя.

Короче, возьми что-нибудь из этого и выколоти из него лишнее. Сделай совсем примитивное подмножество языка. МикроНедоПаскаль-00. Или Кастрированный_ПолуОберон. Напиши компилятор на ЯВУ, отладь, а потом перепиши на ассемблере.

Это если твоя курсовая требует действительно синтаксического, семантического и прочих рекурсивных разборов и спусков. А если это не обязательно, то таки да ... Brain**** и прочая эзотерика. Которую придумать можно под бутылку пива. Или вообще можно написать компилятор программ для калькуляторов Б3-34, МК-61, MK-52. Программ для них много. http://www.lordbss.pp.ru/pmk.html Или придумать что-нибудь свое, аналогичное этим программируемым калькуляторам.

В любом случае, ты бы не название курсовой читал, а пошел к преподавателю и спросил, что катит, а что нет. Что требуется, а что можно проигнорировать. А то слишком уж объемная задача, в такой формулировке. Короче, определись точнее. Пока уж слишком неопределенно с твоей темой.
0
Вложения
Тип файла: zip BeRoTinyPascal.zip (31.5 Кб, 10 просмотров)
0 / 0 / 0
Регистрация: 03.11.2015
Сообщений: 25
27.01.2017, 15:29  [ТС] 5
Всем огромное спасибо за помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.01.2017, 15:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как написать подобный язык программирования?
Это даже скорее не язык программирования, я реализация типовых функций. Я хочу реализовать грубо...

Как будет себя вести код написанный под 32-битную ОС, при запуске под 64-битной
Это вопрос для профессионалов: Как будет себя вести код написанный под 32-битную ОС, при запуске...

Нужно написать алгоритмы действий решения задач , используя язык программирования
Часть 2: 19,2 Часть 3: 19,2,27,32,39,49

Компьютер под виртуалку с сервером
Доброго времени суток, господа, Вопрос следующего характера: Нужен системник для одной конкретной...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.