Ada_Ru форум

Обсуждение языка Ада

fixed point type

Оставить новое сообщение

Сообщения

Maxim Reznik
fixed point type
2002-12-04 07:32:59
Кто нибудь разбирался с fixed point type?
Хочу умножить/разделить значение fixed point type на целое некоторого типа.
Компилятор не дает.

procedure A is
   type X is delta 0.01 digits 5;
   type Int is new Integer;
   Y : X := 1.0;
   I : Int := 1;
begin
   Y := Y * I;  -- error
end A;

В ARM сказано, что оператор "*" и "/" есть для любого fixed и
предопределеного Integer. Тогда, что значит следующее

[В приложении ARM Numerics (Model of Fixed Point Arithmetic)]

A multiplication P * Q of an operand of a fixed point type F by an 
operand of an integer type I, or vice-versa, and a division P / Q of an 
operand of a fixed point type F by an operand of an integer type I, are 
also allowed. In these cases, the result has a type of F; explicit 
conversion of the result is never required.

"an integer type I" - это же не обязательно Integer?

Максим
Oleksandr Havva
Re: [ada_ru] fixed point type
2002-12-04 12:14:28
hi,

Maxim Reznik wrote:

> Кто нибудь разбирался с fixed point type?
> Хочу умножить/разделить значение fixed point type на целое некоторого типа.
> Компилятор не дает.
>
> procedure A is
>    type X is delta 0.01 digits 5;
>    type Int is new Integer;
>    Y : X := 1.0;
>    I : Int := 1;
> begin
>    Y := Y * I;  -- error
> end A;

[skipped]

> "an integer type I" - это же не обязательно Integer?

суть "засады" в том, что все предопределенные операции
описаны для типа Intrger.

для данного случая:
предопределенные _реализацией_ знаки операций * и /
не имеют понятия о существовании производного
_самостоятельного_ типа Int.

в результате, получается егор - таких знаков операций где
встречаются тип с фиксированной точкой и тип Int ваще нету

надеюсь, что идею ты уловил

вообще, похоже, что это "приятный" сюрприз конкретной
реализации компилятора, так что RM-мом меня по голове не бить

...а что мешает описать Int как подтип?

>
>
> Максим

Alex



Maxim Reznik
Re: [ada_ru] fixed point type
2002-12-05 06:23:04
Oleksandr Havva пишет:

>hi,
>
>Maxim Reznik wrote:
>  
>
>>"an integer type I" - это же не обязательно Integer?
>>    
>>
>
>суть "засады" в том, что все предопределенные операции
>описаны для типа Intrger.
>  
>
Да, наверное ты прав. Даже если они написали "an integer" это,
наверное вовсе не означает что есть еще какойто целый тип,
кроме Integer, на который можно множить фиксет-поинт.

>вообще, похоже, что это "приятный" сюрприз конкретной
>реализации компилятора, так что RM-мом меня по голове не бить
>  
>
Да не, наверное тут все по закону.

>...а что мешает описать Int как подтип?
>  
>
Ну пример этот так, иллюстрация. А засада была вот в чем.
Пытаюсь прикрутить Interbase к Аде, там NUMBER типы
реализованы как Int_64 плюс SCALE которое означает
на сколько десяток надо разделить значение чтоб получить
нужную дробь. (Ну на пример, если NUMBER(10,2) то
scale=2 и 123,45 будет как Int_64'(12345))
Я че-то думал можно как-то из двух Int_64 (числителя и
знаменателя) сразу получить нужный fixed-point.

Максим
Oleksandr Havva
Re: [ada_ru] fixed point type
2002-12-05 09:39:20
hi,


Maxim Reznik wrote:

> Oleksandr Havva пишет:
>
> >hi,
> >
> >Maxim Reznik wrote:
> >
>

[skip]

>
> >вообще, похоже, что это "приятный" сюрприз конкретной
> >реализации компилятора, так что RM-мом меня по голове не бить
> >
> >
> Да не, наверное тут все по закону.

ну дык... строгая типизация, однако :)

> >...а что мешает описать Int как подтип?
> >
> >
> Ну пример этот так, иллюстрация. А засада была вот в чем.
> Пытаюсь прикрутить Interbase к Аде,

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

а финальная точка о которую я спотыкнулся по взрослому
это попытка написать UDF на Аде
"не летит вертолет" и гайки :(


Alex



Maxim Reznik
Re: [ada_ru] fixed point type
2002-12-05 12:09:43
Oleksandr Havva пишет:

>>Пытаюсь прикрутить Interbase к Аде,
>>    
>>
>
>хе-хе...
>я энтим тоже забавлялся :)
>могу поделиться сырцами, если хошь
>
Присылай! Могу прислать свои.
Я Interbase (=Firebird) взял для примера,
хочу воздвигнуть общее API к базам данных.
А то в GNADE это дело похоже заглохло...
Можем обсудить, если кому интересно.

>а финальная точка о которую я спотыкнулся по взрослому
>это попытка написать UDF на Аде
>"не летит вертолет" и гайки :(
>  
>
Нет, туда я еще не совался...

Максим
Ilja Wasiltschenko
Re: [ada_ru] fixed point type
2002-12-05 20:47:56
Hi !

Am Donnerstag, 5. Dezember 2002 13:09 schrieb Maxim Reznik:
> Я Interbase (=Firebird) взял для примера,
> хочу воздвигнуть общее API к базам данных.
> А то в GNADE это дело похоже заглохло...
> Можем обсудить, если кому интересно.

Н-да, "Ada.Community в собственном соку" ;-)

"Есть-ли у вас план мистер Фикс ?" 

У меня есть план : почему бы не прикрутить Ada через plug-in
к eclipse ?  В результате имеем долгосрочную платформу
для development'а так как IBM свои продукты долго
поддерживает, кроме того сделать binding к eclipse SWT low level (GUI),
что так же дает выигрыш (imho)  по портабельности -> по
барабану, Motif ли это, Windoze или GTK+ .
Вот только осталось начать... ;-)

Ilja
Dmitriy Anisimkov
Re: [ada_ru] fixed point type
2002-12-06 04:50:02
<<прикрутить Ada через plug-in
к eclipse ?  В результате имеем долгосрочную платформу
для development'а так как IBM свои продукты долго
поддерживает, кроме того сделать binding к eclipse SWT low level (GUI),
что так же дает выигрыш (imho)  по портабельности -> по
барабану, Motif ли это, Windoze или GTK+ .
Вот только осталось начать... ;-)>>

А что такое "eclipse", и где про это почитать в инете ?
И какая у него лицензия ?
Maxim Reznik
Re: [ada_ru] fixed point type
2002-12-06 06:35:28
Dmitriy Anisimkov пишет:

><<прикрутить Ada через plug-in
>к eclipse ?  В результате имеем долгосрочную платформу
>Вот только осталось начать... ;-)>>
>
>А что такое "eclipse", и где про это почитать в инете ?
>И какая у него лицензия ?
>  
>
IBM выдала IDE под Open Source лицензией.
Красивая - жуть. Вот только на Java.
Монстровитая - как все на Жабе.
Сделано по модульному принципу.
Разрабатываешь плагин - суешь JAR и готово.
А идея прикрутить туда Аду не нова и в CLA проскакивала.
Я и сам загорелся, когда на eclipse-у поглядел.
Вот только сразу погас, как только попытался
там что-то своять для Ады. Описания API
по размеру - как все описания базовых Java
классов, как мне показалось. Иерархия классов
просто в голову не влази. Объектно-ориентированная
технология во всей красе. Да и не писун я на Жабе!
А писать на JGNAT туда - в пять раз сложнее, тк лишаешься
кучи визардов, темлейтов и поддержки самой IDE

Адрес прост http://www.eclipse.org/ 8-)

Максим
Ilja Wasiltschenko
Re: [ada_ru] fixed point type
2002-12-06 07:46:22
Hi !

Am Freitag, 6. Dezember 2002 07:35 schrieb Maxim Reznik:

> А идея прикрутить туда Аду не нова и в CLA проскакивала.

Что есть "CLA" ?

> Я и сам загорелся, когда на eclipse-у поглядел.
> Вот только сразу погас, как только попытался
> там что-то своять для Ады. Описания API
> по размеру - как все описания базовых Java
> классов, как мне показалось. Иерархия классов
> просто в голову не влази. 

Для этого и существует дока :-)

>Объектно-ориентированная
> технология во всей красе. Да и не писун я на Жабе!

Ну что же, будем значит рыть потихоньку в одиночку ;-)

Ilja
Vadim Godunko
Re: [ada_ru] fixed point type
2002-12-06 12:55:15
Maxim Reznik wrote:
> 
> хочу воздвигнуть общее API к базам данных.
> А то в GNADE это дело похоже заглохло...
> Можем обсудить, если кому интересно.
> 
Если там планируется поддержка Wide_String, то я тоже не против 
присоединиться.

Вадим
Новое сообщение:
Страницы: 1

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти