September/October 2018 issue of acmqueue The September/October issue of acmqueue is out now

Subscribers and ACM Professional members login here

Programming Languages

  Download PDF version of this article PDF

Error 526 Ray ID: 48a66711da3fc5de • 2018-12-17 03:46:26 UTC

Invalid SSL certificate








What happened?

The origin web server does not have a valid SSL certificate.

What can I do?

If you're a visitor of this website:

Please try again in a few minutes.

If you're the owner of this website:

The SSL certificate presented by the server did not pass validation. This could indicate an expired SSL certificate or a certificate that does not include the requested domain name. Please contact your hosting provider to ensure that an up-to-date and valid SSL certificate issued by a Certificate Authority is configured for this domain name on the origin server. Additional troubleshooting information here.


Originally published in Queue vol. 8, no. 6
see this item in the ACM Digital Library



David Chisnall - C Is Not a Low-level Language
Your computer is not a fast PDP-11.

Tobias Lauinger, Abdelberi Chaabane, Christo Wilson - Thou Shalt Not Depend on Me
A look at JavaScript libraries in the wild

Robert C. Seacord - Uninitialized Reads
Understanding the proposed revisions to the C language

Carlos Baquero, Nuno Preguiça - Why Logical Clocks are Easy
Sometimes all you need is the right language.


(newest first)

Kuna Kanthasamy | Fri, 19 Aug 2011 05:00:09 UTC

I do not agree with your statement The Ideal HPC Programming Language is Fortran I was involved several HPC researches and personally also wrote many HPC modules. Most of our findings are showing C++ also can play major role in HPC programming. For example, we took openForm CFD code and completely re-wrote sparse matrix Operations with OOP with Parallelization C++ and also using OpenCL. We gain around 90% performance improvements on regular DELL precision M4400 laptops. Another project A parallel finite element method computing system A parallel finite element method computing system for solving a very large scaled structure problem having the degree of freedom of ten million (10,000,000) or more, comprising: a means for performing domain decomposition; a means for distributing a subdomain to a responsible part of each processor; in this project, we gain around 95% performance improvements. In this project we use MPI with C++ So any way& my view C++ also can do many different good things with HPC domains.

Eric Nicholson | Mon, 09 Aug 2010 20:38:47 UTC

I have performed similar research in the past 7 years on HPC and Fortran 90/95, specifically. While I agree with some of your conclusions, I must say that there are several critical issues I have with this article.

First, the argument Fortran is an ideal language seems sketchy. It's not clear if the author of the re-written program is a domain expert (physicist) or a developer with knowledge acquired strictly thru code maintainance. Although Mr Loh states whether or not Fortran is ideal is not important, it colors the article nonetheless. My research suggests that different domains have different vernacular, regardless of style. In fact, the more complex the nomenclature, the closer it's mechanics resemble something like Prolog. There are examples in industry involving scheduling and planning where this is on display such as air traffic control, city planning, interstate highway systems, etc. Also, in my research, I have seen where the mindset of the chosen developer affects the success of development depending on whether the developer comes from a maintenance or new development coding perspective.

There are other constantly evolving languages (Java, C/C++, Ada) to which no comparison was made. These are more likely to give credible anecdotal evidence since legacy Fortran code is historically migrated into one of these languages for expediency and economy due to the number of programmers available using those languages; however, if the legacy Fortran belongs to a so-called "mission critical" system, it has been my experience that refactoring occurs which is similar to what is being suggested in the article but not quite in the same way mentioned.

While the article does suggest that code can be reduced thru re-examination, it is only part of refactoring. I would expect that standards have changed and more efficient equations could lead to quicker results, possibly, rendering the algorithm obsolete. There is sparse mention of OO constructs such as modules although interfaces are mentioned briefly. No results are mentioned regarding whether or not code re-use occurred. This is important to note since a typical characteristic of legacy fortran code and older structural programming is the existence of duplicate code throughout the program. Identifying a pattern of code repeated numerous times and reducing it to a single module will increase readability, decrease SLOC and likely reduce the size of the program. By not being able to answer these types of questions, Mr Loh's arguments, as presented, is somewhat weak.

Nevertheless, the conclusions on single CPU performance are in line with what what I have observed; however, I should note that I tested some of the examples in Fortran 90/95 and C++. The results were very dramatic in that the C++ code took dramatically longer (4 X as long) for 500,000 iterations. Perhaps a comparison of column-major order (Fortran) and row-major order (C++ and most other PLs, for that matter) could explain it.

Eric Nicholson IntrepidWerx, Inc

Michael Dykman | Wed, 30 Jun 2010 16:57:57 UTC

Have you never heard of APL or J?

Leave this field empty

Post a Comment:

© 2018 ACM, Inc. All Rights Reserved.