John W. Backus, 82, Fortran Developer, Dies

PROGRAM Sadday
IMPLICIT NONE
WRITE (*,*) "many tears will be shed at Iowa State University, Aerospace Engineering Department today."
STOP
END PROGRAM Sadday
 
LOL we have been kind of on a nerdy computer lick lately haven't we.
 
*100 :(

PROGRAM Sadday
IMPLICIT NONE
a=0
10 if a>100 then 11
WRITE (*,*) "many tears will be shed at many Iowa State University, Aerospace Engineering Department today."
a=a+1
GOTO 10
11 STOP
END PROGRAM Sadday
 
*100 :(

PROGRAM Sadday
IMPLICIT NONE
a=0
10 if a>100 then 11
WRITE (*,*) "many tears will be shed at many Iowa State University, Aerospace Engineering Department today."
a=a+1
GOTO 10
11 STOP
END PROGRAM Sadday

you show your age by using Fortran77 scott ;) try this:

PROGRAM Sadday
IMPLICIT NONE
INTEGER :: a
DO a=1,100
WRITE (*,*) "many tears will be shed at Iowa State University, Aerospace Engineering Department today."
END DO
STOP
END PROGRAM Sadday
 
you show your age by using Fortran77 scott ;) try this:

PROGRAM Sadday
IMPLICIT NONE
INTEGER :: a
DO a=1,100
WRITE (*,*) "many tears will be shed at Iowa State University, Aerospace Engineering Department today."
END DO
STOP
END PROGRAM Sadday

I prefer

Code:
<?php

$a=0;
while($a < 100) {
    echo("Many tears will be shed at Iowa State University, Aerospace Engineering Department today.<br>");
    $a++;
}

?>
 
you show your age by using Fortran77 scott ;) try this:

PROGRAM Sadday
IMPLICIT NONE
INTEGER :: a
DO a=1,100
WRITE (*,*) "many tears will be shed at Iowa State University, Aerospace Engineering Department today."
END DO
STOP
END PROGRAM Sadday

That looks like it would have compiled on the WATFOR compiler back in the day. :D Except I seem to remember (it was a long time ago) numbering each line.

Oh, and I can save you a line from that program. Delete the "INTEGER" statement and replace "a" in the "DO" command with a variable starting with any letter from I through N (first two letters in "INteger"). Unless explicitely called out otherwise it is assumed to be an integer variable.
 
Last edited:
really?
I used the Intel Fortran Compiler (ifort or ifc)

fortcom: Error: sadday.f90, line 3: This name does not have a type, and must have an explicit type.
DO i=1,100
---^
fortcom: Error: sadday.f90, line 3: An INTEGER or REAL data type is required in this context.
DO i=1,100
---^


ah thought of one other thing. In order for it to work the way you describe you have to remove the INTEGER declaration and the IMPLICIT NONE statement. We have been taught to always use IMPLICIT NONE so that we have complete control over all the variables.

so you actually saved me two lines!
 
Oh, I tought you meant Jim Backus.

That is who I thought of first too.

JimBackus.JPG
 
My comp sci prof who taught Fortran 77 hated do loops. Nested ones were especially despised. so we all used the IF THEN ELSE statements a lot.

wow, i love them.

Most of the problems we do are iterative solutions, so DO loops work really well. We also often have large grids with many points to solve for, so FORTRAN is nice.
 
wow, i love them.

Most of the problems we do are iterative solutions, so DO loops work really well. We also often have large grids with many points to solve for, so FORTRAN is nice.

I have done stuff like that. Early on I did a lot of programing for solving antenna array problems. There is a lot of integral calculus to get those problems solved and them plotted. Did them all with many, many IF Then Else statements and then printed them on a daisy wheel printer. Ah 1987!!!
 
I have done stuff like that. Early on I did a lot of programing for solving antenna array problems. There is a lot of integral calculus to get those problems solved and them plotted. Did them all with many, many IF Then Else statements and then printed them on a daisy wheel printer. Ah 1987!!!

wow i feel sorry for you.

when i was in high school I took a True Basic class and had to write a program that made change. I wrote it with about a million (it seemed) IF statements. That really sucked.
 
wow i feel sorry for you.

when i was in high school I took a True Basic class and had to write a program that made change. I wrote it with about a million (it seemed) IF statements. That really sucked.

Actually they worked really well because to do the calculus what you were really doing were multiple finite summations and it was easier to control and debug with it all spelled out.
 
I prefer

Code:
<?php

$a=0;
while($a < 100) {
    echo("Many tears will be shed at Iowa State University, Aerospace Engineering Department today.<br>");
    $a++;
}

?>

See, a while is totally wrong there. It's funny how looking at PHP still boils my blood, and I haven't written a drop of code in over 4 years...

Cheers,

-Andrew
 
My comp sci prof who taught Fortran 77 hated do loops. Nested ones were especially despised. so we all used the IF THEN ELSE statements a lot.

:goofy: I had an advanced COBOL class at a City College where the IT Director/instructor wrote EVERY sample routine with GOTO statements.

We all had been using DO PROCEDURE nnnn To nnnn WHILE...etc. I guess we were doing it wrong. :D
 
See, a while is totally wrong there. It's funny how looking at PHP still boils my blood, and I haven't written a drop of code in over 4 years...

Cheers,

-Andrew

Well. All you are left with would be for...which you could do something like:
Code:
<?php
for ($i=1; $i<=100; $i++)
{
  echo("Many tears will be shed at Iowa State University, Aerospace Engineering Department today.<br>");
}
?>

Otherwise. we could use foreach. But an array would have to be built which kind of defeats the purpose

Code:
<?php

for ($i=1; $i<=100; $i++)
{
  $tears[]="Many tears will be shed at Iowa State University, Aerospace Engineering Department today.<br>";
}

foreach($tears as $tear) {
    echo($tear);
}

?>
 
really?
I used the Intel Fortran Compiler (ifort or ifc)

Note that the compiler I referenced (WATFOR) dates back to the 1960s when I first learned to program in FORTRAN. I had a copy of the Intel FORTRAN compiler to evaluate, but it required our C++ product to run, and I didn't have the budget to buy that, so I've never tried it. I've got a 5,000 line program to do intermodulation product analysis on systems of transmitters, receivers and antennas that would be fun to get running. It ran on a VAX 11/780 under FORTRAN 77 25 years ago, so why wouldn't it compile now (other than all the typographical errors I would create while typing it in?)?
 
you show your age by using Fortran77 scott ;) try this:

Figures that being from Iowa you'd be thinking of WatFor (Waterloo Fortran).

"
WATFOR is an in-core, load-and-go compiler which has been implemented within the IBM 7040/44 operating system. FORTRAN IV was selected as the source language in order to achieve maximum language compatibility with other available compiling systems, in particular the IBM 7040/44 FORTRAN IV system. The principal advantage of the WATFOR compiler is that it translates FORTRAN IV programs at speeds of up to 100 statements per second. Since the compiler resides in core there is virtually no systems overhead, and hence large batches of “student” programs may be processed very efficiently. The compiler also provides extensive error diagnostics, during both the compilation and the execution phases of a program run. This feature makes the system attractive to both learners and learned users alike."

My very first class as a freshman in college (1969) was about programing graphics applications in Fortran IV. In those days "computer graphics" referred to using computers to generated drawings on a pen plotter. My first attempt resulted in a 400 ft straight line ("program terminated by operator"). Eventually I managed to draw the famous "Three Pronged Blivet" http://en.wikipedia.org/wiki/Blivet on the plotter and even learned to generate images on a vector graphics display (a CRT where you could cause a sequence of vectors (lines) to be repeatedly drawn. Once you got past about 200 lines the display flickered terribly.
 
I am always amazed at the diversity of knowledge here. I've actually been Google'ng with little sucess. I should have just realized that posting a question here would get me the best results.

The core of the application that I am the pdocut manager for is writeen in FORTRAN. We often come under fire for using FORTRAN (funny it usually comes from folks whose systems are writen in COBOL).

Anyway, I need to create a list of comparative advantages/disadvantages for using FORTRAN as opposed to other languages such as the C variants and COBOL. One thing to keep in mind is that the core system runs on OpenVMS operating system, HP (formerly DEC) Alpha and we will be migrating to Itanium soon.

Any help would be appreciated.

Thanks,

Len
 
I am always amazed at the diversity of knowledge here. I've actually been Google'ng with little sucess. I should have just realized that posting a question here would get me the best results.

The core of the application that I am the pdocut manager for is writeen in FORTRAN. We often come under fire for using FORTRAN (funny it usually comes from folks whose systems are writen in COBOL).

Anyway, I need to create a list of comparative advantages/disadvantages for using FORTRAN as opposed to other languages such as the C variants and COBOL. One thing to keep in mind is that the core system runs on OpenVMS operating system, HP (formerly DEC) Alpha and we will be migrating to Itanium soon.

Any help would be appreciated.

Thanks,

Len

It's been a loonnnnggg time since I did anything with Fortran or Cobol (like 35 years), but Cobol was preferred over Fortran because of it's more accurate handling of monetary units. The notion of "rounding errors" piling up by the millions of dollars in some obscure account is loosely based on attempts to write banking applications with Fortran and using floating point variables because that was easier than counting pennies with the limited range (and quantity) of integers in early versions of Fortran. IIRC Cobol code was supposed to be "self documenting" but any decent Cobol programmer could defeat that capability without thinking hard.

The compiled computer language de jour is called C sharp (C#). It is specifically targeted at writing windows applications, particularly GUI intensive ones. It provides a framework for what's called "managed code" which in simplest terms means that the operating system handles the memory management task which for the most part (again talented programmers can defeat anything) eliminates the dreaded "memory leak" which used to lead to the "blue screen of death" and/or GPF (global protection Fault e.g. the "you're hosed" message).

When you think carefully about it, almost every advance in programming languages came with (somewhat unsuccessful) attempts to protect us users from the mistakes of the programmers and C# is the latest of that.

There was a time when programing languages were focused on a narrow range of applications and had serious shortcomings when applied to the wrong task, but today it seems that any mainstream language has the tools to do almost any job with reasonable efficiency. That means you might want to chose the language for your project on the basis of the available talent pool which is likely shrinking pretty fast in the Fortran (and probably Cobol) world.
 
Good lord, I'm old.

Too old to remember programing the format drum on the keypunch (with a punched card of course)? Or dropping the whole box of punched cards (with nary a sorter in sight) that represented your feverish attempt over the last 28 straight hours to finish the assignment on time, and being unable to decide between crying, laughing, or screaming?
 
Am I the only one who does not understand the computer language being written on this thread?
 
Am I the only one who does not understand the computer language being written on this thread?

Not likely. Heck, we could be making it all up as we go here and get away with it for quite a while if the "old guard" would keep the secret.
 
Figures that being from Iowa you'd be thinking of WatFor (Waterloo Fortran).

"
WATFOR is an in-core, load-and-go compiler which has been implemented within the IBM 7040/44 operating system. FORTRAN IV was selected as the source language in order to achieve maximum language compatibility with other available compiling systems, in particular the IBM 7040/44 FORTRAN IV system. The principal advantage of the WATFOR compiler is that it translates FORTRAN IV programs at speeds of up to 100 statements per second. Since the compiler resides in core there is virtually no systems overhead, and hence large batches of “student” programs may be processed very efficiently. The compiler also provides extensive error diagnostics, during both the compilation and the execution phases of a program run. This feature makes the system attractive to both learners and learned users alike."

My very first class as a freshman in college (1969) was about programing graphics applications in Fortran IV. In those days "computer graphics" referred to using computers to generated drawings on a pen plotter. My first attempt resulted in a 400 ft straight line ("program terminated by operator"). Eventually I managed to draw the famous "Three Pronged Blivet" http://en.wikipedia.org/wiki/Blivet on the plotter and even learned to generate images on a vector graphics display (a CRT where you could cause a sequence of vectors (lines) to be repeatedly drawn. Once you got past about 200 lines the display flickered terribly.

Used it on an IBM System 360 Model 67, starting in the fall of 1969. Cards or teletype with a dial up system called CRBE, or Conversational Remote Batch Entry system. CRBE RIP was the usual operating mode. :D

Hollerith_card.jpg


IBM 360 rules!

Good lord, I'm old.

Now, do any of the youngsters here understand the significance of column 6 being marked like it is, as well as columns 73-80? Oh, I am dating myself. I spent a lot of time writing FORTRAN code, but the most recent was about 25 years ago.
 
Never had a need to learn COBOL. Fortran was what we were using for engineering stuff. Used to be there were not a whole lot of applications to be bought off the shelf. You either found a program that someone had written or did it yourself. When I was having to do finite element analysis I was extremely happy when we got FASTRAN and PATRAN on VAX. That speeded up our work tremendously such that we actully were doing work and not being programmers all the time. But I dodn't think I have done any programming for over a decade now.
 
When I was in school, I once had to write something using the "IBM Cards." The process bites! And, there was no "gluing back the errors." You started the card over again. For a rookie, it was "type and punch" method. Fortunately, that was my only time ever.

I went on to working on the older analog copiers where mechanics and optics were not minor issues. Nowdays, mechanics are barely used.

Mr. Backus, RIP. You served us well.
 
The compiled computer language de jour is called C sharp (C#). It is specifically targeted at writing windows applications, particularly GUI intensive ones. It provides a framework for what's called "managed code" which in simplest terms means that the operating system handles the memory management task which for the most part (again talented programmers can defeat anything) eliminates the dreaded "memory leak" which used to lead to the "blue screen of death" and/or GPF (global protection Fault e.g. the "you're hosed" message).

When you think carefully about it, almost every advance in programming languages came with (somewhat unsuccessful) attempts to protect us users from the mistakes of the programmers and C# is the latest of that.

C# and Java fill an interesting space; with the right architecture they can run in real time systems that perform in excess of 1 billion transactions a day.

The skills are hot and the technology is still emerging. Your development process has to be very strong to use these tools effectively; bad design WILL kill a project. You can easily leverage global labor pools with these technologies.

C/C++ may be good picks, especially if you are working on a high volume real time system, however, skillsets in this area are diminishing and most students coming out of university do not have a solid foundation in these languages. You are, statistically speaking, more likely to have SPOF (single point of failure) resources in your organization if you leverage these technologies, but your TCO for the rearchitected system can be lower. I will note, however, that some of the brightest and best engineers I have ever had the pleasure of working with or have working for me are generally some of the brightest engineers around.

How many lines of code is your core product, Len? You are moving from OpenVMS to Itanium running a VMS variant, Linux, or Windows? Is the system real time transactions, pricing, batch work?

Cheers,

-Andrew
who, yes, still needs to email Len
 
Well. All you are left with would be for...which you could do something like:
Code:
for ($i=1; $i<=100; $i++)

Otherwise. we could use foreach. But an array would have to be built which kind of defeats the purpose

You're right that a C<foreach> is the wrong way to go. However, the For is the right way to go - it clearly articulates "do this until some value is reached", versus a while, which says "do this forever until a condition is true". It's splitting a fine hair but it matters all the world when it comes to code readability.

Cheers,

-Andrew
ran code reviews for 7 years, now fixes organizations that don't do them
 
You're right that a C<foreach> is the wrong way to go. However, the For is the right way to go - it clearly articulates "do this until some value is reached", versus a while, which says "do this forever until a condition is true". It's splitting a fine hair but it matters all the world when it comes to code readability.

Cheers,

-Andrew
ran code reviews for 7 years, now fixes organizations that don't do them

php encourages really bad code. This is why there are SO many vulnerabilities. It's not really a fault of the language so much as the developers. PHP was meant to be really easy which means that some things that should NOT be really easy for good reason are. PHP5 is a step in the right direction.

On another note: for is *way* faster than while. foreach is by far the fastest method to loop with php.

As to why I used while--I don't know. Probably because the code I'm maintaining right now is about 30,000 lines of crap where the programmer had no knowledge of for or while and quite frankly problably didn't know how to use a loop.
 
FORTRANasaurus with a COBOL lobotomy, migrated to Ada for gov't projects, had to write some Pascal and C imbedded in Oracle... decided I liked database architecture and administration way better than 3GL coding ... I don't miss it at all...
 
Lance,

Thanks...if I were choosing today I would pick something but the core of the app is just over 20 years old today...lots of man years invested...some folks think we should re-write it...I'm against that...I've seen too many firms in our business try it...for some it put them out of business...we do write a lot of stuff outside the core which is good...we use more modern languages for that and we expose the data in the core via web services and other methods which is good too. My point to the FORTRAN detractors is that the core should be a black box. The point about finding good developers is right on but the problem crosses all languages and occurs as we approach full employment.

Len
 
How many lines of code is your core product, Len? You are moving from OpenVMS to Itanium running a VMS variant, Linux, or Windows? Is the system real time transactions, pricing, batch work?

Andrew,

Millions of lines of code...the application has been around for 20 years at an average of about 20 hard core coders developing new stuff every day during that time...it is also very mission critical processing...a lot of stuff in the core system is old and so re-writting it means making sure the new version is just a solid as stuff that has been doing its job day in and day out for a long time.

We are moving to Itanium running OpenVMS.

We have real time processing....we do everything via web services including accepting account update information and financial transactions 24/7/365. We can pull in the financial transactions even while the batch process crunches through the pricing and posting of today's transactions (mutual fund processing, can't actually process the trades until the price is set and that happens only once a day for most funds). We also have hot sync to a fail over copy of the database with all the industrial strength disaster recovery stuff you would expect...that gets tested once a month when we do periodic maint on the primary cluster...of course with the DEC...er...I mean HP clusters we also have fault tolllerance within the primary data center as well.

Len,

P.S. I do seam to remember that you were going to contact me about something...was it a job in financial services industry....did you make the switch. Email at work is len.lanetti@pfpc.com
 
Now, do any of the youngsters here understand the significance of column 6 being marked like it is, as well as columns 73-80? Oh, I am dating myself. I spent a lot of time writing FORTRAN code, but the most recent was about 25 years ago.

Ghery,

Well...at one time I could sight read hollerth at about 5 to 10 WPM...a little faster at Baudot...though I don't remember anything special about column 6...it was a long time ago.

Len
 
Back
Top