Fortran - A Language with a Past and a Future Peter Crouch Chairman BCS Fortran Specialist Group BCS Wolverhampton.

Slides:



Advertisements
Similar presentations
Course Outline Presentation Term: F09 Faculty Name : Asma Sanam Larik Course Name :INTRO TO COMPUTING Course Code : CSE145 Section :1 Semester : 1.
Advertisements

Module 6: Introduction to C Language ITEI102 Introduction to Programming Structure of C++ Program - Programming Terminologies - Microsoft Visual Studio.
EC-111 Algorithms & Computing Lecture #1 Instructor: Jahan Zeb Department of Computer Engineering (DCE) College of E&ME NUST.
879 CISC Parallel Computation High Performance Fortran (HPF) Ibrahim Halil Saruhan Although the [Fortran] group broke new ground …
Chapter 7 Introduction to Procedures. So far, all programs written in such way that all subtasks are integrated in one single large program. There is.
Fortran Jordan Martin Steven Devine. Background Developed by IBM in the 1950s Designed for use in scientific and engineering fields Originally written.
ITCS 3181 Logic and Computer Systems 2015 B. Wilkinson slides3.ppt Modification date: March 16, Addressing Modes The methods used in machine instructions.
Names and Bindings.
CS 415: Programming Languages Algol Aaron Bloomfield Fall 2005.
Chapter 3: Beginning Problem Solving Concepts for the Computer Programming Computer Programming Skills /1436 Department of Computer Science.
Computational Methods of Scientific Programming Lecturers Thomas A Herring, Room A, Chris Hill, Room ,
C Programming for engineers Teaching assistant: Ben Sandbank Home page:
ICE1341 Programming Languages Spring 2005 Lecture #14 Lecture #14 In-Young Ko iko.AT. icu.ac.kr iko.AT. icu.ac.kr Information and Communications University.
ADA Langage Report Ligia Nitu. Introduction Ada is the most extensive and expensive computer language ever developed. Ada is the most extensive and expensive.
Introduction to C Programming CE Lecture 1 Introduction to C.
1 ) Definition 2) Note on structured and modular programming, and information hiding 3) Example imperative languages 4) Features of imperative languages.
FORTRAN. The History of Fortran Before Fortran there was a dark computing abyss Before Fortran there was a dark computing abyss Assembly was the only.
Introduction to Fortran Fortran Evolution Drawbacks of FORTRAN 77 Fortran 90 New features Advantages of Additions.
Program Design and Development
1 Key Concepts:  Why C?  Life Cycle Of a C program,  What is a computer program?  A program statement?  Basic parts of a C program,  Printf() function?
Fortran 9x HTML version. New F90 features Free source form Modules User-defined data types and operators Generic user-defined procedures Interface blocks.
Chapter 3 Program translation1 Chapt. 3 Language Translation Syntax and Semantics Translation phases Formal translation models.
FORTRAN.  Fortran or FORmula TRANslation was developed in the 1950's by IBM as an alternative to Assembly Language. First successfull high level language.
CSCE 330 Project Algol 68 Joe PuzioWael AL-Fayez Gaurav ShahRonak Patel.
1 CS 415: Programming Languages Fortran Aaron Bloomfield Fall 2005.
Chapter 5 Application Software.
Presented by: Destry Diefenbach
Introduction to Computer Programming itc-314
The ALGOL Family Mason Vines CPSC425. Overview ALGOL 58 ALGOL 60 ALGOL 68 Success and Failure of ALGOL.
Fortran 1957 – 2008 : A Language with a Past, Present and Future Peter Crouch Chairman Fortran Specialist Group
Programming Design Ku-Yaw Chang Assistant Professor, Department of Computer Science and Information Engineering Da-Yeh University.
Introduction to FORTRAN
Basics of “C” Programming
CSC141 Introduction to Computer Programming
Using KDF9 Fortran to implement APT IV in Miles Ellis.
April 14, ICE 1341 – Programming Languages (Lecture #13) In-Young Ko Programming Languages (ICE 1341) Lecture #13 Programming Languages (ICE 1341)
Microprocessor Fundamentals Week 1 Mount Druitt College of TAFE Dept. Electrical Engineering 2008.
C++ Programming Language Lecture 1 Introduction By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Computational Methods of Scientific Programming Lecturers Thomas A Herring, Room A, Chris Hill, Room ,
Scientific Computing Division A tutorial Introduction to Fortran Siddhartha Ghosh Consulting Services Group.
FORTRAN FORmula TRANslator -Anand Trivedi. HISTORY  Designed and written from scratch in by an IBM team lead by John W. Backus as the first.
Lecture #5 Introduction to C++
© Paradigm Publishing Inc. 5-1 Chapter 5 Application Software.
‘Tirgul’ # 3 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #3.
Prepared by: Elsy Torres Shajida Berry Siobhan Westby.
Tolo-e-aftab higher education 1 th semester Bcs 1/2/1392 MINISTRY OF HIGHER EDUCATION.
C++ Programming Basic Learning Prepared By The Smartpath Information systems
The Evolution of Programming Languages Day 2 Lecturer: Xiao Jia The Evolution of PLs1.
CLASSIC COMPUTING TECHNOLOGY Programming Paradigms.
I Power Higher Computing Software Development High Level Language Constructs.
CS105 Computer Programming PYTHON (based on CS 11 Python track: lecture 1, CALTECH)
FORTRAN History. FORTRAN - Interesting Facts n FORTRAN is the oldest Language actively in use today. n FORTRAN is still used for new software development.
Threaded Programming Lecture 2: Introduction to OpenMP.
 In the java programming language, a keyword is one of 50 reserved words which have a predefined meaning in the language; because of this,
Fortran MATTHEW CARSON. History of FORTRAN FORTRAN ; First High Level Language FORTRAN I 1957; First Compiled Language FORTRAN II ; Independent.
MT311 Java Application Development and Programming Languages Li Tak Sing ( 李德成 )
Introduction to Computer Programming itc-314 Lecture 04.
Ada, Scheme, R Emory Wingard. Ada History Department of Defense in search of high level language around Requirements drafted for the language.
The Standards Hiatus by Lawrie Schonfelder & Miles Ellis Why wasn’t the standard sequence F66, F77, F88 What caused the the extra 3 years?
1 Types of Programming Language (1) Three types of programming languages 1.Machine languages Strings of numbers giving machine specific instructions Example:
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Introduction Dr. Entesar Ganash. 1.Fundamentals of computer programming Central Processor Unit Main Memory Backing Store OutputInput 1.1 What is a computer?
小型系統 心情 vs. 古典樂 心情 vs. 古典樂 浪漫求籤系統 美食導航系統 季潔亭雅鈺熒岱芸 美食導航系統 楊氏音樂模擬大會考人瑋 若維 芷萱 伽倩 楊氏音樂模擬大會考 麥當勞熱量計算系統 火星文困擾你嗎 ? 火星文困擾你嗎 ? 歌詞知多少 - 挑戰你的腦容量英琪 日馨 青雪 鈺娟.
Quiz 1 A sample quiz 1 is linked to the grading page on the course web site. Everything up to and including this Friday’s lecture except that conditionals.
Computer Programming - Key Concepts and Terms Computer Program – A computer program is a set of instructions for computer, arranged in logical order, using.
CSE3302 Programming Languages (notes continued)
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
MatLab Programming By Kishan Kathiriya.
Introduction to FORTRAN
Introduction to Computer Programming
Presentation transcript:

Fortran - A Language with a Past and a Future Peter Crouch Chairman BCS Fortran Specialist Group BCS Wolverhampton Branch meeting 16th March 2005

A Brief Career History Industrial research chemist. I started programming early personal computers in BASIC and Pascal in the late 1970s. I began to to use FORTRAN in the early 1980s Software developer for Computer Aided Design and Manufacturing systems using Fortran and C Civil servant in the Department for Work and Pensions. 1993I joined the British Computer Society I was Chairman of the BCS Birmingham Branch I am Chairman of the BCS Fortran Specialist Group

Presentation Outline  The Ancient History of FORTRAN to 1980  Modern Developments in Fortran to 2004  The BCS Fortran Specialist Group to 2005  Application Areas for Fortran programs

Computing in the early 1950s Computer memories of the order of 15 KB, often measured in bits. CPU programmed using octal code, later machine code and assembler. 1954John Backus and his team at IBM began work on what became the first high level programming language, FORTRAN. 1957First version of FORTRAN, for the IBM 704, released. It was an immediate success.

Ancient History Links Pioneers of the 'Fortran' Programming Language New York Times Steve Lohr June 13, 2001 (HTML) Fortran Automated Coding System For the IBM 704 John Backus, et al. Oct The very first Fortran manual (PDF)

The Next Steps 1958FORTRAN II 1958FORTRAN III - Not released to public 1961FORTRAN IV - A "cleaned up" version of FORTRAN II 1962First ASA FORTRAN standardization committee meets

Fortran Standards Revision History 1962First ASA (later ANSI) standardization committee meets 1966Publication of ANSI standard X ANSI standard X (FORTRAN 66) - first programming language standard 1978Publication of ANSI X ANSI X (FORTRAN 77) - also published as ISO 1539:1980 – relatively minor revision 1991ISO/IEC 1539:1991 (Fortran 90) - major revision 1997ISO/IEC :1997 (Fortran 95) - minor revision 2004ISO/IEC :2004 (Fortran 2003) - major revision

What FORTRAN 77 did for us FORTRAN 77 added: DO loops with a decreasing control variable (index) Block if statements IF... THEN... ELSE... ENDIF. Before F77 there were only IF... GOTO statements Pre-test of DO loops. Before F77 DO loops were always executed at least once, so you had to add an IF... GOTO before the loop if you wanted the expected behaviour. CHARACTER data type. Before F77 characters were always stored inside INTEGER variables. Apostrophe delimited character string constants. Main program termination without a STOP statement.

DIMENSION A(11) READ A 2 DO 3,8,11 J=1,11 3 I=11-J Y=SQRT(ABS(A(I+1)))+5*A(I+1)**3 IF (400>=Y) 8,4 4 PRINT I,999. GOTO 2 8 PRINT I,Y 11 STOP Example code - FORTRAN 0

C THE TPK ALGORITHM C FORTRAN I STYLE FUNF(T)=SQRTF(ABSF(T))+5.0*T**3 DIMENSION A(11) 1 FORMAT(6F12.4) READ 1,A DO 10 J=1,11 I=11-J Y=FUNF(A(I+1)) IF(400.0-Y)4,8,8 4 PRINT 5,I 5 FORMAT(I10,10H TOO LARGE) GOTO 10 8 PRINT 9,I,Y 9 FORMAT(I10,F12.7) 10 CONTINUE STOP Example code - FORTRAN I

C THE TPK ALGORITHM C FORTRAN IV STYLE DIMENSION A(11) FUN(T) = SQRT(ABS(T)) + 5.)*T**3 READ (5,1) A 1 FORMAT(5F10.2) DO 10 J = 1, 11 I = 11 - J Y = FUN(A(I+1)) IF (400.0-Y) 4, 8, 8 4 WRITE (6,5) I 5 FORMAT(I10, 10H TOO LARGE) GO TO 10 8 WRITE(6,9) I, Y FORMAT(I10, F12.6) 10 CONTINUE STOP END Example code - FORTRAN IV or 66

PROGRAM TPK C THE TPK ALGORITHM C FORTRAN 77 STYLE REAL A(0:10) READ (5,*) A DO 10 I = 10, 0, -1 Y = FUN(A(I)) IF (Y.LT. 400) THEN WRITE(6,9) I,Y 9 FORMAT(I10. F12.6) ELSE WRITE (6,5) I 5 FORMAT(I10,' TOO LARGE') ENDIF 10 CONTINUE END REAL FUNCTION FUN(T) REAL T FUN = SQRT(ABS(T)) + 5.0*T**3 END Example code - FORTRAN 77

Fortran 90 added: Free format source code form (column independent) Modern control structures (CASE & DO WHILE) Records/structures - called "Derived Data Types" Powerful array notation (array sections, array operators, etc.) Dynamic memory allocation Operator overloading Keyword argument passing The INTENT (in, out, inout) procedure argument attribute Control of numeric precision and range Modules - packages containing variable and code Modern Developments

PROGRAM TPK ! The TPK Algorithm ! Fortran 90 style IMPLICIT NONE INTEGER :: I REAL :: Y REAL, DIMENSION(0:10) :: A READ (*,*) A DO I = 10, 0, -1 ! Backwards Y = FUN(A(I)) IF ( Y < ) THEN WRITE(*,*) I, Y ELSE WRITE(*,*) I, ' Too large' END IF END DO CONTAINS ! Local function FUNCTION FUN(T) REAL :: FUN REAL, INTENT(IN) :: T FUN = SQRT(ABS(T)) + 5.0*T**3 END FUNCTION FUN END PROGRAM TPK Example code - Fortran 90 & 95

module Functions public :: fun contains function fun(t) result (r) real, intent(in) :: t real :: r r = sqrt(abs(t)) + 5.0*t**3 end function fun end module Functions Example code - F (1)

program TPK ! The TPK Algorithm ! F style use Functions integer :: i real :: y real, dimension(0:10) :: a read *, a do i = 10, 0, -1 ! Backwards y = fun(a(i)) if ( y < ) then print *, i, y else print *, i, " Too large" end if end do end program TPK Example code - F (2)

International Standard, ISO/IEC :2004, published in November 2004 Fortran 2003 notably added: Support for object orientated programming Interoperability with C Overview of new features in Fortran 2003 by John Reid Convenor, ISO Fortran Working Group (PDF) Fortran 2003

The Group was founded in 1970 with the objectives of: forming a focus in the United Kingdom for work concerned with establishing and maintaining FORTRAN standards. working in association with national and international standardisation bodies The convenor (chairman) of the ISO WG5 committee responsible for the Fortran language is a member of the FSG committee as is the convenor of the BSI (UK) Fortran panel. For the last few years the Fortran SG has provided financial support to enable several UK representatives to attend ISO meetings abroad. Fortran Standardisation ActivitiesFortran Standardisation Activities - FSG web site BCS Fortran Specialist Group

In October 2002 the Group held a meeting to discuss some of the remaining features to go into Fortran Of the seven proposals put forward five were taken forward to the BSI Fortran Panel. At the next WG5 meeting, where three of the five UK representatives were funded by the BCS through the FSG, ten of the eleven UK proposed technical changes were accepted, as were thirteen of the UK’s fifteen minor technical changes and seventeen of the twenty- two minor edits put forward by the UK. “One could argue that the BCS funds were well invested.” Fortran SG continued

Fortran users include the UK Meteorological Office, the Ministry of Defence, the Atomic Weapons Establishment, oil companies, the aircraft and automobile industries, engineering consultancies, universities, research laboratories and other scientific institutions. It is also used in the finance industry, which does complex calculations to analyse stock market and financial market data. Examples from FSG presentations Application Areas for Fortran programs

Thank you, any questions?