Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ENGLISH FOR IT. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
Unit 2. Programming Languages
21
UNIT 2
PROGRAMMING LANGUAGES
LEAD-IN
1. Follow the link https://www.youtube.com/watch?v=mhpslN-OD_o to watch “The History of Computing” and learn about the evolution of compu­ting technologies. While watching the video pick out the main steps in the history of programming languages.
2. Watch the video again and fill the table, saying who the following programming languages were developed by and when.
Scientists or
Companies
Contributions
Period
1 The algorithm for the analytical machine
2
The Assembly language
3 The first programming language to run through a
compiler
4 Fortran
5
Algol 6 COBOL
7 Lisp
8 BASIC
9 Pascal
10 C 11 SQL 12 Matlab
13 Objective C
14 C++
15 Perl
16 Haskell
Unit 2. Programming Languages
22
Scientists or
Companies
Contributions
Period
17 Python
18 Visual Basic
19 R
20 Java
21 PHP
22 Ruby
23 JavaScript
24 C# 25 Scala
27 Groovy
26 Go
27 Swift
USEFUL VOCABULARY
3. To be able to discuss the main features, peculiarities and types of pro­gramming languages we need to study the following terminology and profes­sional vocabulary.
Abstraction (n) [æb'strækʃ(ə)n] – the process of formulating generalized
ideas or concepts by extracting common qualities from specific examples.
Artificial language (n) [ˌɑːtɪfɪʃəl ˈlæŋɡwɪdʒ] – an invented language, espe- cially one intended as an international medium of communication or for use with computers.
Assembly language [əˈsembli ˌlæŋɡwɪdʒ] – the language used to write a computer program before it is turned into machine code.
Code (n) [kəud] a language used to program (= give instructions to) computers.
Communication (n) [kəˌmjuːnɪ'keɪʃ(ə)n] the imparting or exchanging of information.
Compiled languages [kəmˌpaɪld ˈlæŋɡwɪdʒ] are translated to the target machine’s native language by a program called a compiler.
Compiler (n) [kəm'paɪlə] a computer program that changes instructions into machine language.
Computation (n) [ˌkɔmpju'teɪʃ(ə)n] the action of mathematical cal- culation.
Unit 2. Programming Languages
23
Computer system [kəm'pjuːtə ˌsɪstəm] – a complete computer including the
operating system (= main software) and equipment that makes it work.
Concept (n) ['kɔnsept] general idea or notion that corresponds to some class of entities and that consists of the characteristic or essential features of the class Context (n) ['kɔntekst] is the conditions and circumstances that are relevant to an event, fact, etc.
Convergence (n) [kən'vɜːʤ(ə)n(t)s] combining of different forms of elec- tronic technology, such as data processing and word processing converging into information processing.
Declarative programming [dɪ'klærətɪv ˌprəʊɡræmɪŋ] – a programming par- adigm – a style of building the structure and elements of computer programs – that expresses the logic of a computation without describing its control flow.
Functional programming ['fʌŋkʃ(ə)n(ə)l ˌprəʊɡræmɪŋ] – a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of impera­tive statements which update the running state of the program.
Generic programming [ʤɪ'netɪk ˌprəʊɡræmɪŋ] – a style of computer pro- gramming in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters.
High-level language [ˌhaɪlevəl ˈlæŋ.ɡwɪdʒ] – a language for writing com- puter programs that looks more like human language than computer language and is therefore easier to understand.
High-performance (adj) [ˌhaɪpəˈfɔːməns] an ability to operate to a high standard and at high speed.
Imperative language [ɪm'perətɪv ˌlæŋɡwɪdʒ] – the oldest computer pro- gramming paradigm. This paradigm presents as a central characteristic the defi­nition of sequences of instructions representing modifications in the states of a computer system.
Interpreted languages [ɪnˌtɜːprɪt ˈlæŋɡwɪdʒ] – programming languages for which instructions are not precompiled for the target machine in a machine-read­able form. Rather, these languages are assisted by an interpreter.
Interpreter (n) [ɪn'tɜːprɪtə] a program that translates high-level, human- readable source code into low-level, machine-readable target code line by line while the interpreted program is being executed.
Unit 2. Programming Languages
24
Just-in-time [ˌdʒʌstɪnˈtaɪm] compiled (or JIT-compiled) languages lan- guages that are quickly compiled when programs written in them need to be run (usually with very little optimization), offering a balance between performance and portability.
Low-level language [ˌləʊlevəl ˈlæŋɡwɪdʒ] – a language for writing com- puter programs that is similar to machine code (= a set of numbers that gives instructions to a computer).
Machine code [məˈʃiːn ˌkəʊd] – the basic language used to give instructions to a computer, consisting only of numbers.
Modification (n) [ˌmɔdɪfɪ'keɪʃ(ə)n] – a small change or adjustment.
Novice (n) ['nɔvɪs] – a person who is new to or inexperienced in a certain
task, situation, etc.
Object-oriented programming [ˌɒbdʒɪktˈɔːrientɪd ˌprəʊɡræmɪŋ] (OOP) – a computer programming model that organizes software design around data, or objects, rather than functions and logic. An object can be defined as a data field that has unique attributes and behavior.
Predictability (n) [prɪˌdɪktəˈbɪləti] the state of knowing what something is like, when something will happen, etc.
Procedure (n) [prə'siːʤə] (a type of routine or subroutine) simply contains a series of computational steps to be carried out. Any given procedure might be called at any point during a program's execution, including by other proce­dures or itself.
Procedural programming [prə'siːʤ(ə)r(ə)l ˌprəʊɡræmɪŋ] – a program- ming paradigm, derived from imperative programming, based on the concept of the procedure call.
Programming language (n) [ˌprəʊɡræmɪŋ ˈlæŋɡwɪdʒ] – a simple language system designed to facilitate the writing of computer programs.
Programming paradigm ['pærədaɪm] – a methodology or way of program- ming that a programming language supports.
Semantics (n) – the study of the relationships between signs and symbols and what they represent.
Specification (n) [ˌspesəfɪ'keɪʃ(ə)n] a detailed description of the criteria for the constituents, construction, performance, etc., of a material, apparatus or of the standard of workmanship required in its manufacture.
Structured programming ['strʌkʧəd ˌprəʊɡræmɪŋ] (sometimes known as modular programming) – a programming paradigm that facilitates the creation of
Unit 2. Programming Languages
25
programs with readable code and reusable components. All modern programming languages support structured programming, but the mechanisms of support, like the syntax of the programming languages, varies.
Syntax (n) [ˈsɪntaks] a systematic statement of the rules governing the
grammatical arrangement of words and morphemes in a language.
Trade-off (n) ['treɪdɔf] a balance achieved between two desirable but in-
compatible features; a compromise.
Type system [taɪp 'sɪstəm] a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer program, such as variables, expressions, functions, or modules. A type system dictates the oper­ations that can be performed on a term.
Versatile (adj.) ['vɜːsətaɪl] means being able to change easily from one ac- tivity to another or able to be used for many different purposes.
4. Think about the Russian equivalents of the terms given above.
5. Match the following definitions with the terms.
DEFINITIONS
TERMS
1
The process of formulating generalized ideas or con­cepts by extracting common qualities from specific examples.
compiled languages
2
A general idea or notion that corresponds to some class of entities and that consists of the characteristic or essential features of the class.
type system 3
A person who is new to or inexperienced in a certain task, situation, etc.
novice
4
A complete computer including the operating system (= main software) and equipment that makes it work.
computer system
5
Languages that are translated to the target machine’s
native language by a program called a compiler.
interpreter
6
A program that translates high-level, human-readable source code into low-level, machine-readable target code line by line while the interpreted program is be­ing executed.
abstraction
7
A language used to program (= give instructions to) computers.
concept
Unit 2. Programming Languages
26
DEFINITIONS
TERMS
8
Are languages that are quickly compiled when pro­grams written in them need to be run (usually with very little optimization), offering a balance between perfor­mance and portability.
trade-off
9
Able to operate to a high standard and at high speed.
structured program­ming
10
A balance achieved between two desirable but incom­patible features; a compromise.
imperative language
11
A logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols).
code
12
A methodology or way of programming that a pro­gramming language supports.
just-in-time com­piled (or JIT-com­piled) languages
13
A programming paradigm where programs are con­structed by applying and composing functions.
functional program­ming
14
The oldest computer programming paradigm. This par­adigm presents as a central characteristic the definition of sequences of instructions representing modifications in the states of a computer system.
high-performance
15
Modular programming.
programming para­digm
6. Match the words in A with their synonyms in B.
A B
1
artificial
a
compromise
2
paradigm
b
merging
3
trade-off
c
multipurpose
4
versatile
d
beginner
5
predictability
e
probability
6
novice
f
calculation
7
convergence
g
theory
8
abstraction
h
generalization
9
concept
I
non-natural
10
computation
j
pattern
7. Read the definition and write the term.
Unit 2. Programming Languages
27
DEFINITIONS
TERMS
1
The basic language used to give instructions to a
computer, consisting only of numbers (7, 4 letters).
_ _ _ _ _ _ _
_ _ _ _
2
The language used to write a computer program be-
fore it is turned into machine code (8).
_ _ _ _ _ _ _ _
3
A language for writing computer programs that looks
more like human language than computer language
and is therefore easier to understand (10).
_ _ _ _ _ _ _ _ _ _
4
A computer programming model that organizes soft­ware design around data, or objects, rather than func-
tions and logic (15).
_ _ _ _ _ _ _ _ _ _ _ _
_ _ _
5
A language for writing computer programs that is
similar to machine code (9).
_ _ _ _ _ _ _ _ _
6
A style of computer programming in which algo-
rithms are written in terms of types to-be-specified-
later that are then instantiated when needed for spe-
cific types provided as parameters (7).
_ _ _ _ _ _ _
7
A computer program that changes instructions into
machine language (8).
_ _ _ _ _ _ _ _
8
Exchanging of information (13).
_ _ _ _ _ _ _ _ _ _ _ _
_
9
A small change or adjustment (12).
_ _ _ _ _ _ _ _ _ _ _ _
10
A simple language system designed to facilitate the
writing of computer programs (11, 8).
_ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _
11
A systematic statement of the rules governing the
grammatical arrangement of words and morphemes
in a language (6).
_ _ _ _ _ _
12
The study of the relationships between signs and
symbols and what they represent (9).
_ _ _ _ _ _ _ _ _
13
Programming languages for which instructions are
not precompiled for the target machine in a machine-
readable form. (11).
_ _ _ _ _ _ _ _ _ _ _
14
A programming paradigm that expresses the logic of
a computation without describing its control flow
(11).
_ _ _ _ _ _ _ _ _ _ _
15
A programming paradigm, derived from imperative
programming, based on the concept of the procedure
call (10).
_ _ _ _ _ _ _ _ _ _
Unit 2. Programming Languages
28
USEFUL GRAMMAR
Grammar to study: Past tenses (active and passive voices)
8. Turn the following sentences from Active into Passive or from Passive
into Active.
1. Later on when computer started growing, more and more programs were
written day-by-day.
2. Therefore, we developed various mnemonics for different instructions.
3. Herman Hollerith realized that he could encode information on punch cards when he observed that railroad train conductors would encode the appear­ance of the ticket holders on the train tickets using the position of punched holes on the tickets. In the 1940s the first recognizably modern, electrically powered computers were created.
4. The limited speed and memory capacity forced programmers to write hand tuned assembly language programs.
5. They invented most of the major language paradigms now in use by that period.
6. While Dennis Ritchie and Ken Thompson were developing C, an early systems programming language, at Bell Labs between 1969 and 1973, Colmerauer, Roussel, and Kowalski designed Prolog in 1972 by, the first logic programming language.
7. Some languages did not include GOTO, which forced structured program­ming on the programmer.
8. The United States government standardized Ada, a systems programming language intended for use by defense contractors in 1980s.
9. In Japan and elsewhere, they spent vast sums investigating so-called "fifth generation" languages that incorporated logic programming constructs.
10. Modula, Ada, and ML all had developed notable module systems by the
end of 1980s.
11. Module systems were often wedded to generic programming constructs.
12. The RISC movement in computer architecture postulated that they should
design hardware for compilers rather than for human assembly programmers.
13. The RISC movement sparked greater interest in compilation technology
for high-level languages.
Unit 2. Programming Languages
29
14. Ada Lovelace created the algorithm for Charles Babbage’s Analytical en-
gine in 1883.
15. While Alonzo Church and Alan Turing were specializing the computer
codes for the first time, Church expressed lambda calculus in a formulaic way.
9. Complete the sentences with the appropriate active or passive forms
of the verbs in brackets.
It was in 1949 that the first-ever high-level programming language for elec­tronic computers (1) _____ (create). John Mauchly (2) _____ (propose) Short Code, originally known as brief code and it (3) _____ (implement) by William F Schmidt. Shortcode was the first functional programming language. It (4) ____ (represent) in a mathematical expression that was human-understandable. But there was a big disadvantage. A program had to (5) ____ (translate) into the ma­chine code every time it (6) ____ (run). This was a much slower process. By 1952, Autocode (7) ____ (develop) by Alick Glennie. It (8) ____ (be) the first
compiled language that directly converts into machine code using a compiler. It’s
the second version, Mark 1 auto code, (9) ____ (develop) two years later by R.A. Brooker for Mark 1.
Autocode was better than its predecessors, but it still (10) ____ (fail) to gain popularity. FORTRAN was the first popular programming language that (11) ____ (develop) by 1955 by a team in IBM. It is the oldest high-level pro­gramming language that is still in use.
There (12) ____ (be) still time for high-level languages such as Java, C, and C++ to come out. But their starting point (13) ____ (develop) in 1958 by a scien­tific committee for research and scientific uses. They (14) ____ (design) a lan­guage known as Algol. Java and many other high-level languages (15) ____ (base) somehow on Algol [3].
SPECIALIST READING
10. Read the article and fill the gaps with the following phrases:
a. and thus, is more suitable for programs like device drivers
b. especially if the compiler is effective at optimizing
c. they allow information to be exchanged easily regardless of their physical location
d. and some have an informal but de-facto standard not maintained by any standards organization
Unit 2. Programming Languages
30
e. As a trade-off one generally needs to sacrifice some degree of control over f. These sequential set of grammatical rules is known as programming lan-
guage.
g. Depending on the type of project, there are many factors that have to be
considered when choosing a language.
h. interpreted languages are usually much slower than an equivalent com-
piled program.
i. In other words, a programming language’s level refers to how similar the
language is to a computer’s native language.
j. that typically requires instructions in its native language, machine code,
AN OVERVIEW OF PROGRAMS
AND PROGRAMMING LANGUAGES
Computers are some of the most versatile tools that we have available. They are capable of performing stunning feats of computation, (1) _____, they simplify many every-day tasks, and they allow us to automate many processes that would be tedious or boring to perform otherwise. However, computers are not “intelli-
gent” as we are. They have to be told in no uncertain terms exactly what they're
supposed to do, and their native languages are quite unlike anything we speak. Thus, there's a formidable language barrier between a person who wishes a com­puter to do something, and the computer (2) _____ to do anything.
To be operated a computer or a system should be given a set of rules and instruction to perform some task. These sat of rules and instructions are able to control the working of computer or any automated and/or manipulated ma­chine. (3) _____ In other words, ‘A programming language is a vocabulary and a set of grammatical rules for instructing a computer system to perform any spe­cific task’. Hence we can say that a programming language plays a very important role to control and operating a computer system.
In order to better communicate to our computers what exactly it is we want them to do, we’ve developed a wide range of programming languages to make the communication process easier. (4) _____. Here is a list of some of the more noteworthy ones.
1. Compiled, interpreted or JIT-compiled
Compiled languages are translated to the target machine’s native language by a program called a compiler. This can result in very fast code, (5) _____,