README.md

Интерпретатор нано-Форт

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

Целью данного проекта было реализовать интерпретатор достаточно продвинутого языка программирования для сверхограниченного микроконтроллера. Цель проекта была успешно достигнута, ядро интерпретатора Форт, вместе с интерфейсом для интерактивного ввода программ, занимает 4к памяти на микроконтроллере AVR ATMega. Если интерактивный ввод програм не нужен, можно скинуть ещё 2к памяти. Также возможна компиляция под платформу x86-64, так гораздо проще отлаживать платформо-независимую функциональность. Как можно понять из наличия таких разных портов, интерпретатор можно достаточно легко перенести и на другие платформы, например, stm32.

Интерпретатор позволяет интерактивно добавлять новые слова в ППЗУ (EEPROM). Размер ППЗУ невелик, но Форт - один из немногих языков, программы на котором получаются меньше, чем если бы они были написаны на ассемблере.

Вся документация написана на английском языке. Вход в документацию через файл index.html. Подробно описаны все внутренности интерпретатора, список ключевых слов и т.п.

Собрать Форт консоль под x86_64-linux можно командой:

make TARG=x86_64-linux fcon

Аналогично, для сборки под avr

make TARG=avr fcon

Существует почти рабочий порт на 32-битную архитектуру x86, но из-за ограничений в ld я не смог добиться работающего результата (загрузчик ELF падает при загрузке выполняемого файла). Если Вы сумеете починить 32-битный порт, обязательно мне напишите.

Приятного просмотра, надеюсь кому-то проект окажется полезным.

Описание

нано-интерпретатор языка Форт для микроконтроллеров AVR

Конвейеры
0 успешных
0 с ошибкой