Le 07/07/2016 23:57, Rainer Weikusat a écrit :
Didier Kryn <[email protected]> writes:
Le 07/07/2016 19:25, Rainer Weikusat a écrit :
The conversion happened implicitly as part of an assignment and the Ada
     There isn't implicit conversion in Ada.
I vaguely imagine writing somewhat more than 'the Ada runtime threw an
exception because it was asked to do a lossy assignment' (specifically,
'conversion' was you term and I just used it because you did).
_______________________________________________


There aren't lossy assignments either. It is forbidden to assign to a variable a value of a different type without an explicit conversion.

Furthermore, with all due respect and humility, I am intrigued by the concept of a 16-bit integer in an Ada program. These words of the report indicate a lack of understanding of the language. In Ada, a type is declared by its range, and its precision if it is floating or fixed point. You declare the data types you need so that their ranges match the quantities they represent, not by their internal representation in the computer.

    One way to declare a 16-bit integer is:

type int16 is range -32768 .. 32767;

By what miracle could the physical value have this range? The only reason to use this kind of data type is to match to hardware interfaces, and, in general, they are rather unsigned. In the case described in the report, the variable rather seems to be used for internal calculations, therefore I don't see any reason to use this kind of data type. Actually there is a horrible reason: the program was written in C and then translated to Ada either by an automatic translater or by a programmer with very little knowledge of the language, and it was never reviewed.

Languages, either human of computational enforce a way of thinking. C and Ada are very different; if you write an Ada program while thinking C, it'll be painfull and with no benefit. But it might match the requirement to get the contract (just an hypothesis).

    Didier

_______________________________________________
Dng mailing list
[email protected]
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to