From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,dcf610fdf7f93ed0 X-Google-Attributes: gid103376,public From: jm59@prism.gatech.edu (John M. Mills) Subject: Re: Tell this C programmer about Ada and realtime... Date: 1998/09/21 Message-ID: <6u5nsf$b28@acmey.gatech.edu>#1/1 X-Deja-AN: 393295328 References: <360179F8.24DE@ix.netcom.com> Organization: Georgia Institute of Technology Newsgroups: comp.lang.ada Date: 1998-09-21T00:00:00+00:00 List-Id: 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."