← All posts tagged яп

Renha
torth А помните ещё torth? я задумал сделать forth-подобный язык программирования как-то давно. Вот сейчас глянул лекцию для школьников по математичности ЯП, и подумал, может сделать типы как отдельные стеки?

Нет, не просто как в классическом форте с его отдельным стеком для чисел с плавающей точкой, а с инструментами для объявления (создания) новых стеков, то есть типов.
Renha
программирование яп FORTH torth Подумал как потоки можно реализовать наиболее простым образом.

Пока по запуску потоков есть идеи:
есть специальный набор суффиксов, которые указывают что слово нужно запустить в отдельном потоке, а также из стека извлечь его аргументы и это будет новый стек. Если стек реализован двусвязным списком, то создание нового стека из куска имеющегося — очень быстрая операция, но вообще и из массива можно копировать довольно быстро (на МК это можно поручить DMA).

Классический подход такой что запущенному потоку присваивается токен, и его уже программа может использовать для управления потоком и обменом с ним данными, однако можно ввести суффикс, который сохранит токен под именем. Например, как-то так:
в слове Й’хан-тлеи корень хан исполнится в отдельном потоке (префикс й), а токен сохранится под именем тлеи. Точнее даже не так, хан-тлеи будет возвращать токен, а различные суффиксы помогут собрать слово ожидания результата, остановки потока, пересылки потока на другую машину, и т.д.
Renha
Haskell C FORTH fpga Интересный текст richardhaskell.com
коротко, хардварная имплементация раз в 10 быстрее чем реализация на ЯП, Си как обычно тормозит, FORTH-процессоры это ня, надо зопейлить таковой на своей плисине, можно попробовать уходить в крайности RISC/CISC и посмотреть что — лучше, а что — хуже.