Hot answers tagged

48

FORTRAN was, at the time(*1), lacking almost everything, from string handling to all I/O beside reading numbers from cards or tape. Heck, not even integer size was guaranteed across machines. No real way of structuring or flow control beside GOTO — even subroutines/functions were only integrated a year before with FORTRAN II. For most parts, FORTRAN is a ...


32

The meeting that defined the requirements of the new language took place on May 28–29, 1959. Charles Phillips prepared a memo several months later summarizing the decisions made at that meeting. Its listing of requirements is reprinted on page 201 of the ACM’s History of Programming Languages. a. Majority of group supported maximum use of simple English ...


29

The language defined in the original COBOL report from 1960 did indeed (see section 3.2.2). A normal “compound condition” consisted of a series of “simple conditions” (relations) separated by AND and OR; however, there were two abbreviated forms: An expression like X = Y AND X = Z could be abbreviated to X = Y AND Z. The report gives the tricky example A = ...


18

TL;DR: Which components or facilities were the biggest obstacle to porting typical COBOL applications? Simply that there were not many applications that made sense to be ported to (desktop) micros. If at all, downward migration of whole applications was toward /3x systems and ultimately AS400. Which was well supported and rather painless. <RANT> ...


14

COBOL also has Level 88 conditions. Not quite what you are asking, but related. For example: 01 WS-FRUIT PIC X(20). 88 APPLE VALUE "Apple". 88 BANANA VALUE "Banana". 88 ORANGE VALUE "Orange". Now I can use: IF APPLE OR BANANA OR ORANGE The variable name is not even necessary because it knows which ...


13

COBOL applications have not typically been ported from mainframes to micros because they rely on two features that micros typically lack. Throughput COBOL applications often need to process large amounts of data in a fixed amount of time (e.g. processing a day's sales data for all stores in a chain). These tasks are typically I/O bound and mainframes have ...


7

Processing card input is among the most basic functions COBOL had to provide to get a hold in data processing - computers were meant to be integrated and improve existing card procedures. Now, reading past the citation gives Ms. Sammet's impression: I would think that the use of 'inappropriate' does indicate that the mentioned 'direct processing' of card ...


6

You can do if a = 'orange' or 'apple' or 'banana' in COBOL, it translates as if a = 'orange' or a = 'apple' or a ='banana' You need to be careful when doing this as it does not always work the way you expect when you mix in And or not clauses. I would suggest using brackets and keeping it simple i.e. if (a == 'orange' or 'apple' or 'banana') and fruit-age &...


5

Different things happened. One, when mainframes were replaced, their applications were replaced with new applications written in modern languages for the new platforms. Many a IBM mainframe have been replaced by modern Unix machines with completely new software applications. Two, for those that didn't want rewrite their applications, but change platforms, ...


4

A facetious response is to point out Betteridge's Law, i.e. the answer to your question is "no". There is nothing fundamentally different about COBOL and/or other legacy systems that prevents newcomers from learning them. That they're weird and unfamiliar and thus more effort than usual to learn is not a barrier, since bleeding-edge stuff is also ...


3

Could possibly (also) have meant control of the card reader. Some card readers had multiple output bins and you could read a card, do a short computation, and then programmatically select which bin to put the card just read into. This was used mostly for kicking out error or exceptional cases (e.g., some payroll record that had a ridiculous hourly rate, or a ...


3

This is a partial answer at best, and guesswork as well. Jean Sammets's Programming Languages: History and Fundamentals -- another book everyone here needs -- has a very brief section on FACT, pp327-328. This might be relevant to the present question: The implicit assumption is that people using FACT will have their data on an input deck from which a tape ...


3

COBOL has an EVALUATE statement that takes the first form (need to use ALSO for multiple conditions). EVALUATE TRUE ALSO TRUE WHEN WS-A = 'ORANGE' OR 'APPLE' OR 'BANANA' ALSO ANY DISPLAY 'A FRUIT.' WHEN WS-A = 'ONION' OR 'PEPPER' ALSO WS-COURSE = 'DESSERT' DISPLAY 'A VEGETABLE. DO NOT SERVE THIS FOR DESSERT!' END-EVALUATE


3

What was the most critical supporting software for COBOL on IBM mainframes? I'd venture to say that it was neither of the things you mention; I think it was what IBM termed "access methods" -- data structures and low level system libraries allowing programmatic access to files, first sequential (on tapes), later random (on DASDs). COBOL evolved to ...


2

Not sure what you really asked. I was an IBM SE back then. Cobol is a compiled language. So you need a compiler for it. The compiler needs an operating system. The operating system needs a mainframe computer. The mainframe computer needs FEs to maintain it and electricity to run it and it needs to be cooled in a special room with a raised floor to permit ...


1

IMS is more of an runtime environment and transaction system than a data base. I'll have to disagree on that one. IMS is/was a non-relational database (hierachical, if I correctly recall my grad school course in it). It's almost unused today, everyone having gone over to relational databases (SQL style). Perhaps you were thinking of CMS (Conversational/...


Only top voted, non community-wiki answers of a minimum length are eligible