ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Что с типами?

Сообщений 1 страница 10 из 10

1

Сделана ли поддежка типов? Планируется ли она? В чём трудности?

0

2

Лис написал(а):

Сделана ли поддержка типов?

Нет.

Лис написал(а):

Планируется ли она?

Не планируется по соображениям сохранения простоты.
Однако у меня уже маячит идея реализовать тип string (строка).
Но строка, скорее всего, будет реализована поверх имеющегося сейчас единственного типа Double (вещественное число длиной 8 байт).

Лис написал(а):

В чём трудности?

Если вообще про доработки, то нет времени.
А если конкретно про поддержку типов,
то идея с созданием типа строки еще не заполнила полностью мой мозг :)

Так что расслабьтесь и откиньтесь на спинку кресла (убедитесь, что у кресла есть спинка).

0

3

NuShaman написал(а):

Не планируется по соображениям сохранения простоты.

А в чём сложность?

Если в языке имеются данные типа Double (вещественное число длиной 8 байт), вероятно, эти данные где-то располагаются в памяти. Таким образом, наверняка имеется их адрес (указатель, ссылка). Поскольку размер данных 8 байт, младшие разряды адреса безусловно равны 0. В них можно хранить тип.

Если же данные хранятся не в индивидуальных ячейках, а в массиве, поздравляю, происходит изобретение LISP-а или РЕФАЛа.  :idea:

0

4

С.Т. написал(а):

А в чём сложность?

Сложность заключается в том,
что сложно поддерживать язык программирования простым,
если его постоянно усложнять :)

С.Т. написал(а):

Поскольку размер данных 8 байт, младшие разряды адреса безусловно равны 0. В них можно хранить тип.

Нельзя,
так как все эти 8 байт используются для типа Double.

С.Т. написал(а):

Если же данные хранятся не в индивидуальных ячейках, а в массиве, поздравляю, происходит изобретение LISP-а или РЕФАЛа.

Данные хранятся в массиве в нутрях интерпретатора
согласно кода, написанного на Паскале в среде разработки Lazarus.
Спасибо за поздравления!
Буду стараться (но это не точно).

0

5

NuShaman написал(а):

в нутрях

Кто такие "нутри"

0

6

NuShaman написал(а):

Данные хранятся в массиве внутрях интерпретатора
...
все эти 8 байт используются для типа Double.

(Переставил фразы в цитате местами.)

Представление данных в массиве не трогаем.
Что бы получить элемент массива, у нас есть его индекс - он идентифицирует переменную.
Допустим, мы умножаем индекс на два и в таком виде его используем внутри интерпретатора.
Что бы получить элемент массива соответственно на два этот индекс делим.
Зачем?
Если индекс делится на два с остатком 0, значит 8-ми байтный элемент представляет собой тип Double;
иначе (остаток равен 1) элемент имеет другой тип.
Аналогично можно умножать на 4, что позволит кодировать в индексе не 2, а 4 типа. И так далее.

0

7

С.Т. написал(а):

Представление данных в массиве не трогаем.
Что бы получить элемент массива, у нас есть его индекс - он идентифицирует переменную.
Допустим, мы умножаем индекс на два и в таком виде его используем внутри интерпретатора.
Что бы получить элемент массива соответственно на два этот индекс делим.
Зачем?
Если индекс делится на два с остатком 0, значит 8-ми байтный элемент представляет собой тип Double;
иначе (остаток равен 1) элемент имеет другой тип.
Аналогично можно умножать на 4, что позволит кодировать в индексе не 2, а 4 типа. И так далее.

Ваша идея сама по себе - умная.
Но сейчас для РЯП я вижу нужным реализовать строки.
То есть будет два типа: вещественное число и строка.
Какой тип ещё нужен?
И если нужен, то какой и самое главное - зачем?

0

8

В соседнем разделе есть компилятор ПОП, в нём типы реализованы, можно посмотреть (у него лицензия позволяет в учебных целях).

Отредактировано Лис (2021-04-19 13:43:20)

0

9

NuShaman написал(а):

будет два типа: вещественное число и строка

Как идут дела? Если считать, что строка - это такой специализированный массив, то наверное надо сначала реализовать одномерные массивы?

Отредактировано Лис (2021-06-24 06:13:54)

0

10

Лис написал(а):

Как идут дела?

Как сажа бела.

ОФФТОП: Сейчас занят всякими финансовыми спекуляциями.
Пишу автобота для Тинькофф инвестиций.
Да программу для выбора комбинаций на сегодняшний распределительный тираж "Спортлото 7 из 49".
В субботу выполняю хозяйственные дела по дому.
В воскресенье езжу в сад.
Так что не до РЯПа :)

0