* Tell this C programmer about Ada and realtime... @ 1998-09-17 0:00 Mike Silva 1998-09-17 0:00 ` Tucker Taft 1998-09-21 0:00 ` John M. Mills 0 siblings, 2 replies; 8+ messages in thread From: Mike Silva @ 1998-09-17 0:00 UTC (permalink / raw) I'm a longtime programmer who's bounced between PC and embedded/realtime applications. Now I'm back in the realtime field and I'd like to learn something about Ada -- partly in response to occasional "I'd *never* program a critical realtime application in C" comments I hear and read. So, would anybody like to "sell" Ada to a receptive potential buyer? Mike ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tell this C programmer about Ada and realtime... 1998-09-17 0:00 Tell this C programmer about Ada and realtime Mike Silva @ 1998-09-17 0:00 ` Tucker Taft 1998-09-21 0:00 ` John M. Mills 1 sibling, 0 replies; 8+ messages in thread From: Tucker Taft @ 1998-09-17 0:00 UTC (permalink / raw) Mike Silva (mjsilva@ix.netcom.com) wrote: : I'm a longtime programmer who's bounced between PC and embedded/realtime : applications. Now I'm back in the realtime field and I'd like to learn : something about Ada -- partly in response to occasional "I'd *never* : program a critical realtime application in C" comments I hear and read. : So, would anybody like to "sell" Ada to a receptive potential buyer? A good place to start is www.adahome.com. It has a lot of "ammunition" and pointers to various Ada success stories, etc. : Mike -- -Tucker Taft stt@inmet.com http://www.inmet.com/~stt/ Intermetrics, Inc. Burlington, MA USA ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tell this C programmer about Ada and realtime... 1998-09-17 0:00 Tell this C programmer about Ada and realtime Mike Silva 1998-09-17 0:00 ` Tucker Taft @ 1998-09-21 0:00 ` John M. Mills 1998-09-21 0:00 ` dewar ` (2 more replies) 1 sibling, 3 replies; 8+ messages in thread From: John M. Mills @ 1998-09-21 0:00 UTC (permalink / raw) In comp.lang.ada you write: >I'm a longtime programmer who's bounced between PC and embedded/realtime >applications. Now I'm back in the realtime field and I'd like to learn >something about Ada -- partly in response to occasional "I'd *never* >program a critical realtime application in C" comments I hear and read. >So, would anybody like to "sell" Ada to a receptive potential buyer? Mike - What's to "sell?" Ada, particularly Ada95, is a strongly-typed, modular language with constructs to link objects from other languages and to directly address system hardware. For real-time applications, you need an executive package which will launch your process(es) and link your required hardware resources to interrupts or whatever. You naturally need some type of debugging support. If your Real-Time-E[nvironment|xecutive] (RTE) vendor uses the GNU tool suite (This includes at least one mainstream vendor - perhaps Wind River), you're good to go with GNAT, which I have found very serviceable. The current public release handles tasks as UNIX threads, which is fairly clean to spin off ISRs, etc. (he says, having only used others' libs for ipc). Anyway, the question for me falls into the RTE vendor-selection venue, and you can use Ada if you're comfortable with it. You can similarly link parts of your code written in Ada, C, and Fortran, with only minimal over- head. I have a fairly comprehensive example for Ada-Fortran-Ada on my ftp site: ftp://jmills.gtri.gatech.edu/ in: pub/coding/ as: ada_fortran_calls.gz Note: We found this works very easily if the 'main' is in GNAT, but requires that you explicitly force task instantiation if your main is [say] in C. I can get more info on this if you turn out to need it. If you like Ada, it's highly useable. Naturally you have to be[come] comfortable with Ada, but the language was originally conceived for this type of application -- it may have taken a few iterations to grow into the truly useable tool I find it to be now. My summary would be: "Ada is like Pascal with an Attitude." You "pay up front" as you design the module breakout and interface data types for your Ada app, then you cash in pretty well at integration and support time, when the enforced clarity and type- checking pays off. This is particularly true when the project requires a group of coders to put in to a common library pool. Regards - jmm -- John M. Mills, Senior Research Engineer -- john.mills@gtri.gatech.edu Georgia Tech Research Institute, Georgia Tech, Atlanta, GA 30332-0834 Phone contacts: 404.894.0151 (voice), 404.894.6258 (FAX) "Lies, Damned Lies, Statistics, and Simulations." ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tell this C programmer about Ada and realtime... 1998-09-21 0:00 ` John M. Mills @ 1998-09-21 0:00 ` dewar 1998-09-21 0:00 ` dennison 1998-09-21 0:00 ` John M. Mills 2 siblings, 0 replies; 8+ messages in thread From: dewar @ 1998-09-21 0:00 UTC (permalink / raw) In article <6u5nsf$b28@acmey.gatech.edu>, jm59@prism.gatech.edu (John M. Mills) wrote: > If your Real-Time-E[nvironment|xecutive] (RTE) vendor uses the GNU tool > suite (This includes at least one mainstream vendor - perhaps Wind River), > you're good to go with GNAT, > which I have found very serviceable. The current > public release handles tasks as UNIX threads, which is fairly clean to spin > off ISRs, etc. (he says, having only used others' libs for ipc). A correction here. Some GNAT versions use UNIX threads for tasks, others do not, some provide a choice. In the case of GNAT ports to VxWorks, GNAT threads do of course translate directly into VxWorks threads. Incidentally, just because Wind River uses GCC, does not mean that GNAT is necessarily the best choice. The whole point of GCC (and GNAT!) is that they follow standard system conventions. Any other compiler that follows these conventions can be used fine with VxWorks for example. If you are using VxWorks in particular, there are a number of different possibilities for compilers. You should judge these using the normal criteria (price, reliability, language coverage, portability features, integration with VxWorks etc) It is certainly true that you can be sure that GNAT and the GCC compiler used in VxWorks are good partners, but other Ada 95 compilers may interface with GCC equally well, and you should not assume otherwise. > Note: We found this works very easily > if the 'main' is in GNAT, but > requires that you explicitly force task instantiation > if your main is [say] > in C. I can get more info on > this if you turn out to need it. There is no requirement for the main program to be "in GNAT" (an odd phrase anyway, in Ada is presumably meant). Note that you may often get wrong advice like this from people using GNAT if they are using the public version, since they are figuring out things for themselves. Certainly if you are using the fully supported version, you will have no problems in mixing Ada and C and other languages, and having the main in any language you like. Many of our customers use a C main program (and GNAT itself has a C main program!) This doesn't mean that the public version is not usable, if you don't have any mission critical requirement (e.g. your interests are purely research oriented or you are just learning to use Ada, then the public version without support maybe just what you need!) > If you like Ada, it's highly useable. Naturally you have to be[come] > comfortable with Ada, but the language was originally conceived for this > type of application -- it may have taken a few iterations to grow into the > truly useable tool I find it to be now. My summary would be: "Ada is like > Pascal with an Attitude." You "pay up front" as you design the module > breakout and interface data types for your Ada app, then you cash in pretty > well at integration and support time, when the enforced clarity and type- > checking pays off. This is particularly true when the project requires a > group of coders to put in to a common library pool. If you are seriously interested in using GNAT with VxWorks or RTEMS, you should contact sales@gnat.com. We have a wide variety of possible product offerings, ranging from fully supported turnkey systems, to cooperative arrangements in which the customer handles backend issues, and we provide help and also support for frontend issues. Which approach is appropriate depends on the environment and the level of knowledge of the customer. Robert Dewar Ada Core Technologies -----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tell this C programmer about Ada and realtime... 1998-09-21 0:00 ` John M. Mills 1998-09-21 0:00 ` dewar @ 1998-09-21 0:00 ` dennison 1998-09-21 0:00 ` dewar 1998-09-21 0:00 ` John M. Mills 2 siblings, 1 reply; 8+ messages in thread From: dennison @ 1998-09-21 0:00 UTC (permalink / raw) In article <6u5nsf$b28@acmey.gatech.edu>, jm59@prism.gatech.edu (John M. Mills) wrote: > If your Real-Time-E[nvironment|xecutive] (RTE) vendor uses the GNU tool > suite (This includes at least one mainstream vendor - perhaps Wind River), > you're good to go with GNAT, which I have found very serviceable. The current > public release handles tasks as UNIX threads, which is fairly clean to spin > off ISRs, etc. (he says, having only used others' libs for ipc). > I'm sorry to steer this thread off course so quickly, but we were just going over this in another thread. Wind River is the purveyor of VxWorks. There appear to be a few gnat VxWorks ports available (for a fee), but support is not there for every architecture. For gnat to be available, it has to have been ported to your OS/Architecture combination. Just because GCC is there doesn't automatically mean gnat is. -- T.E.D. -----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tell this C programmer about Ada and realtime... 1998-09-21 0:00 ` dennison @ 1998-09-21 0:00 ` dewar 0 siblings, 0 replies; 8+ messages in thread From: dewar @ 1998-09-21 0:00 UTC (permalink / raw) In article <6u66h4$g30$1@nnrp1.dejanews.com>, dennison@telepath.com wrote: > I'm sorry to steer this thread off course so quickly, but we were just going > over this in another thread. Wind River is the purveyor of VxWorks. There > appear to be a few gnat VxWorks ports available (for a fee), but support is > not there for every architecture. For gnat to be available, it has to have > been ported to your OS/Architecture combination. Just because GCC is there > doesn't automatically mean gnat is. Yes, that is certainly true, people often forget that compilers are *architecture* dependent, not just OS dependent. Some people think for example ask us if there is a Unix port of GNAT, which is of course not a sensible question. In the same sense, asking if GNAT is ported for VxWorks is the wrong question. You do indeed have to ask for a port to VxWorks on a specific target (just as when you order VxWorks in the first place, you had better tell them what particular architecture you are using). Actually that's a little too simplistic. VxWorks is a basic system, which differs for each architecture, and then for a given architecture, e.g. PPC, there are multiple board support packages. Usually the compiler does NOT need modifying when all that changes is the BSP. That being said, GNATWorks is available for a number of architectures. Versions of GNAT on VxWorks exist for the following architectures: i960 PPC x86 MIPS Alpha 68K I will leave it to you to decide if that is or is not a "few" architectures. It represents the entire list of architectures for which we have had some customer interest. In each case here, the corresponding compiler will operate on multiple different boards with these architectures, using the appropriate BSP's. If you are interested in a GNAT port for one of the above architectures, by all means contact us at sales@gnat.com. If you are interested in a VxWorks port for some other architecture, you should also contact us. One of the things we have found is that we can share almost exactly the same VxWorks code base between architectures, so if there is an architecture not included in this list, it may still be quite practical to provide a GNATWorks port. Robert Dewar Ada Core Technologies -----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tell this C programmer about Ada and realtime... 1998-09-21 0:00 ` John M. Mills 1998-09-21 0:00 ` dewar 1998-09-21 0:00 ` dennison @ 1998-09-21 0:00 ` John M. Mills 1998-09-21 0:00 ` dewarr 2 siblings, 1 reply; 8+ messages in thread From: John M. Mills @ 1998-09-21 0:00 UTC (permalink / raw) Rudely and swiftly following up my own post, jm59@prism.gatech.edu (John M. Mills) ad-libbed: >Note: We found this works very easily if the 'main' is in GNAT, but >requires that you explicitly force task instantiation if your main is [say] Think I should have said: ^^^^^^^^^^^^^^^^^^---'elaboration' >in C. I can get more info on this if you turn out to need it. As my father says, "A fool is someone who is wrong in a loud voice". Sorry. --jmm -- John M. Mills, Senior Research Engineer -- john.mills@gtri.gatech.edu Georgia Tech Research Institute, Georgia Tech, Atlanta, GA 30332-0834 Phone contacts: 404.894.0151 (voice), 404.894.6258 (FAX) "Lies, Damned Lies, Statistics, and Simulations." ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Tell this C programmer about Ada and realtime... 1998-09-21 0:00 ` John M. Mills @ 1998-09-21 0:00 ` dewarr 0 siblings, 0 replies; 8+ messages in thread From: dewarr @ 1998-09-21 0:00 UTC (permalink / raw) In article <6u654b$qo6@acmez.gatech.edu>, jm59@prism.gatech.edu (John M. Mills) wrote: > Rudely and swiftly following up my own post, > jm59@prism.gatech.edu (John M. Mills) ad-libbed: > > >Note: We found this works very easily if the 'main' is in GNAT, but > >requires that you explicitly force task instantiation if your main is [say] > Think I should have said: ^^^^^^^^^^^^^^^^^^---'elaboration' > >in C. I can get more info on this if you turn out to need it. > > As my father says, "A fool is someone who is wrong in a loud voice". Sorry. Yes, of course you need to arrange for elaboration. This is done as described in the Ada standard, namely by calling the adainit() routine generated by the binder. I guess different people have different thresholds of "very easy", but adding one call to adainit() certainly falls into that category for me! -----== Posted via Deja News, The Leader in Internet Discussion ==----- http://www.dejanews.com/rg_mkgrp.xp Create Your Own Free Member Forum ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~1998-09-21 0:00 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 1998-09-17 0:00 Tell this C programmer about Ada and realtime Mike Silva 1998-09-17 0:00 ` Tucker Taft 1998-09-21 0:00 ` John M. Mills 1998-09-21 0:00 ` dewar 1998-09-21 0:00 ` dennison 1998-09-21 0:00 ` dewar 1998-09-21 0:00 ` John M. Mills 1998-09-21 0:00 ` dewarr
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox