Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Professional_English_for_information_systems.pdf
Скачиваний:
55
Добавлен:
14.05.2015
Размер:
3.81 Mб
Скачать

Task 3. Read the text below to check your answers to Task 1 and 2.

Comparing Programming Languages

Technical factors

Application requirements: Languages tend to be suited to particular applications. For example, C is widely used for operating system development (UNIX, Linux, and Windows, to name a few), while Perl is useful for text processing, HTTP server CGI programs, and system administration work.

Platform requirements: The platform on which an application is to be executed may have a limited choice of language implementations available.

Development time: How quickly could the application be developed in a particular language? (The technical side of this question depends on how understandable the language is, and how easily an application's design can be coded in it; the political side of this question depends on the knowledge of programming staff, training available, or whether programmers with experience in the language can be hired.)

Portability: Execution platforms for programs tend to change over time (e.g., from DOS to Windows to Windows NT, just to trace the ''Wintel'' lineage). Is the language closely tied to a particular machine, or is the language clearly portable (e.g., Java's clear independence of any

particular machine's quirks or implementation)?

Political factors

Popularity of the language: Popularity, in terms of the size of the marketplace and number of programmers using a language, clearly affects the choice of a language. The choice of a well-known, popular language, such as C, or a lesser-used language, such as Ada, will influence hiring and/or training requirements.

Economic: Which language tends to be cheapest or most cost effective in previous, similar development efforts? Is the language wellsupported by commercial organizations or freeware development communities (i.e., will the language's compilers and development environment be available for the foreseeable future)?

Language vs Compiler for the Language

There are sometimes distinctions between a language and the compilers that implement the language. One compiler made by a given

27

vendor may add extra features to the language they implement that another vendor may not include.

The quality of a language's compilers can also influence the decision. If a language's existing compilers do not produce correctly executing or highly-optimized machine code, the language may not be a good choice for a development effort. We also need to consider what new language features the compiler supports. For example, in C++, the compiler should support the latest additions to the Standard Template Library.

Tool Support and Documentation

Tool support tends to be a critical factor in a language choice. Development tools that help organize a project, quickly locate on-line documentation and examples, and debug programs are extremely useful in the coding and debugging stages of programs. Also, tools that generate code from high-level specifications (such as user interface development or lexical analyzer tools) and tools that verify code or find common mistakes are useful, in our experience. Editors that can parse and format the language syntax are useful as well. Good tools and documentation seem to be driven by popularity, e.g. Visual C++ has good tool support and documentation.

Criteria for Comparing Programming Languages

We have previously discussed many criteria important to comparing or evaluating general purpose programming languages. We will summarize them here:

Simplicity of language constructs, which relates to ease of programming

Readability, which relates to maintainability, an important factor as many programs greatly outlive their expected lifetimes (witness the Y2K software crisis)

How tuned a language's features are for a particular application (e.g., Perl relates well to text processing)

Compilation speed

Runtime efficiency, in terms of speed and machine resources

Library support

Debugging help

Language safety

Longevity of language and compiler tools

Portability across platforms and machine architectures

The criteria are equally important because they affect the development cost and effort required over the lifetime of the program, and also affect the usefulness and quality of the developed program.

28

Our experience indicates that these criteria (or the subset which is applicable) also apply to other components that support program development, including object-oriented class libraries and designs for abstract data types. The use of appropriate, useful components external to the language, and the use of designs that result in higher quality, more generalized code improve readability, maintainability, and quality of the product while improving development speed.

Task 4. Look back at the text to find out if the following statements are true (T) or false (F) according to the information in the text.

1.Each language should be suitable for a particular application.

2.Perl relates well to operating system development.

3.Execution platforms for programs are changing all the time.

4.The more popular the language is the more often it is used.

5.You can have problems if a compiler and a language were made by different vendors.

6.When choosing a compiler, it is important to know what new language features it supports.

7.It is not necessary for C++ to support the latest additions to the standard template library.

8.Tool support is the most crucial factor in a language choice.

9.Editors that can parse and format the language syntax are the most useful in our experience.

10.The criteria are fairly even since they affect the development cost and effort required over the lifetime of the program, and also affect the usefulness and quality of the developed program.

Task 5. Choose the correct word to complete each sentence. You may have to change some words slightly.

1.application, apply, applicable, applied, applicability

a)It is known that some translators have tried to __________

commercial PC-based software to their needs.

b)Languages tend to be suited to particular __________.

c)The new approach had wide __________ to all sorts of different problems.

d)The process is based on some very basic scientific principles

__________ in an exceptionally innovative way.

29

2.requirement, require, required, requisite

a)The criteria are equally important because they affect the development cost and effort __________ over the lifetime of the program.

b)Hardware control always __________ some kind of specialpurpose system.

c)Each independent computer in the system can have software specifically tailored to fit its user’s exact needs and

__________.

d)She lacks the __________ experience for the job

3.develop, development, developer, developmental

a)If a language's existing compilers do not produce correctly executing or highly-optimized machine code, the language may not be a good choice for a __________ effort.

b)The company __________ and markets new software.

c)How quickly could the application be __________ in a particular language?

d)The iterative approach allows __________ to progressively identify components and decide which ones to develop, which ones to reuse, and which ones to buy.

e)The product is still at a __________ stage.

4.technical, technically, technician, technicality, technique

a)A knowledge engineer is a computer scientist who knows how to design and implement programs that incorporate artificial intelligence __________.

b)In those days recording sound was not __________

possible.

c)He described the process in broad terms without going into the __________.

d)We offer free __________ support for those buying our software.

e)It is true that robots can cause unemployment by replacing human workers but robots also create jobs: robot

__________, salesmen, engineers, programmers and supervisors.

30

Language work

Compound Nouns

The language of computing in English contains an ever-increasing number of compound nouns, that is, a group of two or more nouns which act as a single noun. For example:

language syntax machine architecture development cost program development

The first noun is like an adjective – it tells us what the second noun is made of, what it is for, or what it is part of. For example:

machine architecture – the architecture of a machine

development cost – cost of developing

Often the first words end in – ing. The –ing form usually says what function the following noun has. For example:

operating system programming languages programming staff debugging help

Sometimes there are more than two nouns together. For example:

user interface development system administration work freeware development

community

Sometimes a noun+noun is not appropriate and instead we use noun+’s+noun. For example:

a language’s feature a language’s compiler

an application’s design a machine’s quirks

It is important to be able to recognize how such compounds are formed in order to understand what they mean.

The exact relationship between the words depends on the particular expression, but all these expressions have one thing in common: the last word in chain says what the thing is, while the preceding word or group of words describes the thing. So when we read compound nouns, we have to start with the last word and work backwards.

31

Task 6. Use one word from each box to make a compound noun.

Box A

 

 

 

 

Box B

 

 

 

machine

 

application’s

 

design

requirement

analyzer

program

tool

 

support

 

implementation

development

language’s

 

tools

effort

support

language

 

application

 

features

development

Task 7. What do you call...?

1.The act or process of translating text from one natural language into another using a computer.

2.The boundary between a user and a computer or program.

3.A book of instructions for the user that explains how to use a computer or a computer program.

4.A computer system that allows useful information to be recorded, stored and used by managers without the help of a computer specialist.

5.The process of designing, installing and perhaps testing a computer system.

6.A language that can be used for writing instructions that a computer can process and execute.

7.Rules followed by computer programmers who are working in a team so that their work can be understood by other programmers.

8.A person who writes applications program.

9.A programming technique that allows the creation of ‘objects’ which can be reused, or used as the foundation of others.

10.The study of computers and their use.

Task 8. Michael Warren is at an interview for a job in a film production company. He has been asked why he wants the job, and this is part of his answer. Suggest compound nouns to fill in the spaces in this text. One of the parts of the compound is given in brackets. Choose the other part from the –ing forms below.

advertising

answering

breathing

cutting

losing

mailing

making

recording

selling

turning

waiting

Just after I left university, I met an old friend who offered me the opportunity to join his company, Phono, selling a new type of mobile

32

phone. I organized a(n) (1) advertising campaign (campaign) and set up a(n) (2) ………. (list) with the names and addresses of people who might be interested in it. The main (3) ………. (point) of the phone was that it included a(n) (4) ………. (machine), and was the only one of its kind on the market at the time. At first the demand was so great that there was a(n) (5)

……….(list) of people wanting to buy one. Unfortunately, a year later Sonex brought out its new video phone, and this was the (6) ………. (point) for Phono. Demand for our phone plummeted. We did a lot of (7) ……….

(cost) to try to save money, but it wasn’t long before we knew we were fighting a(n) (8) ………. (battle) and decided to close the company. I’ve been out of work for a few months now. But this has given me the (9)

……….(space) to decide what I want to do next. When I worked for Phono, I helped produce a(n) (10) ………(video) to advertise the product. I enjoyed this a lot, and that’s why I’d now like to get into (11) ……….

(film).

Speaking

Task 9. Read the statements below. Which do you agree with more? Why?

‘Learning a programming language is like learning any natural language. The only difference is that you are communicating with a machine instead of another person.’

‘I get annoyed when I hear people comparing programming languages with natural languages. They have almost nothing in common.’

Writing

Task 10. Write an essay (120 – 180 words) summarizing all your ideas in Task 9.

33

Unit 5. Structured Programming

Warm-up

Task 1. Answer the

following questions:

1.What is structured programming?

2.What structured programming languages do you know?

3.What are the main rules of structured programming?

Reading

Task 2. Read the text below to find answers to the following questions:

1.What was the approach to writing software in the early days of programming?

2.Where does the term ‘spaghetti code’ come from?

3.What are the five tenets of structured programming?

4.What is the role of the control structure?

5.What control structures are necessary to write programs?

6.What does the sequence refer to?

7.What levels of selection does C++ provide?

8.What loop structures does C++ provide?

9.What control structures are the most flexible and powerful for problem-solving?

10.What control structures are the most common in C++ code?

Structured Programming

Up to this point in your study of computer science and C++, you have created programs which used only sequential execution. So far function main() consisted of a sequence of lines which are executed once, line-by-

34

line. As we add the power of loops and selection, we need to use these tools in a disciplined manner.

In the early days of programming (1960's), the approach to writing software was relatively primitive and ineffective. Much of the code was written with goto statements which transferred program control to another part of the code. Tracing this type of code was an exercise in jumping from one spot to another, leaving behind a trail of lines similar to spaghetti. The term "spaghetti code" comes from trying to trace code linked together with goto statements.

The research of Bohm and Jacopini has led to the rules of structured programming. Here are five tenets of structured programming.

a.No goto statements are to be used in writing code.

b.All programs can be written in terms of three control structures: sequence, selection, and iteration.

c.Each control structure has one entrance point and one exit point. We will sometimes allow for multiple exit points from a control structure using the break statement.

d.Control structures may be stacked (sequenced) one after the other.

e.Control structures may be nested inside other control structures.

The control structures of C++ encourage structured programming. Staying within the guidelines of structured programming has led to great productivity gains in the field of software engineering.

There are only three necessary control structures needed to write programs: sequence, selection, and iteration.

Sequence refers to the line-by-line execution as used in your programs so far. The program enters the sequence, does each step, and exits the sequence.

Selection is the control structure allowing choice among different directions. C++ provides different levels of selection:

One-way selection with an if structure

Two-way selection with an if-else structure

Multiple selection with a switch structure.

Iteration refers to looping. C++ provides three loop structures:

while loops

do-while loops

for loops

Of the seven control structures, the if-else and while loop are the most flexible and powerful for problem-solving. The other control

35

structures have their place, but if-else and while are the most common control structures used in C++ code.

Task 3. Complete the following text using the list of words below:

Back in the 1960s, computer programs were difficult to read. The 1) …… languages (FORTRAN and often even assembly languages) frequently used if and 2) …… statements, resulting in "spaghetti-like" 3) …… . Programs were essentially networks of statements, where the execution could 4) …… freely from one statement to another, using 5) …… or unconditional jump statements. This situation led the entire industry to use flow charts. The flow chart was a 6) …… which represented the program as a directed graph that connected 7) …… sections of the code. The execution could branch at the if statements, or could jump to any other 8) …… of the code, using the goto 9) ……. Flow charts helped programmers understand the 10) …… of their code.

statement

 

primitive

 

 

code

diagram

logic

conditional

 

sequential

 

 

goto

section

jump

Language work

 

 

 

 

 

 

 

 

 

 

 

 

Relative clauses with a participle

 

 

 

 

 

 

 

Relative

clauses

with a

 

 

A clause is a part of a

participle are often used in technical

 

sentence. Some clauses begin with

descriptions. They allow you to

 

ing or –ed.

 

 

provide a lot of information about a

 

 

Study

these examples from

noun using as few words as

 

the text:

 

 

possible.

 

 

 

 

 

1.

Function main() consisted

We often use –ing and –ed

 

 

of a sequence of lines

clauses after there is/ there are. For

 

2.

The most common control

example:

 

 

 

 

 

 

structures used in C++ code

There

are

only

three

 

3. A control structure using the

necessary control structures needed

 

 

break statement

 

to write programs:

sequence,

 

The

control

structure

allowing

selection, and iteration.

 

 

 

choice among different directions

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

36

 

 

 

We can use the passive

We can use the active

participle as in examples 3 and 4.

participle as in examples 1 and 2.

3. A control structure using the

1. Function main() consisted of

break statement

 

a sequence of lines

= structure which uses the break

= function which is consisted

statement

 

 

2. The most common control

4. The control structure allowing

structures used in C++ code

choice

among

different

= control structures which are

directions

 

 

used

= structure which allows choice

 

among different

directions

 

 

 

 

 

Task 4. Complete these definitions with the correct participle of the verb given in brackets.

1.Software engineering is the processes (involve) in writing computer software such as designing, coding and testing programs.

2.Programming standards are rules (follow) by computer programmers who are working in a team so that their work can be understood by other programmers.

3.Iteration is the process of a computer (execute) a command or statement again and again until a result is obtained.

4.GOTO instruction is a high-level programming language instruction (cause) a jump to another place in the program.

5.While loop is a block of statements in a computer programming language (execute) again and again if a test at the start of the block shows that the execution should happen.

6.Control structure is one or more statements in a programming language (control) how the program is executed.

Task 5. Link these statements using a relative clause with a participle.

1.The software company sent me a brochure. The brochure contained all the information I needed.

2.High-level languages are more efficient. High-level languages allow the programmer to express with one statement what would take several commands in machine language.

3.External documentation is the printed set of instructions. They describe how to operate the program.

37

4.Most computer installations have a standard language. It is used by their programmers.

5.In addition to the traditional languages, organizations may choose to generate programs. The organizations use data base management systems. The programs use the query language of the DBMS.

6.Many organizations have a substantial number of computers in operation. Computers are located far apart.

7.Expert systems are software packages. They are designed to assist humans in situations in which an expert in a specific area is required.

8.Expert systems will be able to infer answers from sets of data. They emulate humanlike thought processes.

9.Graphics was an esoteric specialty. It involves expensive display hardware, substantial computer resources, and idiosyncratic software.

10.The letters are stored in a subdirectory. This subdirectory is called ‘correspondence’ on the C drive.

Translation

Task 6. Match the terms with the correct definition or explanation:

a.

Structured

1.

a set of unambiguous rules to solve a

 

programming

 

problem in a definite number of steps

b.

Implementation

2.

code that contains a combination of a

 

programming language such as C, and natural

c.

Algorithm

 

language such as English

3.

a directory that is inside another directory

d.

Description

4.

the act of starting to use a plan or computer

 

system

e.

Pseudocode

5.

a general term for computer programming

 

instructions

f.

Subdirectory

6.

a statement that explains what something

 

looks like, or how it behaves

g.

Computer

7.

a method of designing a computer program

 

so that it is easy to understand, change and

 

program

 

maintain

h.

Code

8.

a set of instructions that can be understood by

 

a computer and perform a certain task or

 

 

 

function

 

 

 

38

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]