07-07-2015, 04:36 PM
07-07-2015, 05:18 PM
(07-07-2015 04:36 PM)Didier Lachieze Wrote: [ -> ]I never programmed in Ada but I designed several circuits in VHDL which was largely inspired by Ada.
I had never heard of VHDL. I just did a search and came across "The VHDL Cookbook". Very interesting. Thanks for your post.
Bill
Smithville, NJ
07-07-2015, 05:24 PM
(07-07-2015 03:35 PM)Don Shepherd Wrote: [ -> ]Ada was chosen by IBM in 1988 as the programming language to be used in their development of a new air traffic control system in the US. At that time, many people believed Ada would become the new "standard" programming language, at least for US defense work. It never happened. It was a nightmare. I can't recall all of the specific things that went wrong with the project, but the FAA poured billions of dollars into it and in the end had nothing to show for it. I suspect changing requirements were more at fault than Ada, but the project was ultimately cancelled.
Hi Don,
I remember you talking about your experience with this before.
What's interesting is that ADA, or a subset of it, is now being considered as a solution to more secure systems on mobile platforms. See following article:
An unexpected source of mobile security: Ada
I love the following quote:
Quote:What made Ada difficult also made it secure and reliable—in simplified programing terms, it was hard to get code past Ada’s exacting compiler, but once you did, it was extremely reliable and resistant to many types of attacks.
Bill
Smithville, NJ
07-07-2015, 06:16 PM
(07-07-2015 03:35 PM)Don Shepherd Wrote: [ -> ]At that time it was likely that IBM did not have a choice as the US government was specifying it for most contracts. My one experience with Ada was installing and testing an Ada compiler on a Unix workstation, I had to increase the ulimit for the user to be able to compile and run the "hello world" program.(07-07-2015 02:26 PM)Bill (Smithville NJ) Wrote: [ -> ]ADA - Another one that I played with a little using AGUSTA which was a subset of ADA. AGUSTA is interesting in that it is written in Turbo Pascal, so you can play around with the Compiler and Interpreter. Has anyone here had experience with ADA?
Ada was chosen by IBM in 1988 as the programming language to be used in their development of a new air traffic control system in the US. At that time, many people believed Ada would become the new "standard" programming language, at least for US defense work. It never happened. It was a nightmare. I can't recall all of the specific things that went wrong with the project, but the FAA poured billions of dollars into it and in the end had nothing to show for it. I suspect changing requirements were more at fault than Ada, but the project was ultimately cancelled.
07-07-2015, 07:53 PM
One of the problems with Ada back in those days was the fact that the compiler itself was new and largely untested, so any project that wanted to use the compiler would be a guinea-pig for testing it, in addition to testing the project-specific requirements of course. I don't think the planners recognized that until it was too late.
The words that come to mind when I remember those Ada days are "crash" and "memory leak."
When I began programming in 1974 using FORTRAN V on the Univac 1108 at the Census Bureau, that old compiler was well-tested and previously used by many programmers and installations over several years. Any errors that came up during testing were assuredly mine, not the compiler's. The Ada developers years later were in a different situation.
There is a lot to be said for sticking with the "tried and true."
The words that come to mind when I remember those Ada days are "crash" and "memory leak."
When I began programming in 1974 using FORTRAN V on the Univac 1108 at the Census Bureau, that old compiler was well-tested and previously used by many programmers and installations over several years. Any errors that came up during testing were assuredly mine, not the compiler's. The Ada developers years later were in a different situation.
There is a lot to be said for sticking with the "tried and true."
07-08-2015, 12:13 AM
I went down to Radio Shack when I was in middle school in the mid 70's and bought myself a manual for the TRS-80 so I could learn BASIC. I never did have a TRS-80 because I couldn't afford one. Wrote a few programs, but never got to run any, lol.
My folks bought me an Apple ][+ in late 70's's/early 80's so I guess my first actual programming was in Apple BASIC. The manual was pretty good though, so I was able to figure out how to poke shape tables into memory for graphics programming. Really enjoyed myself on that little machine.
Later there was some FORTRAN 77 in college, and that's about the time I got my first 41C. Programmed on that for a while. Then graduated to RPL with the 48 and 50. Still like the keystroke programming for quick and dirty stuff, but RPL is a lot more powerful. Took some C courses later on, but never really liked the language, so I can't think of a single significant application that I've written with it.
Wrote some small TurboBasic programs for use on the 200LX. Did some programming for Palm devices for some tools to use at work, and started with objective-C to write an app for the iPhone, but ran out of steam when we changed directions. I often get mildly aggravated having to re-write apps when we change platforms, but it keeps things interesting.
Overall I feel like my programming knowledge, particularly with formal languages, is fairly wide, but very shallow. I guess I only learn anything new when I have a specific problem to solve.
My folks bought me an Apple ][+ in late 70's's/early 80's so I guess my first actual programming was in Apple BASIC. The manual was pretty good though, so I was able to figure out how to poke shape tables into memory for graphics programming. Really enjoyed myself on that little machine.
Later there was some FORTRAN 77 in college, and that's about the time I got my first 41C. Programmed on that for a while. Then graduated to RPL with the 48 and 50. Still like the keystroke programming for quick and dirty stuff, but RPL is a lot more powerful. Took some C courses later on, but never really liked the language, so I can't think of a single significant application that I've written with it.
Wrote some small TurboBasic programs for use on the 200LX. Did some programming for Palm devices for some tools to use at work, and started with objective-C to write an app for the iPhone, but ran out of steam when we changed directions. I often get mildly aggravated having to re-write apps when we change platforms, but it keeps things interesting.
Overall I feel like my programming knowledge, particularly with formal languages, is fairly wide, but very shallow. I guess I only learn anything new when I have a specific problem to solve.
07-08-2015, 12:39 AM
(07-07-2015 02:26 PM)Bill (Smithville NJ) Wrote: [ -> ]PROLOG - I have played with several versions of this language over the years, but never used it for any particular project. Has anyone here used this for a production project?
I used Prolog (along with some Perl) to write an expert system which could reason about information risk, as part of my Masters project. It worked by building a knowledge base from the Mitre & NIST CPE (Common Platform Enumeration) and CVE (Common Vulnerabilities and Exposures) databases, then adding information about enterprise information assets in order to discover exposures and ultimately work out the unmitigated and mitigated risks.
It wasn't very polished, and the reason I chose Prolog was, in part, to get more experience with a purely declarative programming language. I'd tried to use it once before, and it just about did my head in, so steeped was I in procedural programming style. This time around, it seemed to go a lot easier - but when I tackled an assignment in OCaml, an object-oriented functional programming language, for much the same reason, I found it equally mind-bending.
(07-07-2015 02:26 PM)Bill (Smithville NJ) Wrote: [ -> ]ADA - Another one that I played with a little using AGUSTA which was a subset of ADA. AGUSTA is interesting in that it is written in Turbo Pascal, so you can play around with the Compiler and Interpreter. Has anyone here had experience with ADA?
I used the Janus compiler for x86, but not for anything serious. Here's an Ada implementation of the classic number guessing game that I wrote at the time:
Code:
Package Body guess Is
Number,Guess : Integer;
Name : Array (1..30) of Character;
Play : Character;
Gen : Float;
Root : constant := 0.211327;
Procedure Random (n : In Out Integer) Is
Temp : Float;
Begin
Temp := 9821 * Gen + Root;
Gen := Temp - Integer(Temp);
n := Integer(100 * Gen);
End Random;
Begin
Gen := Root;
New_line;
Put("Hi, there, what is your name ? ");
Get(Name); Skip_line;
Put("OK "); Put(Name); New_line;
Put("Do you want to play a guessing game ? ");
Get(Play); Skip_line;
While (Play = "Y") Or (Play = "y") Loop
New_line;
Random(Number);
Put("I am thinking of a number between 1 and 100");
New_line;
Put("What is your guess ? ");
Get(Guess); Skip_line;
While Guess /= Number Loop
If Guess > Number Then
Put("Too high"); New_line;
Else
Put("Too low"); New_line;
End If;
Put("What is your guess ? ");
Get(Guess); Skip_line;
End Loop;
Put("You got it , "); Put(Name); New_line;
Put("Do you want to play again ? ");
Get(Play); Skip_line;
End Loop;
Put("Good Bye, "); Put(Name); New_line;
End guess;
I didn't mind Ada too much, but it didn't seem to do anything for me that I couldn't do with DRI's PL/I Subset G, which I was using heavily at that time, so I didn't pursue it. As support for PL/I disappeared, I switched to C and C++, which I'd been using for other projects, and then the Operating Systems Wars of the 1990's (OS/2 vs Windows, etc.) made me vow never to write anything non-portable ever again, so I switched to Java, which I still use extensively for simulations and crypto work.
This coming semester I will once again be teaching a class (e-Commerce Technologies) in which the students will be using PHP. Shoot me now, please. . .
07-08-2015, 12:50 AM
(07-07-2015 02:26 PM)Bill (Smithville NJ) Wrote: [ -> ]What are some of the other obscure Programming Languages?
OK - you asked for it! The tiniest language I ever used is PILOT, an acronym for Programmed Inquiry Learning and Teaching. It was intended for simple computer-aided instruction and testing on 1970's microcomputers, and if I recall correctly, the smallest implementation of a PILOT interpreter required only 256 bytes. I ought to go and check early issues of Dr. Dobbs Journal of Computer Calisthenics and Orthodontia, or Running Light Without OverByte, as it might well have been published there.
All the statement keywords of PILOT were a single letter, e.g. T for "type", A: for "accept" (I think - accept input) and M for "match". To get the full flavour, here the classic number guessing game, implemented in Starkweather PILOT:
Code:
*START
T:
T:Hi there, what's your name?
A:$NAME
T:OK, $NAME, do you want to play a guessing game?
A:
M:Y,y,Yes,yes,OK
JY: *DOIT
J:*END
*DOIT C:#N = RND(99)
T:I'm thinking of a number
*L1: T:What's your guess?
A:#G
T(G>N):Too high!
T(G<N):Too low!
J(G<>N):*L1
T:You got it!
:Want to play again?
A:
M: Y,y,Yes,yes,OK, Why not
JM: *DOIT
*END T:OK, Bye for now.
E:
There was also an implementation of PILOT by Apple for the Apple ][, but it required UCSD Pascal to run.
07-08-2015, 01:30 AM
(07-08-2015 12:50 AM)Les Bell Wrote: [ -> ]OK - you asked for it! The tiniest language I ever used is PILOT, an acronym for Programmed Inquiry Learning and Teaching.
........
There was also an implementation of PILOT by Apple for the Apple ][, but it required UCSD Pascal to run.
I had forgotten all about Pilot. I think there was also a version for the Atari.
Remembering Pilot reminded me of another language - LOGO with Turtle Graphics. There were quite a few implantations of LOGO and also some "Turtle Robots" to actually do the drawing on paper.
Bill
Smithville, NJ
07-08-2015, 02:14 AM
(07-08-2015 01:30 AM)Bill (Smithville NJ) Wrote: [ -> ]Remembering Pilot reminded me of another language - LOGO with Turtle Graphics. There were quite a few implantations of LOGO and also some "Turtle Robots" to actually do the drawing on paper.
Indeed - I remember DRI's "Dr Logo"; I had it but didn't do anything with it, really, as it booted from floppy and ran stand-alone, rather than on top of CP/M or MS-DOS.
While I'm dredging out old code, here's a PL/I Subset G version of that guessing game:
Code:
guess:
procedure options (main);
/*
Guessing Game Version 2.1
Programmed in PL/I
7/21/84
*/
dcl seed fixed decimal (12,10);
dcl (guess,number) fixed binary (7);
dcl name char (20) varying;
dcl play char (4);
put list ('Hi there, what''s your name?');
get list (name);
put skip list ('OK',name,', do you want to play a guessing game?');
get list (play);
seed = 0.987654321;
do while (substr(play,1,1) = 'Y' | substr(play,1,1) = 'y');
seed = 29 * seed - floor(29 * seed);
number = floor (99 * seed + 1);
put skip list ('I''m thinking of a number between 1 and 100.');
put skip list ('You''ve got to try to guess it');
put skip list ('What''s your guess?');
get list (guess);
do while (guess ~= number);
if guess > number then put list ('Too high!');
if guess < number then put list ('Too low!');
put skip list ('What''s your guess?');
get list (guess);
end;
put list ('You''ve got it,',name,'!!!');
put skip list ('Play again?');
get list (play);
end;
end guess;
07-08-2015, 06:46 AM
(07-03-2015 05:51 PM)Dave Frederickson Wrote: [ -> ]What was your first programming language?
HP-41: FOCAL (1981)
Apple II: Pascal (1985)
(07-07-2015 02:26 PM)Bill (Smithville NJ) Wrote: [ -> ]MODULA - Another one that I played around with, Anyone have experience with MODULA?
Took a lecture based on his book in 1986: Algorithms and Data Structures (1985) - N. Wirth
We used Modula-2 on a Macintosh for the exercises.
Quote:OBERON - This was developed by Niklaus Wirth. Not sure if you call it an Operating System, Programing Language, or a Combination of Both. Has anyone here used it?
cf. ETH Oberon Home Page
(07-08-2015 02:14 AM)Les Bell Wrote: [ -> ]that guessing game
This program was an example in the manual for the TI-57: Hi-Lo Zahlenratespiel (p. 4-22)
A colleague was lending me his TI-57 for a while. That was one of the first programs I keyed in into a calculator. Shortly after I got an HP-41CV.
Cheers
Thomas
PS: And to extend the list of languages: MATLAB, C, C++, Java, JavaScript, PostScript, Perl, shell-script, Python, Forth, Lisp, Scheme, Haskell, Groovy, Scala, RPL, TAL (HP NonStop), Mathematica, Logo, Prolog, …
07-08-2015, 08:27 AM
(07-08-2015 06:46 AM)Thomas Klemm Wrote: [ -> ]That was one of the first programs I keyed in into a calculator. Shortly after I got an HP-41CV.
Of course, I have a version of the number guessing game for the 41:
Code:
001 LBL "GUESS"
002 FIX 0
003 CF 29
004 LBL a
005 13
006 +
007 STO 08
008 0
009 STO 02
010 29
011 ENTER^
012 ENTER^
013 ENTER^
014 .25801793
015 LBL 00
016 *
017 FRC
018 DSE 08
019 GTO 00
020 100
021 *
022 INT
023 STO 01
024 CLX
025 "GUESS?"
026 PROMPT
027 LBL A
028 RCL 01
029 X>Y?
030 "TOO LOW"
031 X<>Y
032 X>Y?
033 "TOO HIGH"
034 X=Y?
035 GTO 01
036 1
037 ST+ 02
038 AVIEW
039 STOP
040 LBL 01
041 "GOT IT IN"
042 ARCL 02
043 |-" TRIES"
044 AVIEW
045 RTN
Usage:
1. Enter program and switch to USER mode
2. Enter random integer, 1 <= R <= 50 XEQ [ALPHA] GUESS [ALPHA]
3. Program prompts with "GUESS?"
4. Enter guess, and press A
5. Repeat step 4 until successful
6. For a new number, press [SHIFT] A
And since I've brought the topic back to HP calculators, here's a version in Microsoft BASIC which should adapt to the 71B almost without change:
Code:
10 REM Guessing Game
20 REM Programmed in Microsoft BASIC
30 REM 9/21/81
40 LET N = INT(99*RND(1)+1)
50 PRINT "I'm thinking of a number between 1 and 100"
60 PRINT "You've got to try to guess it."
70 INPUT "What's your guess";G
80 IF G > N THEN PRINT "Too high!"
90 IF G < N THEN PRINT "Too low!"
100 IF G = N THEN 120
110 GOTO 70
120 PRINT "You've got it!!!"
130 GOTO 40
140 END
07-08-2015, 01:58 PM
(07-07-2015 02:26 PM)Bill (Smithville NJ) Wrote: [ -> ]What are some of the other obscure Programming Languages?
My favorite arcana:
- OPL, on my much-loved Psion 3a, until it (and tis replacement) died.
- UBASIC, a nifty version of BASIC with adjustable precision & accuracy, apparently from Japan. I still use it (runs fine in Windows 7).
- "True BASIC", on the Amiga. First language that I taught.
My *first* programming language, however, was the version of BASIC that came with the time-sharing Data General "Nova 2" computer at college. To make a long story short, I crashed the entire system (losing everything that all the people at all the terminals were doing, campus-wide) by typing the two characters ";<". I left my now-dead terminal in the library, walked across campus to the computer lab, and as soon as I walked in, Karen Dodson (the lab tech) said, "Joe, were you just in the library?" It turns out that as soon as the front panel had stopped blinking, she knew that I was to blame (I always was), and she was just waiting for me to walk in. Hey, don't blame me, all I did was type semicolon less than!
07-08-2015, 02:31 PM
(07-08-2015 01:58 PM)Joe Horn Wrote: [ -> ](07-07-2015 02:26 PM)Bill (Smithville NJ) Wrote: [ -> ]What are some of the other obscure Programming Languages?
My favorite arcana:
- OPL, on my much-loved Psion 3a, until it (and tis replacement) died.
- UBASIC, a nifty version of BASIC with adjustable precision & accuracy, apparently from Japan. I still use it (runs fine in Windows 7).
- "True BASIC", on the Amiga. First language that I taught.
My *first* programming language, however, was the version of BASIC that came with the time-sharing Data General "Nova 2" computer at college. To make a long story short, I crashed the entire system (losing everything that all the people at all the terminals were doing, campus-wide) by typing the two characters ";<". I left my now-dead terminal in the library, walked across campus to the computer lab, and as soon as I walked in, Karen Dodson (the lab tech) said, "Joe, were you just in the library?" It turns out that as soon as the front panel had stopped blinking, she knew that I was to blame (I always was), and she was just waiting for me to walk in. Hey, don't blame me, all I did was type semicolon less than!
Wow, that had to be the first instance of an "emoticon trap"!! And you found it!
;>
07-08-2015, 02:35 PM
(07-08-2015 01:58 PM)Joe Horn Wrote: [ -> ]- OPL, on my much-loved Psion 3a, until it (and tis replacement) died.
Those Psions were cool (multi-processing on a handheld!) but the hinge designs didn't do durability any favors.
07-08-2015, 02:40 PM
(07-08-2015 01:58 PM)Joe Horn Wrote: [ -> ]I crashed the entire system (losing everything that all the people at all the terminals were doing, campus-wide) by typing the two characters ";<".
Although I don't clearly remember which characters it was, the same thing would happen in BASIC on our high school Data General Nova 1200 with only two terminals attached. Since you could only save your programs on punch tape you were likely to loose a lot of code entry each time this happened. As you would image this happened far too often, but at least you always knew who to blame. At least I thought you did, maybe Joe was secretly networked in to our system (before anyone else even knew about networks!)
07-08-2015, 04:11 PM
[Calculator] keystroke on a Casio fx-180 around 1986. RPL on an HP-28C in 1988.
[Interpreter] BASIC in 1982 on Sinclair ZX-81.
[Assembler] Z80 in 1985 on an Amstrad CPC664.
[Compiler] Pascal on the very same Amstrad around 1986.
[DSP assembler] On an Analog Devices DSP32C in 1994.
[HDL] Verilog and VHDL around 1997 (although not exactly programming languages).
And the last language I've learned is, by now, Python, really amazing.
I've found both Verilog & VHDL harder to learn than the others, those being followed by C++ (which I do not use a lot).
(& I hate Perl)
[Interpreter] BASIC in 1982 on Sinclair ZX-81.
[Assembler] Z80 in 1985 on an Amstrad CPC664.
[Compiler] Pascal on the very same Amstrad around 1986.
[DSP assembler] On an Analog Devices DSP32C in 1994.
[HDL] Verilog and VHDL around 1997 (although not exactly programming languages).
And the last language I've learned is, by now, Python, really amazing.
I've found both Verilog & VHDL harder to learn than the others, those being followed by C++ (which I do not use a lot).
(& I hate Perl)
07-08-2015, 05:19 PM
(07-08-2015 04:11 PM)emece67 Wrote: [ -> ](& I hate Perl)
Two books I can recommend:
Modern Perl
Higher-Order Perl
Kind regards
Thomas
07-08-2015, 05:35 PM
First programming ever on HP 25
Then BASIC on PET/TRS 80/Apple II
Assembly on KIM 1 and 6502
After a bunch of: Basic(s), Forth, Pascal, Modula II, Oberon, Ada, C, Java, I use regularly Python for work and fun ;-)
Then BASIC on PET/TRS 80/Apple II
Assembly on KIM 1 and 6502
After a bunch of: Basic(s), Forth, Pascal, Modula II, Oberon, Ada, C, Java, I use regularly Python for work and fun ;-)
07-08-2015, 06:50 PM
(07-08-2015 05:19 PM)Thomas Klemm Wrote: [ -> ](07-08-2015 04:11 PM)emece67 Wrote: [ -> ](& I hate Perl)
Two books I can recommend:
Modern Perl
Higher-Order Perl
Kind regards
Thomas
...and also the various O'Reilly books about PERL. Part of my job involves extracting information from massive log files, and I can't think of anything better than PERL for a job like that, and because it is interpreted, you can get instant feedback to see if your script works or not, without having to go though a compile and link cycle. We have a huge tool for processing the output of an information gathering script on our systems that is written entirely in PERL.