Future Directions in Programming Languages

Future Directions in Programming Languages

FUTURE DIRECTIONS IN PROGRAMMING LANGUAGES Samuel A. DiNitto, Jr. Rome Air Development Center Griffiss Air Force Base, New York Abstract; This paper explores some language's success, it is more often possibilities for the programming the inertia and politics of its languages of the next century. competitors that must be overcome Projections are based on what has and rather than its relative merits. In has not been accomplished in the last the world of programming languages, four decades and the programming tools inertia is measured in the amount of proposed for the next decade. software already built in a language Influencing programming language and still in use, the number of people directions at both the high levels of trained and actively using the software development (e.g., problem language, the number of popular decomposition) and at the lower levels language sensitive software development (e.g., algorithm implementation) will tools for the language, the be parallel execution. There could requirements (both past and current) (finally) come a serious break with the for the use of the language in specific traditional languages such as Fortran, applications, and other such culture Algol, PL-1, Pascal, C, and Ada. Very considerations . Similarly, "politic s " High Level Languages could take over in is concerned with such things as popularity. Within an increasing authority and scope of authority of number of domains, the programming, in those who require the use of a addition to man-machine interfaces, language, the stature of those who will be accomplished through multiple endorse the language, and the power media (VHLL, speech, natural language, (often me as ur ed as mouse, menus, touch screen, etc.). "share-of-the-market") of those responsible for the origination of the language. Thus, "inertia" covers those items that must be overcome, and "politics" I. Intrduction covers those that must be obtained to begin building significant inertia. As This paper explores some strong (at examples, FORTRAN and COBOL have much least in the author's opinion) inertia and in the past have had strong candidates for the Programming political backing by Government and languages that we will see in the next Industry: in the past, Pascal has century. For this purpose, received strong academic political "programming language" is defined as endorsemnt but has developed little any language used to create a set of inertia: and Ada has seen mixed instructions for a computer to follow political endorsemnt, but is now in carrying out a task, a framework enjoying a rapid buildup of inertia. to use in solving a problem, when that solution is storable for future user In synopsized form, the present It attempts to do this by reviewing how s tate-of -af fairs is simply this : The we have arrived at today's popular procedure oriented (or imperative) programming languages, and identifying style of languages (FORT", Pascal, c, the relevant practical experience ALGOL, PL-1, BASIC, Ada, etc.) still gained from that history. The history rule the roost with regard to will be used with the state of today's popularity, and most of these languages research and expected future successes (when we include all their dialects) to temper the ideals for the next are still increasing their inertia, generation of programming languages. although the relative share of the market is decreasing for some (e.g., This pragmatic author believes the various dialects of ALGOL, PL-1, that, with regard to a programming FORTRAN, etc.). The functional (or U.S. Government Work. Not protected by 169 U.S. copyright. applicative) styles, such as LISP, and approaches like John McCracken's the logic styles, such as Prolog, are Autocoder for FORTRAN. seeing a resurgence of activity (at least in the R&D world) due to the During these times, very few places renewed interest in artificial had more than one computer system 01 intelligence in the last decade and the had the means or inclination to fund so-called Fifth Generation and more than one. Also, applications were Strategic Computing thrusts. We see becoming more and more diverse. This some successes for the application meant there was a need for a practical, specific, or very high-level languages general-purpose language to span the (VHLLs) , styles in business scientific, business, and real-time appl i ca t ions , too1 ing , aut omt ed t es t (largely for DOD applications) equipment applications, and even communities. However, the world did AI/expert systems applications; but in not leap at a very good one for the the big picture, the use of such times, namely, JOVIAL , whose languages is not universal, even within implementations came on the scene in their narrow domains, so they have not the early 1960's [SAMM 69, pg. 5301. really caught on yet. JOVIAL, for Jules' Own Version of If one accepts the above view of the International Algebraic Language, where we are, let's now try to built on the structure and controls in establish how we got here. This may Algol-58. It added tables and arrays, allow us to determine what we can learn capable of being packed at the bit from a historical perspective that may level by programmers, or at the bit, be relevant for our future projections. byte, and word level by the compiler. Status, literal, Boolean. and user Most people acknowledge that it was specified fixed-point data types were really the language FORTRAN, in the also added. The language enforced its 1956 timeframe, that seriously kicked typing rules, but on a case-by-case things off for the computing world in basis a programmer could alter them. general. In the next five years, The DEFINE facility allowed one to almost everyone in the computing isolate machine dependent parameters community had at least heard of COBOL, for easy redefinition when porting to ALGOL, LISP, and possible NELIAC, but another machine. COMPOOLS of shared how about the other five dozen data, programs, and their languages? Five years after that specifications allowed the compiler to (i.e., 1966). in addition to the correctly integrate and/or help debug numerous dialects of the previously software developed by multiple named languages, computer people at programmers. Finally, if all else least heard of PL-1, SNOBOL, JOVIAL, failed, the language allowed one to and BASIC, but not too many heard of fall directly into assembly language to the other eight dozen languages accomplish what could not be available [SAMM 72, pgs 606, 6071. efficiently handled at the source level. What more could a programmer of Let's stop here for awhile to make the 1960's ask for?! What went wrong?. some observations about the languages being used to build so-called "fielded" Well, for one thing, while several systems, ignoring the fact that, at of the large mainframers, such as IBM, that time and for at least ten and more UNIVAC, and CDC had some efficient years, most software would be compilers for JOVIAL (most directly or implemented in assembly language. indirectly funded by the Air Force) ; Computers were expensive at that time, while several large, complex, real-time and the programmer who could implement and successful Air Force and FAA software in the fewest (however systems were implemented in JOVIAL; measured) number of words of storage while even commercial applications did was golden. Recursion and block show up (airline reservations) ; and structure were elegant, but both, while the UK's Ministry of Defence especially the former, chewed up copied the JOVIAL style and philosophy storage and machine cycles. The need in CORAL-66, there was no perceived for the programmer to stay close to the support or long-term commitment. After machine's own instructions was evident all, the newer, more modern PL-1 was by the above and the need to debug from being supported by the company with so-called "core dumps" of the binary over two-thirds of the worldwide state-of-the machine's memory and marketplace. Merit and track record registers at selected points. Finally, just did not count for much. People only FORTRAN and COBOL were being using Fortran, COBOL, and/or assembly taught en masse to the people actually language were content to wait until building the fielded systems, and I PL-1 came around, with all the support might add by some very innovative and backing that only the large I70 mainframers could supply, even though to programming the Von Neumann by the mid-1960's the mst respected computer, and, in this author's software houses (e.g., SDC, CSC) were opinion, in practice, we have not made fielding and supporting JOVIAL that overwhelming improvement in compilers, training, and JOVIAL systems productivity or quality that has been software (including a working promised with the introduction of each time-sharing system). new programming language in this style. If you doubt this, try to develop and Three points can be made at this coduct an experiment that will prove time. First, a language wasn't going the advantages of one imperative to leave the R&D community unless it language over another to the majority's made efficient use of resources. sati sf ac tion. Second, without readily available training, there was little possibility The case for the applicative style of a language gaining popularity. of language on the surface is not much Third, without at least perceived different. The past twenty-eight backing of the hardware vendor(s), a years, since McCarthy's early papers. language was doomed. The limited but have witnessed a gradual inclusion of significant success of CORAL-66 in the the more complex features that students UK and the promising future of Ada are have for years implemented as exercises built on these points.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    8 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us