Я разрабатываю и в настоящее время переосмысливаю низкоуровневый интерпретируемый язык программирования, похожий на ассемблер.
Очень скоро я столкнулся с проблемой решения функций/циклов/gotos и подумал, что если такие циклы, как while
и for
, будут слишком высокоуровневыми и неподходящими, то gotos будут слишком низкоуровневыми, неподдерживаемыми и, как правило, снова злобными. Функции, известные вам по большинству языков, которые имеют возвращаемые значения и аргументы, также не вписываются в концепцию языка.
Поэтому я попытался найти что-то среднее между функцией и переходом, способным
- Рекурсия
- Эффективные циклы
После некоторого размышления я пришел к идее подпрограмм:
- У них есть начало и конец, как у функции
- У них есть имя, но нет аргументов, таких как goto
- Вы можете войти в один с помощью прыжка и выйти из него снова до его окончания с помощью
return
(не возвращает никакого результата, только останавливает подпрограмму) - Обрабатывается как обычный код -> Глобальная область видимости, как goto
Итак, я хотел узнать:
- Идея выше хороша? Каковы (не)преимущества?
- Будет ли лучшее сочетание функции и перехода или даже совершенно новая идея?