Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programming.doc
Скачиваний:
21
Добавлен:
25.04.2019
Размер:
1.14 Mб
Скачать

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 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.

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

    1. It is known that some translators have tried to __________ commercial PC-based software to their needs.

    2. Languages tend to be suited to particular __________.

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

    4. The process is based on some very basic scientific principles __________ in an exceptionally innovative way.

  1. requirement, require, required, requisite

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

    2. Hardware control always __________ some kind of special-purpose system.

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

    4. She lacks the __________ experience for the job

  1. develop, development, developer, developmental

    1. 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.

    2. The company __________ and markets new software.

    3. How quickly could the application be __________ in a particular language?

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

    5. The product is still at a __________ stage.

  1. technical, technically, technician, technicality, technique

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

    2. In those days recording sound was not __________ possible.

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

    4. We offer free __________ support for those buying our software.

    5. It is true that robots can cause unemployment by replacing human workers but robots also create jobs: robot __________, salesmen, engineers, programmers and supervisors.

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.

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

Box A

Box B

machine application’s analyzer program tool development language’s language application

design requirement support implementation tools effort support 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 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).

Listening

Task 9. Listen to the song and write down the names of all programming languages you hear about.

  1. ___________________

  1. ___________________

  2. ___________________

  3. ___________________

  4. ___________________

Task 10. Listen to the song again and fill in the gaps below.

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