LINUX.ORG.RU

ищется учебный компилятор/линкер

 blackboxcomponentbuilder, , , ,


0

3

Ищется компилятор и линкер простого языка в машинный код для учебных целей. Сейчас копаюсь с Обероном КП (тж известен, как blackboxcomponentbuilder), но он написан, по моим понятиям, достаточно плохо - оптимизирован под однопроходность и ещё есть ряд проблем. Из его плюсов - в нём есть горячая замена модулей и динамическая загрузка, компилятор и компоновщик встроены прямо в рантайм, достаточно мощная интроспекция, наличие безопасных и опасных примитивов, сборка мусора, загрузка библиотек, написанных на иных языках, отладчик.

Я думаю, что скорее всего аналогов у него нет и искать безполезно, но вдруг что-то подобное всё же есть.

★★★★★

Последнее исправление: den73 (всего исправлений: 1)

Ищется компилятор и линкер простого языка в машинный код для учебных целей.

Книжка: Вирт Н., Гуткнехт Ю. Разработка операционной системы и компилятора. Проект Оберон. 2012. ©.

Я думаю, что скорее всего аналогов у него нет и искать безполезно, но вдруг что-то подобное всё же есть.

Есть Active Oberon ©.

quickquest ★★★★★
()

Можно посмотреть Tiny C Compiler. Что там внутри - не знаю, но, по отзывам, он довольно понятный.

anonymous
()
Ответ на: комментарий от quickquest

Active Oberon

ну, это я бы сказал то же, только в профиль. Хотя я вчера поглядел, вот в project oberon качество кода чуть выше. А в Active Oberon (скачивал ОС А2) практически тот же компилятор.

Касаемо tcc - он, вроде, однопроходный, а это (ИМХО) резко усложняет компилятор, снижает понятность, делает его менее гибким. Хотя всё равно спасибо за совет.

den73 ★★★★★
() автор топика
Ответ на: комментарий от monk

2300 строк

страшная штука.

http://books.rusf.ru/unzip/add-on/xussr_ty/fin__a13.htm?1/1

В паспорте у Жука написано: «робот повышенной жизнестойкости». Его черную бронированную спину не прожечь и тепловой пилой, но под пилу его палкой не загонишь.
...
Когтев смотрел на робота и нежно улыбался. Мне хотелось плюнуть. Если человек находит утешение в том, что железка говорит голосом сына... Надо ж, и времени не пожалел, чтобы перепрограммировать... Эх!
Я хотел уже демонстративно отвернуться к стене, и вдруг меня осенило, да так, что я поперхнулся крошкой от сухаря.
Иногда и глупость может продвинуть прогресс. Я прокашлялся и спросил:
- Как ты влез ему в программу?
- Очень просто. Дал ему прочитать новую, глазами.

Einstok_Fair ★★☆
()
Ответ на: комментарий от quickquest

Оказывается в A2OS есть два компилятора. Второй называется FoxCompiler, там всё разбито культурно на этапы. Но этот, по-моему, перебор для учебного - 3 мегабайта. А когда заходишь и видишь, что там делают шаблон визитор, то сразу хочется закрыть и больше не заходить.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от monk

Спасибо, положил в закладки.

den73 ★★★★★
() автор топика

Я думаю, что скорее всего аналогов у него нет и искать безполезно, но вдруг что-то подобное всё же есть.

Inferno?

korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

Реализован ли для этой операционной системы компилятор языка Ада?

Einstok_Fair ★★☆
()
Ответ на: комментарий от korvin_

В ББЦБ - нет. Буэ потому что байт-код тормозной, очевидно.

den73 ★★★★★
() автор топика
13 февраля 2019 г.

язык B

BCPL см. про ocode

ещё BCPL

VSPL на BCPL

не то, чтобы с линкером, но на форте: RETRO Let's Build a Compiler: Tiny Kiss in iForth исходная книга Креншоу

в исходной книге Креншоу про компилятор на ассемблере простого паскаль-подобного языка. в римейке про Tiny Kiss — про реализацию на форте (оказалась даже проще исходной).

anonymous
()
Ответ на: комментарий от den73

там регистровый байткод Dis, а вообще смотреть нужно компилятор Limbo в исходниках Inferno.

Limbo — это нечто наподобие C + Go только модульный на основе байткода.

сама по себе Inferno — запускалка процессов в духе пространств имён Plan9 поверх голого железа, или другой ОС. там запускается шелл и GUI на tk (без tcl). то есть, шелл по умолчанию позволяет скриптовать GUI — прямым вызовом tk на Limbo модулях, либо в духе Plan9 plumbing.

есть у caerwyn, ЕМНИП, пример реализации Scheme поверх этого Limbo.

про схему, кстати: SubC, подмножество Си и у него же есть книжка и Scheme 9 from Empty Space — интерпретатор R4RS схемы. собирается на Plan9, если переписать с си на Limbo, думаю и под Inferno соберётся. тулза edoc тоже любопытна. s9fes(гитхаб)

anonymous
()
Ответ на: комментарий от anonymous

компилятор Limbo в Inferno находится здесь и здесь, ещё см. Dis и загрузчик байткода, шелл и примеры limbotk , tk, libtk и распределённая сетевая рисовалка, сетевой чятик и чятик на шелле, с tk

вообще в документации install.pdf + gridinstall.pdf

примеры показывают вообще годность Инферны: создаём общее сетевое пространство имён, коннектимся в него одним emu -g из под win, другим из-под lin, plan9 :) и т. п. — и получаем распределённый GUI, чятик, рисовалку, и т.п.

вообще, если оно (emu -g) собирается под Plan 9, может и отдельно kencc его соберёт, а не общесистемный gcc, например. а если этот kencc переписать под саму Inferno, получится полностью self-hosted.

хотя для простых ковыряний «кроссплатформный код, который в emu -g работает под всеми системами» Limbo достаточно.

anonymous
()
Ответ на: комментарий от anonymous

Да вообще компилятор Fox выглядит более-менее пристойным, в нём и аналог doxygen встроен, или потуги на него хотя бы. В A2 есть свой гуй, в т.ч. закладки и гриды, не говоря уж о богатом тексте. И без всякого байткода, и более-менее кроссплатформенно. Другое дело, что я без работы и в апокалиптическом настрое, так что ... (чуть матом не написал).

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Я принципиально против байткода был ну абсолютно всегда. И с того момента, как у меня появился выбор, я никогда не использовал ни одной технологии с байткодом. Выбора у меня не было при выборе SQL-ей (хотя кто знает, что у них внутри), tk (скрепя сердце) и какого-нибудь VBA (опять же, тут выбора не было). Даже JS ведь это нативный код :)

Т.е. технологии, основанные на байткоде, я сразу даже не рассматриваю.

den73 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.