Сделана ли поддежка типов? Планируется ли она? В чём трудности?
Что с типами?
Сообщений 1 страница 10 из 10
Поделиться22021-04-12 10:49:26
Сделана ли поддержка типов?
Нет.
Планируется ли она?
Не планируется по соображениям сохранения простоты.
Однако у меня уже маячит идея реализовать тип string (строка).
Но строка, скорее всего, будет реализована поверх имеющегося сейчас единственного типа Double (вещественное число длиной 8 байт).
В чём трудности?
Если вообще про доработки, то нет времени.
А если конкретно про поддержку типов,
то идея с созданием типа строки еще не заполнила полностью мой мозг
Так что расслабьтесь и откиньтесь на спинку кресла (убедитесь, что у кресла есть спинка).
Поделиться32021-04-14 08:16:32
Не планируется по соображениям сохранения простоты.
А в чём сложность?
Если в языке имеются данные типа Double (вещественное число длиной 8 байт), вероятно, эти данные где-то располагаются в памяти. Таким образом, наверняка имеется их адрес (указатель, ссылка). Поскольку размер данных 8 байт, младшие разряды адреса безусловно равны 0. В них можно хранить тип.
Если же данные хранятся не в индивидуальных ячейках, а в массиве, поздравляю, происходит изобретение LISP-а или РЕФАЛа.
Поделиться42021-04-14 09:02:52
А в чём сложность?
Сложность заключается в том,
что сложно поддерживать язык программирования простым,
если его постоянно усложнять
Поскольку размер данных 8 байт, младшие разряды адреса безусловно равны 0. В них можно хранить тип.
Нельзя,
так как все эти 8 байт используются для типа Double.
Если же данные хранятся не в индивидуальных ячейках, а в массиве, поздравляю, происходит изобретение LISP-а или РЕФАЛа.
Данные хранятся в массиве в нутрях интерпретатора
согласно кода, написанного на Паскале в среде разработки Lazarus.
Спасибо за поздравления!
Буду стараться (но это не точно).
Поделиться52021-04-14 09:54:59
в нутрях
Поделиться62021-04-15 07:17:30
Данные хранятся в массиве внутрях интерпретатора
...
все эти 8 байт используются для типа Double.
(Переставил фразы в цитате местами.)
Представление данных в массиве не трогаем.
Что бы получить элемент массива, у нас есть его индекс - он идентифицирует переменную.
Допустим, мы умножаем индекс на два и в таком виде его используем внутри интерпретатора.
Что бы получить элемент массива соответственно на два этот индекс делим.
Зачем?
Если индекс делится на два с остатком 0, значит 8-ми байтный элемент представляет собой тип Double;
иначе (остаток равен 1) элемент имеет другой тип.
Аналогично можно умножать на 4, что позволит кодировать в индексе не 2, а 4 типа. И так далее.
Поделиться72021-04-15 12:58:18
Представление данных в массиве не трогаем.
Что бы получить элемент массива, у нас есть его индекс - он идентифицирует переменную.
Допустим, мы умножаем индекс на два и в таком виде его используем внутри интерпретатора.
Что бы получить элемент массива соответственно на два этот индекс делим.
Зачем?
Если индекс делится на два с остатком 0, значит 8-ми байтный элемент представляет собой тип Double;
иначе (остаток равен 1) элемент имеет другой тип.
Аналогично можно умножать на 4, что позволит кодировать в индексе не 2, а 4 типа. И так далее.
Ваша идея сама по себе - умная.
Но сейчас для РЯП я вижу нужным реализовать строки.
То есть будет два типа: вещественное число и строка.
Какой тип ещё нужен?
И если нужен, то какой и самое главное - зачем?
Поделиться82021-04-19 13:39:09
В соседнем разделе есть компилятор ПОП, в нём типы реализованы, можно посмотреть (у него лицензия позволяет в учебных целях).
Отредактировано Лис (2021-04-19 13:43:20)
Поделиться92021-06-24 05:45:00
будет два типа: вещественное число и строка
Как идут дела? Если считать, что строка - это такой специализированный массив, то наверное надо сначала реализовать одномерные массивы?
Отредактировано Лис (2021-06-24 06:13:54)
Поделиться102021-06-24 08:24:35
Как идут дела?
Как сажа бела.
ОФФТОП: Сейчас занят всякими финансовыми спекуляциями.
Пишу автобота для Тинькофф инвестиций.
Да программу для выбора комбинаций на сегодняшний распределительный тираж "Спортлото 7 из 49".
В субботу выполняю хозяйственные дела по дому.
В воскресенье езжу в сад.
Так что не до РЯПа