Fortran Software Development

Fortran Programming Language

  • First introduced by IBM in 1950s
  • First commercially successful high level language
  • Initially developed to support mathematical, engineering, and scientific applications
  • Over 40 compilers developed by 1960s supporting various hardware platforms
  • In use today producing highly efficient software

Fortran was first introduced by IBM in April, 1957. Fortran was invented by a team of IBM employees led by John Backus. Fortran was developed specifically for the development of mathematical, scientific, and engineering applications, and to rid the developers of the minutia and complexity of learning assembly languages and writing assembly language software. Thus the developer's need, to concern themselves of the idiosyncrasies of a specific processor when developing software, was reduced.

Fortran was a significant, ground breaking compiler. It was the first successful, commercially available high level language, and the basis for most high level languages that followed. The development team was lead by John Backus and included Sheldon Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Richard Goldberg, Lois Haibt and David Sayre.

As Fortran gained in popularity, other computer manufacturers began to support the Fortran language with their own version of a Fortran compiler. By 1963, over forty compilers had been released for various computing platforms. As deviations arose between the various compilers, the first standardization effort was completed in the early 1970s. The net result was that Fortran programs could be written and easily ported to other computer architectures.

Over the years Fortran standards have evolved to take advantage of new evolving programming techniques employed by other programming languages. Numerous releases of Fortran have occurred over the years, including Fortran I, Fortran II, Fortran IV, Fortran 66, Fortran 77, Fortran 90, and Fortran 95. Well over 50 years after it's first release Fortran is still in use and remains a very efficient compiler in developing high performance software.


HTML/XHTML Markup Languages

Our HTML/XHTML Experience

  • Wrote HTML and CSS for over Ten Years Using Text Editors
  • Used Joomla! Content Management System to Create Web Sites
  • Wrote Our Own Proprietary Content Management System
  • Creates Websites with Tableless Layout Themes
  • Familiar with Website Layout Tools Like Dreamweaver

HTML/XHTML, which stands for HyperText Markup Language and eXtensible HyperText Markup Language, are two popular markup languages for designing web pages. Tim Berners-Lee defined the original version of HTML and wrote a browser to support it in time frame around 1990.

HTML is a markup language that consists of tags within open and close angle brackets which enclose data that describes a web page. Angle brackets are less-than symbols and greater-than symbols, the less-than symbol being the open bracket and the greater-than symbol being the close bracket. Tags are used to define headers, paragraphs, images, blocks of code, etc. Some tags require an open and close tag; some tags need not be closed. Attributes may be defined within the open tag. Cascading Style Sheets (CSS) may be used to refine the data enclosed within the tags by specifying appearance and positioning of the data in the formatted web page. JavaScript is a popular scripting language that allows dynamic content to be used within an HTML web page. XHTML is a markup language using the same tags as HTML; however XHTML abides by the formal XML specifications in the markup language.

There has been some controversy involved in the use of HTML tables in positioning elements in a web page. Many people advocate the use of CSS positioning capabilities in web page layout. In accomplishing this goal, the web designer would use the <div> tag along with the position and float attributes, together with the corresponding CSS definitions and values. The advocates of this strategy point out that those who use this strategy are able to more quickly create, change, and modify the appearance of the web page presentation.

The browser is the tool that displays websites presented in HTML/XHTML. Internet Explorer, a Microsoft product, dominates the market. Netscape's browser, Navigator, dominated the market in the early days of the World Wide Web, but was displaced by Internet Explorer. The remnants of Navigator have been moved over to a browser named Mozilla Firefox, an open source software project. In 2003, Apple released a beta version of a browser named Safari, and since then has released a version that supports Windows operating systems. Google introduced a new browser named Chrome in 2008. America On Line (AOL) has a browser named AOL Explorer. Other popular browsers include Opera and Konquerer.




Benefits of Using Joomla!

  • Popular Content Management System
  • Benefits from open architecture
  • Worldwide development community
  • Thousands of plugins available supporting many functions
  • Does not require programming experience to create web sites

This web site has been created and is being maintained using Joomla!. Joomla! is a popular CMS (Content Management System) written in PHP with a MySQL backend. Joomla! takes advantage of an open source architecture, and benefits from contributions from developers around the world. In addition to working on the core Joomla! product, developers are also developing plugins that enhance the product.

Joomla! Features

  • Written in PHP
  • Backend typically uses MySQL database
  • Ability to change look and feel by changing templates
  • Templates available from many 3rd party sources

Using Joomla! a website developer can quickly assemble a complete website with many pages. Programming skills are not necessary in putting a website together. Joomla! uses an intuitive GUI, for editing articles, menus, and other components necessary to assemble a website. Typiclally, a template is used to provide an index.php, necessary CSS files, image files, and other configuration type files. When a website creator wishes to change the content of the site, they can do so by editing the articles from the Joomla! GUI or change and load a template. Then the modification is complete. This is generally a pretty quick process. Dreamweaver or any other graphical web design tool may be useful in designing the website template and underlying CSS files. The content, including articles and menus, are generally stored in a MySQL database, which is created, edited, and modified with the Joomla! GUI.

Plugins have been and continue to be developed by independent developers around the world. Typically, functions like search pages or "contact us" pages are created in plugins. News pages and shopping carts are also available to the Joomla! web site creator by way of plugin support.

Support for "tableless web site design" is sketchy in Joomla! In designing our site, we used the Beez template as a starting point for our tableless design. It works quite well; however, locating tableless templates in the Joomla! community is difficult. Flash support seems sketchy also. When downloading a plugin, the Joomla! user will probably have very little knowledge of the developer and whether the plugin is robust or buggy. Therefore, the Joomla! web site designer should be wary and suspicious in nature. The individual Joomla! web site designer should thoroughly test other developers' plugins before using those plugins in their own web site. Support necessary for answering designers' questions is available on the Joomla! forums; however, sometimes that support comes from unreliable or inexperienced developers suggesting solutions with deprecated methods.




Assembly Language Software Development

Assembly Language Processes that We Have Developed

  • Device Drivers
  • Interrupt Service Routines
  • Real Time Embedded Systems

Assemblers that We Have Used

  • 360/370
  • Z80/8080
  • x86
  • 68000

The use of assembly language began in the 1950s to free programmers from the nuts of bolts of memorizing machine language opcodes, calculating address references, and other minutia involved in writing machine language programs. Assembly languages used user friendly mnemonic opcodes and user friendly address labels that created programs for which there is a one to one correspondence between an assembly language program and its equivalent machine language program. A computer program called an assembler translates an assembly language program into the equivalent machine language program.

Processes that May Benefit from Being Written in Assembly Language

  • CPU bound processes in need of performance enhancement, such as device drivers or interrupt service routines
  • Processes that use machine instructions unique to a given processor
  • Processes that run on a processor that does not have a high level language written for it

Assembler programs are unique to a specific processor and may only assemble a program for a specific type of processor. The algorithm implemented for a specific processor may have be reimplemented for a different type of processor. Assembly language programs were not likely to be portable from one processor to other processors. High level programming language began to be introduced in the late 1950s and 1960s allowing the programmer to begin writing software that could be written and compiled for one processor and recompiled for another processor. The resultant machine language program was probably not as robust and had a reduced performance from the program written in assembly language, but development time was greatly reduced. Sometimes the reduction in performance of the high level language was negligible, especially for I/O bound processes. The delay, caused by waiting for I/O to complete, could likely be measured on the order of milliseconds or more, while the degradation of performance from programs using high level languages was on the order of microseconds or tens of microseconds. Often the slop, or latency, in the I/O process was greater than the degradation of performance in programs written in a high level language. Today, the productivity of high level languages have greatly improved and the degradation in performance has become less and less.

Assembly languages are defined for each type of processor and are documented in data books published by the processor's manufacturer or designer. Today, families of processors share the same machine language and therefore can use the same assemblers. Indeed, often an assembly language is often shared by multiple processor manufacturers. Still assembly languages may be useful in improving the performance of CPU bound processes, like interrupt service routines that do not involve suspending for I/O to complete. Sometimes, the use of a processor's registers instead of using memory on the data bus can reduce the time involved in completing short processes. In addition, some processors may have special machine instructions that are not be utilized by machine language programs produced by the compiler when compiling code produced by the use of high level languages. Assembly language programs may be useful in enhancing performance of these types of applications, such has device drivers, real time applications, interrupt service routines, and embedded applications.