Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/nebupook/public_html/include.database.php on line 2

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 32

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 33

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 32

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 33

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 32

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 33

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 32

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 33
NebuPookins.net - NP-Complete - Job bragging type stuff
 

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 32

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 33
Job bragging type stuff
[Computer]

As part of my job, I was given the task to write a COBOL parser; basically that's half of a compiler (the other half is code generation). Unfortunately, I had never seen a line of COBOL code before. So on May 17th (a Tuesday), I started learning COBOL by reading tutorials on the web. On May 18th (Wednesday), I decided I had learned enough to start working. On June 20th (a Monday), I finished the COBOL parser. Then I had to do some stuff which I won't mention due to my NDA. Then on July 6th, I was tasked with performing GOTO elimination.

GOTO elimination is theoretical stuff that's still being researched. I googled around and read a few thesis papers on the topic (what's pretty cool is I found one from one of my teachers at McGill) and then sat down and thought long and hard before I was able to more or less figure out how to apply this theoretical knowledge in practice. On July 8th (a Friday), I wrote a paper explaining to my boss(es) how I would go about performing GOTO elimination in COBOL.

One of the resources I had being using for researching COBOL stuff is the newsground comp.lang.cobol. On July 11th (the next Monday), I decided to post a question to the group. You can read the thread from the Google newsgroup archive.

I'm trying to write a program that reformats the structure of a given COBOL program. One of the transformations I'd like to apply is to try to eliminate as many periods as possibles, using the END-whatever (END-IF, END-CALL, END-COMPUTE, etc.) constructs.

My question is, is it always possible to do this? I don't want to "cheat" by adding new paragraph names at the beginning of every sentence (which may affect PERFORM statements anyway). My theory is that yes, it is always possible, but I haven't been programming in COBOL for that long, so I wasn't sure.

- Oliver Wong

One of the immediate responces was:

Why?

So I obliged them with:

Mainly to facilitate GOTO elimination.

And that's when all hell broke loose. Well, not really. Just a mild flame war errupted in which people basically said that machine generated code is really ugly, and the whole point of my work is pointless and so on. I had made the first post around noon (11:41am according to Google), and by the end of the day there were 15 replies. Then the next day there were 72 more replies (total 88 messages, including my 1st one). Since I had to be there to reply to these messages for them to reply back and make yet more messages, with an 8 hour work day, that's a message every 6 minutes. (And really, how much is there to say about COBOL? Back when I was lurking, they only had like 2 to 6 messages a day).

I'm gonna quote something I wrote, which basically says this is my first job. I'm posting it here because some of the later quotes refer to this post, so it's just for you, the reader, to understand what they're talking about.

Well, I'm hesitant to go into too much detail, as I'm actually a recent university graduate (bachelors in computer science) and this is my first (computer-related) job, and I signed an NDA, and I don't have much business experience, nor easy access to a lawyer, etc.

Anyway, here are some choice quotes which show the negativity I got with the idea of automated code restructuring:

However, I would be equally unimpressed with [your] proposed "solution", because it takes what is "simple, bad" code and replaces it with "not as simple, still bad" code.

All I'm saying is that this kind of task might require a bit of knowledge and experience that you've yet to garner and whoever assigned it to you might do well to reconsider the criteria which are taken into account when it comes to doling out work... granted that I do not believe I can lower the quality of my thinking far enough to be Management but I'd say that a good foundation for this kind of work would be a few years spent doing maintenance/enhancement programming.

My experience with "restructured" code is that in most cases, a large, poorly structured program gets "structured" (though often not in an easily understandable way - for human readers, I mean), and the program tends to get about 20% larger, give or take.

Seems like there is very little "profit" in that....

I've been given stupid tasks to perform before also.

Finally, as stated initially in this note, I *do* think it is possible to do what you are asking about. However, I am with those who questions the wisdom (and cost-effectiveness) of starting on the project.

Now I'm quoting the parts where they criticize the project, which makes them sound like "mean people", but actually many of them were very helpful, pointing out pitfalls I hadn't notice earlier, and quoting paragraphs from their 30 year old COBOL language references that were out of print to explain to me the semantics of certain parts of the language and so on. Overall, I was very pleased with the help I got and will probably continue to consult the comp.lang.cobol newsgroup for COBOL related inquiries. Still, there was the general sentiment that the project was a "bad idea". Then, this morning, someone made the following post:

Oliver, I have followed this thread with some sadness at the reactions your perfectly reasonable request has provoked.

There has been denigration of your task by people who really don't understand what you are doing or why, there has been complete misunderstanding of what you wrote and attempts to throw spanners in the works, or divert the the conversation.

There have been paranoid knee jerks from people who loftily believe that ONLY a human could write 'proper' COBOL...

The world of COBOL programming is, at best, insecure at the moment, so I guess much of this is to be expected.

Through all of this you have maintained a dignified and polite composure, which is certainly rare here.

I believe you have grasped much more about COBOL in a very short time than some posters here have in many years.

The task you are undertaking is a very interesting and worthwhile one. Re-factoring code from existing systems, whether it be COBOL or any other language is a valuable exercise. The people requiring you to do this are not idiots; it makes sense to derive as much value as possible from an exisitng investment before discarding or upgrading it. Providing a tool to do this is a challenging (but nonetheless, rewarding) task if you can make it happen. I believe you are well on the right track to doing so and will look forward to seeing the finished result.

Understand that some of the views expressed in this group are necessarily from people who, at the very least may not like what you are doing, and at the worst, would positively resist it. Either way there is no excuse for some of the hostility and rudeness you have encountered.

On the other hand, there are also people who are genuinely interested in your problem and have offered sound unbiased advice.

I hope you have had enough feedback to sort out your initial hesitations, and I'm completely confident you are able to sort the wheat from the chaff.

The ugly truth is that Oliver, a new hire at his first job, is doing something that sounds a whole lot more interesting and challenging than some of the work the rest of us have been doing for the last 10 or 20 or 30 years, and we're secretly afraid he'll succeed.

If I understand correctly what Oliver is attempting to do, the "knock-on" effects if he actually manages to succeed could be massive. As I see it, in order to re-factor "spaghetti" (or any other variation of programming "method") it's going to be necessary for the tool to "understand" the functions that comprise the program to be re-factored — effectively to understand what the program does and how it does it. Once you can do that, you have the precurser of a tool that can *really* convert one language to another — not just as a quick syntax re-hash, but as a genuine re-creation in another language.

I wish him luck, it sounds a fascinating task.. :-)

According to this site, Pete Dashwood is a "COBOL guru" and "a well known expert in the COBOL community and frequently contributes to magazines, web sites, and COBOL newsgroups." Couldn't find a second site that praises him, but according to his résumé, he's worked at CITIBANK, ESSO, XEROX, British Rail and IBM.

So that makes me feel like bragging.

 
Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 60

Deprecated: Function ereg_replace() is deprecated in /home/nebupook/public_html/include.parse.php on line 61
E-mail this story to a friend.
1. msanford said:
I believe you have grasped much more about COBOL in a very short time than some posters here have in many years. --Pete Dashwood

Neb, I have not only known this of you for nearly as long as I've known you (which, for those of you who don't know me, is approaching a decade) but I continue this vicarious bragging to other of my friends who would appreciate it.

Well done Neb, I always knew you were a genius. I was also about to write a post on my blog about exactly what you're doing and was collecting trackback URLs--this one's going at the top ;)

Posted on Thu July 14th, 2005, 8:47 PM EST acknowledged
2. Leafy Person said:
You have every right to brag, although your friends and family are already plenty convinced of your super genius status. We are all so proud!! Sniff! Sniff!
Posted on Fri July 15th, 2005, 7:57 AM EST acknowledged

You must be logged in to post comments.

Sites linking to this post: