What degree of learning curve is there to learn Ada, coming from a
Pascal background? What kind of rough timeframes to get comfortable with programming without always looking to the manuals?
The little snippets of Ada code I've seen look _alot_ like Pascal.
What degree of learning curve is there to learn Ada, coming from a
Pascal background? What kind of rough timeframes to get comfortable with programming without always looking to the manuals?
Where is the best starting point for a Pascal programmer to get up and running with Ada?
The little snippets of Ada code I've seen look _alot_ like Pascal.
What degree of learning curve is there to learn Ada, coming from a
Pascal background? What kind of rough timeframes to get comfortable with programming without always looking to the manuals?
Where is the best starting point for a Pascal programmer to get up and running with Ada?
Ada is stricter
than other languages and is meant to have NO Operating system dependant items, so if you cannot go around something there must be a package on
each operating system having the same interface everywhere.
What degree of learning curve is there to learn Ada, coming from a
Pascal background? What kind of rough timeframes to get comfortable with programming without always looking to the manuals?
On 10/22/21 1:18 AM, ldries46 wrote:
[...]
Ada is stricter
than other languages and is meant to have NO Operating system dependant
items, so if you cannot go around something there must be a package on
each operating system having the same interface everywhere.
By this do you mean the same syntax and libs will run on all target
systems without fiddling with {IFDEF} and architecture compiler switch
woo foo for USES and repetitive cross-arch boilerplate?
One thing I can't stand about Pascal is the totally different functions
and logic from several operating systems that MUST be re-written several times in the same code base to do the same job. This drives me mad. In
fact it irks me so much I was thinking of writing some libraries for
things I do that would handle this all automatically across arches.
There would go a couple months of Sundays.
Think IPC with Pascal. Get a good IPC routine going for Linux in your
app, then you have to re-write it for MAC and Windows, and even some
other flavors of *nix.
So am I to understand that the Ada compiler has somehow eliminated this problem, by ensuring every target OS has a syntactically conformant
package to execute its methods using the same statements?
I'm not ldries46, but here is an answer: Ada standardizes _some_
functions for which some other languages use "OS" services, principally threading, which in Ada is the "tasking" feature. Indeed Ada tasking
works in the same way whichever OS is used, and also in the "bare
board", no-OS situation. This is very useful for developing
multi-threaded embedded SW, because the Ada tasking code can be tested
on desk-top workstations and then executed on the target system
unchanged. (and no "ifdefs").
But real operating systems (as opposed to simpler real-time kernels)
provide many services that are not standardized in Ada, for example inter-process communication.
However, there are some rudiments:
- There is a standardized Ada interface (binding) to POSIX services.
This is implemented in an Ada library called Florist. If you find or
make a Florist implementation for the OSes you use, your Ada program can
use the same OS service interfaces on all those OSes.
- The gcc-based Ada compiler GNAT comes with a GNAT-specific library
that provides some OS services with the same Ada API on any OS that GNAT supports. This includes some IPC, but I don't know exactly how far that
goes, and the library may of course change from one GNAT version to the
next.
- There is an Ada library called Win32Ada that provides an extensive set
of Microsoft Windows services, but it is a "thin binding" meaning that
even the API is Windows-specific.
The little snippets of Ada code I've seen look _alot_ like Pascal.
What degree of learning curve is there to learn Ada, coming from a
Pascal background? What kind of rough timeframes to get comfortable with >programming without always looking to the manuals?
What degree of learning curve is there to learn Ada, coming from a
Pascal background? What kind of rough timeframes to get comfortable with programming without always looking to the manuals?
Also, Pascal of the era typically did not support separate
compilation and/or include files -- programs were all single
monolithic files, any change required recompiling the entire program.
Dennis Lee Bieber <wlfraed@ix.netcom.com> writes:
Also, Pascal of the era typically did not support separate
compilation and/or include files -- programs were all single
monolithic files, any change required recompiling the entire program.
I thought Ada was originally like that too. The program could be split
into multiple files, but they were expected to all be compiled together.
On 2021-10-22 12:59, 711 Spooky Mart wrote:
On 10/22/21 1:18 AM, ldries46 wrote:
[...]
Ada is stricter
than other languages and is meant to have NO Operating system dependant
items, so if you cannot go around something there must be a package on
each operating system having the same interface everywhere.
By this do you mean the same syntax and libs will run on all target
systems without fiddling with {IFDEF} and architecture compiler switch
woo foo for USES and repetitive cross-arch boilerplate?
I'm not ldries46, but here is an answer: Ada standardizes _some_
functions for which some other languages use "OS" services,
principally threading, which in Ada is the "tasking" feature. Indeed
Ada tasking works in the same way whichever OS is used, and also in
the "bare board", no-OS situation. This is very useful for developing multi-threaded embedded SW, because the Ada tasking code can be tested
on desk-top workstations and then executed on the target system
unchanged. (and no "ifdefs").
But real operating systems (as opposed to simpler real-time kernels)
provide many services that are not standardized in Ada, for example inter-process communication.
Indeed Ada tasking works in the same way whichever OS is used, and
also in the "bare board", no-OS situation.
Dennis Lee Bieber <wlfraed@ix.netcom.com> writes:
Also, Pascal of the era typically did not support separate
compilation and/or include files -- programs were all single
monolithic files, any change required recompiling the entire program.
I thought Ada was originally like that too. The program could be split
into multiple files, but they were expected to all be compiled together.
https://www.adahome.com/History/Stoneman/stoneman.htm
is the requirements document that DoD used to define the desired
environment around Ada development.
This thread began as a comparison of Ada and original Pascal. So how does Ada compare to Free Pascal Compiler and Delphi which have gone far past original Pascal?You can also ask can you compile a Free Pascal program in Delphi or in
This thread began as a comparison of Ada and original Pascal. So how does Ada compare to Free Pascal Compiler and Delphi which have gone far past original Pascal?
Le dimanche 24 octobre 2021 à 06:33:15 UTC+2, Jerry a écrit :
This thread began as a comparison of Ada and original Pascal. So how does Ada compare to Free Pascal Compiler and Delphi which have gone far past original Pascal?
You find a very partial answer in the comparison here: http://p2ada.sourceforge.net/pascada.htm#tables
Made around year 2000, so ~30 after original Pascal but ~20 years ago.
Note that both FPC and Delphi descend from Turbo Pascal, which is itself completely different from other extensions like ISO Extended Pascal.
In a nutshell, Pascal is an extreme example of fragmentation of a language into dialects.
Ada is on the other extremity: you can build the same source sets (I mean exactly the same sources, without preprocessing gimmicks) on completely different compilers & OSes.
Does modern Ada have facility for writing boot loaders, inline Assembly, kernels, etc.?
On 2021-10-25 2:24, 711 Spooky Mart wrote:
Does modern Ada have facility for writing boot loaders, inline Assembly,
kernels, etc.?
I'm not very familiar with boot loaders, but I see no reason why a boot loader could not be written in Ada. However, usually (and as for other
languages) there will be a small start-up routine in assembly language
to initialize the processor, set up a stack, and so forth. The "Ada Bare Bones" project is doing something like this, I believe: https://wiki.osdev.org/Ada_Bare_bones.
Thanks for pointing out my project :) It's out of date and doesn't build
as is any more, but others have written Ada pages on that site since.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 365 |
Nodes: | 16 (3 / 13) |
Uptime: | 05:19:01 |
Calls: | 7,785 |
Calls today: | 7 |
Files: | 12,914 |
Messages: | 5,750,432 |