Anonymous
06/16/2019 (Sun) 08:33:41
No.2683
del
Если убрать динамические типы из моего ЯП, то будет плохо, ведь даже func — динамический тип.
Нет-нет-нет, ненадо убирать их. Если рассматривать, если бы мир был другим и более 90% программирования было программирование bare metal, микроконтроллеров, а не программ для ОС, то динамические типы были бы как раз очень хорошей вещью, ведь как раз в bare metal можно сделать свою систему heap, хоть и не виртуальную память, хотя нет, можно и виртуальную память, если будет ЯП Laisi. И в случае в laisi, когда обращение в произвольный участок памяти только через оператор ->, это очень легко обезопасить. Только я с исключениями допустил большую ошибку. Если тип исключения будет в функции, то как он будет передавать в высшие функции, у которых тип исключения другой? Мне кажется, исключения это какая-то дичь. Тут, вероятно, нужна другая система для контроля ошибок. И ведь исключения встречаются везде в laisi! Деление на ноль, индекс аут оф рендж, возведение в дробную степень типа float и это только внутрилайсишные исключения. А в библиотеке math, например нельзя получить факториал от отрицательного числа, логарифм от отрицательного числа (но на самом деле это должно быть не во всех случаяХ), transpose от двумерных динамических массивов с размерами 0,0, много их!. Есть вариант сделать один тип для всех исключений, но хватит ли всем? Или в куче выделять данные...
Исключения сложны. Это единственная нерешённая проблема, которая осталась в laisi.