




Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Assignment; Class: STRUCTURE PROGRAMMING LANGS; Subject: Computer Science; University: University of Pittsburgh; Term: Fall 2003;
Typology: Assignments
1 / 8
This page cannot be seen from the preview
Don't miss anything!





CS 1621 Assignment 1 Shyamal Chandra, Roseana Diaz, Pavel Hoppe September 15, 2003
SIMULA was the first programming language to introduce object-oriented programming. It utilized data abstraction by the use of classes and objects unlike the other languages of the 1960’s. In this paper, we present the history, strengths, weaknesses, and usage of SIMULA, which is credited for the structure of various high- level languages widely in use today. History of SIMULA
Kristen Nygaard and Ole-Johan Dahl from the University of Oslo and the Norwegian Computing Center first defined SIMULA in 1967, which is usually referred to SIMULA 67. There is also another language called SIMULA I that is the ancestor of SIMULA 67. In 1986, SIMULA was clarified and extended to become an ISO standard. SIMULA I was a language designed for discrete event simulation [10]. SIMULA I was an extension of an older programming language, Algol 60 [9]. It retained all of Algol’s syntax and static type system, which includes the basic control structures (i.e. loop, conditional, switch), and basic data types (integer, real, etc.). SIMULA I was expanded and reimplemented as a full-scale general purpose programming language that became known as SIMULA 67 [9]. It added the concept of objects, which is why to most people, SIMULA 67 is known as the first object-oriented programming language. SIMULA 67 introduced most of the key concepts of object-oriented programming, like having objects and classes, subclasses (inheritance), virtual procedures, and safe referencing. This was unique compared to ALGOL 60 and FORTRAN, the current languages at the time, because they used dimensioned variables [7]. As a result of using classes and referenced variables, the code was less error-prone,
a platform to design Smalltalk. They notably extended the use of object-oriented programming by using SIMULA to integrate graphical user interfaces and interactive programming [7]. The structure of object-oriented programming in SIMULA has inspired many people to learn and strengthened the concept of object-oriented programming such as the designer and original implementer of C++, Bjarne Stroustrup. Bjarne Stroustrup started his development of C++ by bringing the key concepts of SIMULA into the C programming language. SIMULA has also inspired much of the work in the area of program component reuse and the construction of program libraries. [6] SIMULA is rarely used today because there are newer languages with improved concepts of object-oriented programming. SIMULA is now mostly used for educational purposes in a select few universities across the world. There is even an Association of SIMULA Users that arranges annual conferences, workshops, and publishes periodic newsletters [10]. Strengths of SIMULA
Overall, SIMULA’s most obvious strength was being the first object-oriented programming language. The following example of SIMULA code shows how the concept of object-oriented programming is used in the language:
class order (number); begin integer number of units; integer number; arival data; real processing time end; The class declaration defines a program pattern, and objects conforming to that pattern are said to belong to the same class. Consequently, this piece of code will allow
you to declare multiple objects. Furthermore, SIMULA also allows the programmer to put subclasses into the program, thus making inheritance possible. This concept alone made SIMULA one of the most powerful programming languages of its time.
Additionally, SIMULA is a general purpose programming language with built-in simulation capability and extended ALGOL by using processes for quasi-parallel operations [11]. The main characteristic of SIMULA is that it easily structured towards numerous specialized problem areas. For example, SIMULA used a new storage allocation scheme for its time based on a two-dimensional free area list, which is similar to today’s garbage collection [8].
Another advantage of SIMULA is the multiple assignment statement. This feature could be very useful in many situations and it also enables programmer to save a lot of typing time as shown in the following example [2]:
SUM:= MAX:= ININT; is equivalent to: MAX := ININT; SUM := MAX; Another benefit of SIMULA is that the language is not case sensitive, except when any characters are in double quotes. This could help avoid mistyping in many situations but could also be considered a weakness because of reduced readability. SIMULA is more secure compared to other programming languages. For example, it is impossible in SIMULA to access variables outside of a class and there is no
Another syntactical weakness of SIMULA is that every comment needs to end with a semicolon. In order to start a comment, you need the actual word “comment” or an exclamation mark to start writing but it has to end with a semicolon. If the semicolon was not placed, then the code until the next semicolon is regarded as a comment and ignored. As seen through this paper, SIMULA has made many advances in object-oriented programming and simulation accuracy but also has shown many weaknesses that eventually reduced its usage tremendously around the world. Even then, SIMULA introduced new concepts that influenced the design of the most widely-used programming languages today.
Sources Cited: