LINUX.ORG.RU
ФорумTalks

Типовой ад в Аде.

 , ,


0

2

Неужели этим всем кто то пользуется? Не совсем понятно как это спасает от выстрелов в ноги. По мне так вызывает только рвотный рефлекс при попытке въехать в работу с типами в Аде. Тут еще нет тех типов которые тащит за собой GNAT. Потом при попытке выводить это в stdio или передавать в производные типы код начинает обрастать имиджами, компилятор кряхтит и глохнет. Я понимаю что это поднимает требования к проектированию проекта и заставляет делать отдельное продуманное ТЗ для типов, но как то все это чрезмерно для простого шлепания на мк и хелловордов.И, вероятно, это может делать код платформозависимым.

   Max_Width: constant := 10_000; -- Константа имеет универсальный тип Universal_Integer совместимый с другими типами.
   
   -- Производные типы:
   type X2 is new Integer range 0 .. 100; -- X производный от типа Integer, с допустимым диапазоном от 0 до 100
   type Y1 is range 0 .. 100; -- Тип Y описывается как тип с допустимым диапазоном от 0 до 100,
                              -- при его описании не указан тип-предок. В этом случае он производен от
                              -- типа Root_Integer(базовый тип для всех целочисленных типов).
                              
   -- Описания целочисленных статических переменных:
   Count       : Integer;
   Amount      : Integer := 0;                      

   -- описания целочисленных констант(именованных):
   Unity    : constant Integer := 1;
   Speed_of_Ligth : constant := 300_000; -- тип Universal_Integer
   A_Month  : Integer range 1 .. 12;
   
   -- описания целочисленных типов и подтипов
   subtype Months is Integer range 1 ..12; -- Ограниченный тип Integer, подтипы совместимы с базовыми типом и могут быть с ними "смешаны"
   type File_Id is new Integer; -- Новый целочисленный тип
   type Result_Range is new Integer range 1 .. 20_000; -- Новый целочисленный тип с объявленным ограничением
   type Other_result_Range is range 1 .. 100_000; -- производный от Root_Integer, при этом компилятор будет выбирать подходящий размер целочисленного размера для удловлетворения задаваемого диапазона.
   
   --Модульные типы (беззнаковые):
   type Byte is mod 2 ** 8;
   CountB : Byte := 255;
   -- CountB := CountB +1; результат не вызовет исключения, CountB будет равен 0.

   --Вещественные типы
   type Float is digits 6 range -16#0.FFFF_FF#E+32 .. 16#0.FFFF_FF#E+32; -- -3.40282E+38 .. 3.40282E+38
   type Velocity is new Float;
   type Height is new Float; --нельзя случайно смешивать Velocity и Height без явного преобразования типов.
   -- Вещественные типы с фиксированной точкой, тип Duration:
   -- Представление чисел с фикс. точкой имеет более ограниченный диапазон значений и указанную абсолютную погрешность, которая задается как "delta" этого типа.
   type Volt is delta 0.125 range 0.0 .. 255.0;
   type Fraction is delta System.Fine_Delta range -1.0 .. 1.0; --четкое определение насколько тип должен быть точным, например позволяет контроллировать ошибки при округлении.
   

★★★★★

Последнее исправление: splinter (всего исправлений: 5)

Ответ на: комментарий от Deleted

Ну шо там указывалось... Что ANSI/MIL-STD-1815A-1983 таки имеет отношение к стандарту на Ada'83 и в этой версии язык пентагоноугоден :) Но с тех пор появилась Ada'95 обмазанная равенскаром, Ada'2005... Ada'2012

slackwarrior ★★★★★
()
Ответ на: комментарий от splinter

Тебя в гугле забанили что ли или в википедии? «Язык Пентагона — враг мира. Язык «Ады» — голос термоядерного ада… В языке «Ады» слышится проклятие роду людскому.»(с) :)

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

Я ее прочитал. То, что ты назвал «Фальконом» - это F-16 Fighting Falcon (до Block 50, 20 лет назад), а не ракета-носитель Falcon. Поэтому я и назвал твое вранье «элегантным».

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Пошто сразу вранье-та? Фальконы для меня всю дорогу и были F-16 :) (Эти ваши эффективные менеджеры и название тиснули :)

slackwarrior ★★★★★
()
Ответ на: комментарий от splinter

Оно и так работает под слакой :) Под 10-кой по отзывам коллег вот че-то бывает странное — эту штуку зачем-то собирают в 2018-м году так, что оно работает только в режиме совместимости с Win XP SP3.

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от slackwarrior

Тебе зачем-то нужно называть «враньем» :)

Тебе-то говорили о ракетах-носителях Falcon, а ты передернул на F-16.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

И чо? Ты сразу думаешь про плохое — твои проблемы :)

slackwarrior ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.