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?

 

Максим

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

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.

 

Максим

hi,

Maxim Reznik wrote:

Oleksandr Havva пишет:

>

>hi,

>

>Maxim Reznik wrote:

>

>

[skip]

>

>вообще, похоже, что это "приятный" сюрприз конкретной

>реализации компилятора, так что RM-мом меня по голове не бить

>

>

Да не, наверное тут все по закону.

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

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

>

>

Ну пример этот так, иллюстрация. А засада была вот в чем.

Пытаюсь прикрутить Interbase к Аде,

хе-хе...

я энтим тоже забавлялся :)

могу поделиться сырцами, если хошь

тока оно до ума не доведено, хотя импорт-файл

функций IBase практически полностью написан

(черновик)

а финальная точка о которую я спотыкнулся по взрослому

это попытка написать UDF на Аде

"не летит вертолет" и гайки :(

Alex

Oleksandr Havva пишет:

 

Пытаюсь прикрутить Interbase к Аде,

 

хе-хе...

я энтим тоже забавлялся :)

могу поделиться сырцами, если хошь

 

Присылай! Могу прислать свои.

Я Interbase (=Firebird) взял для примера,

хочу воздвигнуть общее API к базам данных.

А то в GNADE это дело похоже заглохло...

Можем обсудить, если кому интересно.

 

а финальная точка о которую я спотыкнулся по взрослому

это попытка написать UDF на Аде

"не летит вертолет" и гайки :(

Нет, туда я еще не совался...

 

Максим

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

 

<<прикрутить Ada через plug-in

к eclipse ? В результате имеем долгосрочную платформу

для development'а так как IBM свои продукты долго

поддерживает, кроме того сделать binding к eclipse SWT low level (GUI), что так же дает выигрыш (imho) по портабельности -> по

барабану, Motif ли это, Windoze или GTK+ .

Вот только осталось начать... ;-)>>

 

А что такое "eclipse", и где про это почитать в инете ?

И какая у него лицензия ?

Dmitriy Anisimkov пишет:

 

<<прикрутить Ada через plug-in

к eclipse ? В результате имеем долгосрочную платформу

Вот только осталось начать... ;-)>>

 

А что такое "eclipse", и где про это почитать в инете ?

И какая у него лицензия ?

IBM выдала IDE под Open Source лицензией.

Красивая - жуть. Вот только на Java.

Монстровитая - как все на Жабе.

Сделано по модульному принципу.

Разрабатываешь плагин - суешь JAR и готово.

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

Я и сам загорелся, когда на eclipse-у поглядел.

Вот только сразу погас, как только попытался

там что-то своять для Ады. Описания API

по размеру - как все описания базовых Java

классов, как мне показалось. Иерархия классов

просто в голову не влази. Объектно-ориентированная

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

А писать на JGNAT туда - в пять раз сложнее, тк лишаешься

кучи визардов, темлейтов и поддержки самой IDE

 

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

 

Максим

Hi !

 

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

 

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

 

Что есть "CLA" ?

 

Я и сам загорелся, когда на eclipse-у поглядел.

Вот только сразу погас, как только попытался

там что-то своять для Ады. Описания API

по размеру - как все описания базовых Java

классов, как мне показалось. Иерархия классов

просто в голову не влази.

 

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

 

>Объектно-ориентированная

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

 

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

 

Ilja

Maxim Reznik wrote:

 

хочу воздвигнуть общее API к базам данных.

А то в GNADE это дело похоже заглохло...

Можем обсудить, если кому интересно.

 

Если там планируется поддержка Wide_String, то я тоже не против присоединиться.

 

Вадим

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

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