Object-oriented languages and applications
Computer historians believe that SIMULA (SIMUlation LAnguage) was the first computer language to work with objects, classes, inheritance, and methods. SIMULA was developed in 1962 by two Norwegian computer scientists for the purpose of programming simulations and models. SIMULA laid the foundation for the object-oriented paradigm, which was later incorporated into other programming languages, such as Eiffel, Smalltalk, C++, and Java.
The second major development in object-oriented languages came in 1972 when Alan Kaye began work on the Dynabook project at the Xerox Palo Alto Research Center (PARC). Dynabook was a prototype for a notebook-sized personal computer, intended to handle all the information needs of adults and children. Kaye developed a programming language called Smalltalk for the Dynabook that could be easily used to create programs based on real-world objects. Dynabook never became a commercial product, but Smalltalk survived and is still in use today. Smalltalk is regarded as a classic object-oriented language, which encourages programmers to take a “pure” OO approach to the programming process.
As the object-oriented paradigm gained popularity, several existing programming languages were modified to allow programmers to work with objects, classes, inheritance, and polymorphism. The concept for the Ada programming language originated in 1978 at the U. S. Department of Defense. The first versions of Ada were procedural, but in 1995, the language was modified to incorporate object-oriented features. A similar transformation took place with the C language in 1983, except that the object-oriented version earned a new name — C++. Hybrid languages, such as Ada95, C++, Visual Basic, and C#, give programmers the option of using procedural and object-oriented techniques.
Java is one of the newest additions to the collection of object-oriented languages. Originally planned as a programming language for consumer electronics, such as interactive cable television boxes, Java evolved into an object-oriented programming platform for developing Web applications. Java was officially launched by Sun Microsystems in 1995 and has many of the characteristics of C++, from which it derives much of its syntax. Like C++, Java can also be used for procedural programming, so it is sometimes classified as a hybrid language.
The object-oriented paradigm can be applied to a wide range of programming problems. Basically, if you can envision a problem as a set of objects that pass messages back and forth, the problem is suitable for the OO approach.
The object-oriented paradigm is cognitively similar to the way human beings perceive the real world. Using the object-oriented approach, programmers might be able to visualize the solutions to problems more easily. Facets of the object-oriented paradigm can also increase a programmer’s efficiency because encapsulation allows objects to be adapted and reused in a variety of different programs. Encapsulationrefers to the process of hiding the internal details of objects and their methods. After an object is coded, it becomes a “black box,” which essentially hides its details from other objects and allows the data to be accessed using methods.
A potential disadvantage of object-oriented programs is runtime efficiency. Object-oriented programs tend to require more memory and processing resources than procedural programs. Programmers, software engineers, and system analysts can work together to weigh the tradeoffs between the OO approach and runtime efficiency.
Comprehension check. Match the beginnings of the sentences in the first column with the endings in the second column.
Beginnings | Endings |
1. SIMULA laid foundations for 2. Smalltalk is regarded as 3. Java evolved into an object-oriented programming platform for 4. The object-oriented paradigm is cognitively similar to 5. Encapsulation allows objects 6. Programmers, software engineers and system analysts can work together | a) to be adapted and reused in a variety of different programs. b) a classic object-oriented language. c) to weigh the tradeoffs between the OO approach and runtime efficiency. d) the way human beings perceive the real world. e) the object-oriented paradigm. f) developing Web applications. |
Vocabulary practice
1. Put the letters in the followingwords into the correct order.
migradap papharoc quchetine fifecynice angatdavidse tulenpasacion
2. Fill in the blanks choosing from the variants given.
1. The process of hiding internal details of objects and their methods is called … .
a) encapsulation c) inheritance
b) polymorphism d) object-oriented
2. Smalltalk, Eiffel, Java, and … are all programming languages that support the object-oriented paradigm.
a) C b) C++ c) Fortran d) Ada
3. … is NOT a typical feature of an object-oriented language.
a) polymorphism c) classes
b) inheritance d) relationships
4. Object-oriented programs tend to require … memory and processing resources than procedural programs.
a) less b) more
5. Hybrid languages, such as Ada95, Visual Basic, and …, give programmers the option of using procedural and object-oriented techniques.
a) C b) C++ c) C#
6. If you can envision a problem as a set of … that pass messages back and forth, the problem is suitable for the OO approach.
a) classes b) objects
3. Match the beginnings and the endings of the sentences, and then put the sentences into the correct order.( According to the text.)
1. SIMULA laid the foundation 2. The second major development of object-oriented languages 3. Computer historians believe that SIMULA was 4. Dynabook never became a commercial product, but 5. Smalltalk is regarded as a classic object-oriented language 6. Dynabook was a prototype | a)the first computer language to work with objects, classes, inheritance, and methods. b)which encourages programmers to take a “pure” OO approach to the programming process. c)Smalltalk survived and is still in use today. d)for a notebook-sized personal computer. e)came in 1972. f) for the object-oriented paradigm, which was later incorporated into other programming languages. |
4. Fill in the gaps in the text.
The OO paradigm allows programmers to hide the internal details of objects and their methods. This process, called _1_, allows objects to be easily reused, modified, and repurposed.
Computer historians believe _2_ was the first programming language to work with objects, classes, inheritance, and methods. It is a language called _3_. Recently many procedural languages have been given OO capabilities. _4_,which originated at the Department of Defense, was originally a procedural language, but now includes OO features. The C language was modified into a language called_5_,and again modified into C#. Recent versions of _6_ Basic also offer programmers the option of working within the object-oriented paradigm.
Speaking. Discuss the following questions.
1. How did object-oriented languages originate?
2. Which object-oriented languages are popular today?
3. What kinds of applications are suitable for object-oriented languages?
4. What are the advantages and disadvantages of the OO paradigm?
Critical thinking. Read the article and express your opinion on the problem.
Human Factors
Today’s programming languages provide programmers with sophisticated tools for coding and testing software. Why then, are computers and computer software so often characterized as being difficult to use?
Programmer and user interface designer Alan Cooper offers an explanation and solution in his book “The Inmates Are Running the Asylum”. According to Cooper, programmers don’t intentionally create bad technology products. “Programmers aren’t evil. They work hard to make their software easy to use. Unfortunately, their frame of reference is themselves, so they only make it easy to use for other software engineers, not for normal human beings”. Cooper suggests that it is possible to create intuitive, easy-to-use technology products by devoting more time to developing detailed product specifications with the assistance of an “interactive designer” who is familiar with the psychology and habits of a typical computer user.
Clare-Marie Karat, a psychologist and IBM researcher developed
The Computer User’s Bill of Rights
1. The user is always right. If there is a problem with the use of the system, the
system is the problem, not the user.
2. The user has the right to easily install software and hardware systems.
3. The user has the right to a system that performs exactly as promised.
4. The user has the right to easy-to-use instructions for understanding and utilizing a system to achieve desired goals.
5. The user has the right to be in control of the system and to be able to get the
system to respond to a request for attention.
6. The user has the right to a system that provides clear, understandable, and
accurate information regarding the task it is performing and the progress toward completion.
7. The user has the right to be clearly informed about all system requirements for successfully using software or hardware.
8. The user has the right to know the limits of the system’s capabilities.
9. The user has the right to communicate with the technology provider and receive a thoughtful and helpful response when raising concerns.
10. The user should be the master of software and hardware technology, not vice versa. Products should be natural and intuitive to use.
Karat agrees with Cooper’s comments about programmers being unable to understand the people who use their software. She says, “The profile of the people who use systems has changed, while the system, and the culture in which they have developed, have not adjusted … The engineers and computer scientists who design hardware and software know little about the needs and frustrations of consumers.”
Some efforts to simplify operating system software have created another band of disgruntled users who complain that important features are now “hidden” because of feedback from novice testers who considered such features too advanced or confusing. Some controls, such as those for setting up networks, are not easy to understand, but could be crucial for a successful installation. Hiding those controls because they might confuse beginners has only caused advanced users to become frustrated.
Who is right? Can technology be simplified, yet remain powerful enough to accomplish complex tasks? A branch of ergonomics called Human Factors, or Human-Computer Interaction (HCI), focuses on factors that make computers easy or difficult to use.
What do you think?
1. Can you think of a specific instance when you have become frustrated with a software user interface?
2. Is it possible to make computer software significantly easier to use?
3. Would you agree that programmers do not understand the viewpoint of a typical computer user and consequently produce bad software?
Projects. Choose and perform one of the projects given.
1. Programming computer games is a complex task. A central program ties together numerous aspects of the game, such as characters, scenery, buildings, monsters, weapons, treasure, food, and sounds. To appreciate the complexity of game programming, play a computer game. Make a list of the objects you encounter during the first five minutes of the game. You might have to stop and restart the game several times to complete your list. Don’t forget to include the title screen, introductory music, video, and so on. (Don’t include the time it takes you to watch the video in your five-minute viewing period.) Expand your list of objects by adding descriptions of what happens to the objects. Take a screenshot of the game during your observation period. Submit your list and screenshot. Indicate the name of the game you observed on the screenshot. Follow your instructor’s guidelines for printed or electronic documents.
2. The computer game industry is hot and employs professionals from a wide variety of career fields, including programmers, artists, musicians, narrators, writers, producers, accountants, photographers, videographers, historians, military science, and physicists. Think about your career field. How would a professional in your career field fit into a computer game development team? What aspect of the game would they work on? Jot down your thoughts, and then go online and search for information about computer game development. What can you learn about jobs in the computer game industry for people with skills in your chosen career field? Submit your findings in a format of your choice. You can write a one-page summary or get creative and work up a brochure or 30-second radio spot.
Final test. Do the tasks in the following test.
1. Which of the following types of editors provide tools to create programs by pointing and clicking …?
a) programming editor b) VDE c) GUI d) control editor
2. Most programming languages include control structures known as … .
a) sequence b) selection c) repetition d) all of the above
3. During … execution, the computer performs each instruction in the order that appears.
4. A class is a template for a group of objects with similar characteristics. (True/False)
5. The … paradigm is based on the idea that the solution for the problem can be visualized in terms of objects that interact with each other.
6. OO programmers often use … diagrams to plan the classes for a program.
7. A(n) … is a graphical representation of the way a computer should progress from one instruction to the next when it performs a task.
8. A(n) … is a set of steps for carrying out a task that can be written down and implemented.
9. The set of superclasses and subclasses that are related to each other is referred to as a class … .
10. In an OO program, objects send and receive … to initiate actions, which the programmer defines by creating a(n) … .
11. A(n) … control structure tells a computer what to do based on whether a condition is true or false.
12. A(n) … is a segment of code that defines an action.
13. The process of passing certain characteristics from a superclass to a subclass is referred to as … .
14. A(n) … attribute is an attribute that is available for use by any routine in a program.
15. Which of the following is NOT an example of a repetition command?
a) FOR…NEXT b) WHILE…..WHEND c) DO…..WHILE d) IF….THEN
16. In a problem statement, a(n) … is something that you accept as true in order to proceed with program planning.
17. A program written in a(n) … language typically consists of self-contained instructions in a sequence that indicates how a task is to be performed or a problem is to be solved.
a) object-oriented b) procedural c) event-driven d) functional
18. Smalltalk, Eiffel, Java, C++ are all programming languages that support the object-oriented paradigm. (True/False)
19. FORTRAN is considered a good choice for object-oriented programming. (True/False)
20. Which of the following terms refer to the way a computer programmer conceptualizes and structures the tasks that a computer performs …?
a) programming paradigm c) object-oriented design
b) algorithm development d) logical architecture
Учебное издание
Методическое пособие
по совершенствованию навыков чтения и говорения
на английском языке для студентов ФКСиС и ФИТиУ
Часть 2
Составители: Наталия Григорьевна. Касперович,
Елена Васильевна Барановская,
Наталья Ивановна Дубовец,
Елена Дмитриевна Лысенок,
Раиса Тихоновна Максимчук,
Ольга Владимировна Пинчук,
Людмила Евгеньевна Синкевич,
Ирина Григорьевна Субботкина,
Наталья Григорьевна Украинец,
Елена Николаевна Щекотович.
Корректор Е.Н. Батурчик
Подписано в печать Формат 60х84 1/16
Бумага Печать Усл.печ.л.
Уч. – изд. л. Тираж экз. Заказ
Издатель и полиграфическое исполнение: Учреждение образования
“Белорусский государственный университет информатики и радиоэлектроники”
Лицензия на осуществление издательской деятельности № 02330/0056964 от 01.04.2004
Лицензия на осуществление полиграфической деятельности № 02330/0133108 от 03.04.2004
220013, Минск, П.Бровки, 6