MSElang : обсуждение фишек

Вопросы программирования и использования MSEide + MSEgui.

Модератор: Модераторы

Re: MSElang : обсуждение фишек

Сообщение alexey38 » 08.11.2013 18:34:44

Mikhail писал(а):Фактически это одномерные массивы, просто индексы считаются по другому. Причина в том, что возникает проблема при передаче таких массивов в подпрограммы, что снижает их ценность практически до нуля.

Если есть сложность передачи многомерных статических массивов в подпрограммы, то достаточно запретить передавать такие массивы как параметры в процедурах.
Для меня и задач, которые я решаю ценность статических двухмерных массивов не связана с передачей их в подпрограммы. У меня большинство таких матриц преобразования вообще заданы как константы.
Mikhail писал(а):Чем INTEGER{16} отличается от int16?

Суть одна, но отличие в синтаксисе. В одном случае модификатор 16 пишется слитно, а в другом случае в фигурных скобках. Предлагается 16 воспринимать именно как модификатор (количество бит), а не как имя собственное. И компилятор на int17 должен сказать не неизвестный идентификатор, а то что число 17 нужно заменить либо на 17, либо на 32.

Добавлено спустя 1 минуту 2 секунды:
Kemet писал(а):Во-первых, количеством сущностей : int, int8, int16, int32, int64, int128, против одного integer.

В таком примере цифры после типа можно воспринимать точно также, как модификатор. Выделять ли модификатор в фигурные скобки - это уже дело вкуса, с сути не относящееся.
alexey38
долгожитель
 
Сообщения: 1627
Зарегистрирован: 27.04.2011 19:42:31

Re: MSElang : обсуждение фишек

Сообщение Mikhail » 08.11.2013 18:36:56

Kemet писал(а):Во-первых, количеством сущностей : int8, int16, int32, int64, int128, против одного integer.


Да столько же Integer{8}, Integer{16}, Integer{32}, Integer{64}, Integer{128}, Integer.

Kemet писал(а):Во вторых, при расширении модификаторов не требуется переопределение языка.


Так и здесь ничего не требуется переопределять типы intXX встроены в компилятор и частью языка не являются.
Mikhail
энтузиаст
 
Сообщения: 534
Зарегистрирован: 24.10.2013 16:06:47

Re: MSElang : обсуждение фишек

Сообщение Kemet » 08.11.2013 18:43:41

Mikhail писал(а):
Kemet писал(а):Во-первых, количеством сущностей : int8, int16, int32, int64, int128, против одного integer.


Да столько же Integer{8}, Integer{16}, Integer{32}, Integer{64}, Integer{128}, Integer.

Что за чушь? здесь только одна сущность - integer;
Kemet
постоялец
 
Сообщения: 241
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория

Re: MSElang : обсуждение фишек

Сообщение Mikhail » 08.11.2013 18:50:34

Kemet писал(а):Что за чушь? здесь только одна сущность - integer;


Нет не чушь. если бы после Integer могло стоять любое число, то сущность была бы одна.
Последний раз редактировалось Mikhail 08.11.2013 19:03:12, всего редактировалось 1 раз.
Mikhail
энтузиаст
 
Сообщения: 534
Зарегистрирован: 24.10.2013 16:06:47

Re: MSElang : обсуждение фишек

Сообщение debi12345 » 08.11.2013 19:00:17

Мне не нравится паскалевская идея: Shortint, smallint, longword, т.е. игра слов большой и маленький, с непонятным смыслом без подглядывания в справочник.
Это точно. Именно в справочники. И хочется избавиться от этого как от страшного сна.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5638
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: MSElang : обсуждение фишек

Сообщение Mikhail » 08.11.2013 19:04:02

debi12345 писал(а):Это точно. Именно в справочники. И хочется избавиться от этого как от страшного сна.


Явное указание размера операндов очень слабо вяжется с кроссплатформенным программированием.
Mikhail
энтузиаст
 
Сообщения: 534
Зарегистрирован: 24.10.2013 16:06:47

Re: MSElang : обсуждение фишек

Сообщение Kemet » 08.11.2013 19:22:34

Mikhail писал(а):
Kemet писал(а):Что за чушь? здесь только одна сущность - integer;


Нет не чушь. если бы после Integer могло стоять любое число, то сущность была бы одна.

В компиляторе я оперирую лишь одной сущностью - целое. Какие-бы модификаторы мы не ставили, целое останется - целым. Тогда как int16, int32, int64 это отдельные штуки, так же как и shortint, longint, hugeint.
Психологически это воспринимается ровно также - одна сущность против нескольких
Kemet
постоялец
 
Сообщения: 241
Зарегистрирован: 10.02.2010 19:28:32
Откуда: Временно оккупированная территория

Re: MSElang : обсуждение фишек

Сообщение debi12345 » 08.11.2013 19:27:50


var int: INTEGER(17);

Очевидно, что модификаторы размерности фиксированы в реализации языка.

Зачем ? А если напрмер хотим ограничить значение до 31 :
unsigned integer{5}
integer from 0 to 31;
integer 0..31;

И почему не использовать синитаксис "from .. to" как базить от которого можно TYPEDEF-ить (= юзать язык а не порождать сущности)?
Этот подход
1) позволяет уйти от выделеняи специального беззнакового типа:
Код: Выделить всё
integer from 0;

и
2) позвляет задавать точные границы, а не ближайшее 2pwrN.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5638
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: MSElang : обсуждение фишек

Сообщение Mikhail » 08.11.2013 19:30:46

Kemet писал(а): компиляторе я оперирую лишь одной сущностью - целое.


Вам кажется. На самом деле это не так. Вот если есть только Integer, то действительно сущность будет одна.

ИМХО, Вы усложняете. Излишнее обобщение тоже плохо.
Mikhail
энтузиаст
 
Сообщения: 534
Зарегистрирован: 24.10.2013 16:06:47

Re: MSElang : обсуждение фишек

Сообщение Лекс Айрин » 08.11.2013 19:33:23

хоть так, хоть эдак у вас получается Си.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: MSElang : обсуждение фишек

Сообщение Mikhail » 08.11.2013 19:35:06

Лекс Айрин писал(а):хоть так, хоть эдак у вас получается Си.


Верно подмечено. :)
Mikhail
энтузиаст
 
Сообщения: 534
Зарегистрирован: 24.10.2013 16:06:47

Re: MSElang : обсуждение фишек

Сообщение Лекс Айрин » 08.11.2013 19:37:14

Есть же в Паскале... еще старом, ограниченные типы. Так пусть каботает компилятор, а не программист.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: MSElang : обсуждение фишек

Сообщение debi12345 » 08.11.2013 19:42:26

Явное указание размера операндов очень слабо вяжется с кроссплатформенным программированием.

Прекратсно вяжется - если не нужны некие особо громадные числа. Проктически во всех юзаемых архитектурах есть тип int32bit и его беззнковый брат - и очень редко бывает что их не хватало. Просто С-ки по старой трациции перестраховываются, точнее их к этому обязывет наледие MAKE & ее хэлперов. А так реально огоромное (вплоть до гаджетов) количевов архитктур пддрживаемых LINUX-ом ( = "заводилкой" аппаратуры), под корые делаетя одновременная компиляция.
Хотя ничто не мешает вынести платформенно-зависимый модификатор в отдельное ключевое слово :
Код: Выделить всё
var
i1: integer as TINY; // = наверное "byte"
i1: integer as OPTIMAL; // = под размер регистров проца
i1: integer as HUGE; // = предел компилятора по эмуляции больших чисел
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5638
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Re: MSElang : обсуждение фишек

Сообщение hinst » 08.11.2013 19:46:16

вы там что ли новый язык делаете? не забудьте сделать чтобы все типы были классами, а не так, чтобы TStringList класс, а Integer не класс и array не класс, или как в жабе: String класс, а int не класс - получается ТУПО
Аватара пользователя
hinst
энтузиаст
 
Сообщения: 782
Зарегистрирован: 12.04.2008 18:32:38

Re: MSElang : обсуждение фишек

Сообщение Mikhail » 08.11.2013 19:49:06

hinst писал(а):вы там что ли новый язык делаете? не забудьте сделать чтобы все типы были классами, а не так, чтобы TStringList класс, а Integer не класс и array не класс, или как в жабе: String класс, а int не класс - получается ТУПО


Классы вообще нужно выбросить, за ненадобностью.

Добавлено спустя 4 минуты 7 секунд:
debi12345 писал(а):Прекратсно вяжется - если не нужны некие особо громадные числа.


а если у вас 8-ми битный контроллер?
Mikhail
энтузиаст
 
Сообщения: 534
Зарегистрирован: 24.10.2013 16:06:47

Пред.След.

Вернуться в MSEide + MSEgui

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Рейтинг@Mail.ru