Programming Languages (Prelim)

Ace your homework & exams now with Quizwiz!

Imperative Languages

1 out of the 4 Language Categories: Most of the popular languages of the past 50 years have been designed around the Von Neumann Architecture, these languages are called _____. Some of its characteristics are: · Based on commands that update variables in storage · Provides statements such as assignment statements, which explicitly change the state of the memory of the computer · Examples: Algol, Cobol, PL1, Ada, C, Modula-3

Functional Language

1 out of the 4 Language Categories: · Expresses computations as the evaluation of mathematical functions · Treats values as single entities · Values are never modified. · Their computations are performed largely by applying functions to values. · Examples: Lisp, Haskell, ML, Miranda, APL

Logic Language

1 out of the 4 Language Categories: · Expresses computations in exclusively in terms of mathematical logic · Focuses on predicate logic, on which the basic concept is a relation · Useful for expressing problems where it is not obvious what the functions should be · Example: Prolog

Writability

1 out of the 4 Language Evaluation Criteria: How easily a language can be used to create programs.

Reliability

1 out of the 4 Language Evaluation Criteria: If a program performs to its specifications under all conditions.

Readability

1 out of the 4 Language Evaluation Criteria: The ease with which programs can be read or understood.

Cost

1 out of the 4 Language Evaluation Criteria: [No Definition]

C#

1 out of the 5 Object-Oriented Languages: · Announced by Microsoft in 2000 and released in January 2002 · Based on C++ and Java but includes some ideas from Delphi and Visual Basic · Design team is headed by Anders Hejlsberg (designed Turbo Pascal and Delphi). · Its purpose is to provide a language for component-based software development, specifically for such development in the .NET Framework.

Smalltalk

1 out of the 5 Object-Oriented Languages: · Designed by Alan Kay and his team in the early 1970s · The first programming language that fully supported object-oriented programming · Its syntax makes use of messages, rather than arithmetic and logical expressions and conventional control statements.

Visual Basic

1 out of the 5 Object-Oriented Languages: · Designed by Bjarne Stroustrup in the 1980s as an evolution of the C programming language · Event-driven programming language and Integrated Development Environment (IDE) from Microsoft · Engineered for productively building type-safe and object-oriented applications · Enables developers to target Windows, Web, and mobile devices · The drag-and-drop design for creating the UI is derived from a prototype form generator developed by Alan Cooper and his company called Tripod.

C++

1 out of the 5 Object-Oriented Languages: · Designed by Bjarne Stroustrup in the 1980s as an evolution of the C programming language · Has both functions and methods which enable it to support both procedural and object-oriented programming · Operators and methods can be overloaded. · Supports multiple inheritance · Includes exception handling (hardware-detectable exceptions cannot be handled)

o Everything is modeled as an object. o Computation is performed by message passing. o Objects communicate with one another via message passing. o Every object is an instance of a class where the class represents a group of similar objects. o Inheritance defines the relationships between classes.

5 Fundamentals of OOP characterized by Alan Kay.

· Smalltalk · C++ · Visual Basic · Java · C#

5 Object-Oriented Languages

· Scientific Applications · Business Applications · Artificial Intelligence · Systems Programming · Web Software

5 Programming Domains

o Has 2 Types of Data Structures o Functional Programming Style o Uniform Representation of Data and Code o Reliance on Recursion o Garbage Collection

5 Significant Features of LISP.

· Increased capacity to express ideas · Improved background for choosing appropriate language · Increased ability to learn new languages · Better understanding of the significance of implementation · Better use of languages that are already known · Overall advancement of computing

6 Reasons for Studying Concepts of Programming Languages

· Plankalkül · Pseudocodes · IBM 704 and Fortran · COBOL · LISP · Prolog

7 Examples of Early Languages

Static Scoping (Lexical Scoping)

A convention used with many programming languages that set the scope (range of functionality) of a variable so that it may only be referenced from within the block of code in which it is defined.

· ALGOL · BASIC · PL/I · Pascal · C · Ada

ALGOL-Based Languages

Dynamic Scoping

Creates variables that can be called from outside the block of code in which they are defined.

o Computers had small memories and were slow and relatively unreliable. o The primary use of computers was for scientific computations. o There were no existing efficient and effective way to program computers. o Because of the high cost of computers compared to the cost of programmers, the speed of the generated object code was the primary goal of the first Fortran compilers.

Fortran's environment was developed based on these 4 ideas.

Programming Language

It is used for communicating instructions to a computer. It is designed to facilitate certain operations such as numerical computation, text manipulation, or input/output.

Conference on Data System Languages

Meaning of CODASYL

Von Neumann Architecture

Most of the popular languages of the past 50 years have been designed around this prevalent computer architecture.

John Von Neumann

One of the originators of the Von Neumann Architecture.

Alan Kay

The 5 fundamentals of OOP was characterized by this person.

Programming Environment

· A collection of tools used in software development · May consist of a file system, a text editor, a linker, and a compiler · May also include a large collection of integrated tools · Examples: UNIX, JBuilder, Microsoft Visual Studio .NET, NetBeans

Prolog

· Derived from Programming Logic · Designed by Alain Colmerauer, Phillippe Roussel, and Robert Kowalski in the early 1970s · Programs consist of collections of statements. · The primary components are: o A method for specifying predicate calculus propositions o An implementation of a restricted form of resolution

Common LISP

1 of the 2 Dialects of LISP: · Developed in the early 1980s · Designed by combining the features of several dialects of LISP · Allows both static scoping and dynamic scoping

Scheme

1 of the 2 Dialects of LISP: · Emerged in the mid-1970s · Invented by Guy Lewis Steele Jr. and Gerald Jay Sussman · Characterized by its small size, its treatment of functions as first-class entities, and its exclusive use of static scoping

Lists

1 of the 2 Types of Data Structures in LISP: Can be lists of atoms, lists, or any combination of the two.

Atoms

1 of the 2 Types of Data Structures in LISP: Similar to identifiers, but can also be numeric constants.

Computer Architecture

1 out of the 2 Influences on Language Design: Most of the popular languages of the past 50 years have been designed around the prevalent computer architecture, called the von Neumann architecture, after one of its originators, John von Neumann (pronounced "von Noyman"). These languages are called imperative languages.

Programming Design Methodologies

1 out of the 2 Influences on Language Design: The evolutionary steps in software development methodologies led to new language constructs to support them. The most familiar of these are procedural and object-oriented programming.

Pure Intrepretation

1 out of the 3 Implementation Methods: Programs are interpreted by another program called interpreter, without translation

Compilation

1 out of the 3 Implementation Methods: Programs are translated into machine language.

Hybrid Implementation Systems

1 out of the 3 Implementation Methods: The combination of compilation and interpretation.

Objective-C

1 out of the 3 Languages Related to C++: - Designed by Brad Cox and Tom Love in the early 1980s - The only one to use the Smalltalk syntax among the programming languages that were created by adding support for object-oriented programming to an imperative language

Go

1 out of the 3 Languages Related to C++: - Designed by Rob Pike, Ken Thompson, and Robert Griesemer at Google in 2007 - Created to address the slowness of compilation of large C++ programs at Google - Borrowed some of its syntax and constructs from C - Some of the new features are: · Data declarations are syntactically reversed from the other C-based languages. · Variables precede the type name. · Variable declarations can be given a type by inference if the variable is given an initial value. · Functions can return multiple values.

Delphi

1 out of the 3 Languages Related to C++: - First appeared in 1995 - Designed by Anders Hejlsberg (Turbo Pascal developer) - Created by adding object-oriented support to Pascal - Less complex than C++ since it does not allow user-defined operator overloading, generic subprograms, and parameterized classes

Overall Simplicity

1 out of the 4 Characteristics that Affect Readability: A language with a large number of basic constructs is more difficult to learn than one with a smaller number.

Syntax Design

1 out of the 4 Characteristics that Affect Readability: Categorizes: o Special Words o Form and Meaning

Orthogonality

1 out of the 4 Characteristics that Affect Readability: Means that a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language

Data Types

1 out of the 4 Characteristics that Affect Readability: [No Definition]

Readability and Writability

1 out of the 4 Characteristics that Affect Reliability: A mix of the 2 out of the 4 Language Evaluation Criteria.

Aliasing

1 out of the 4 Characteristics that Affect Reliability: Having two or more distinct names that can be used to access the same memory cell

Type Checking

1 out of the 4 Characteristics that Affect Reliability: Testing for type errors in a given program, either by the compiler or during program execution

Exception Handling

1 out of the 4 Characteristics that Affect Reliability: The ability of a program to intercept run-time errors (as well as other unusual conditions detectable by the program), take corrective measures, and then continue

Support for Abstraction

1 out of the 4 Characteristics that Affect Writability: Abstraction is the ability to define and then use complicated structures or operations in ways that allow many of the details to be ignored.

Expressivity

1 out of the 4 Characteristics that Affect Writability: Means that a language has relatively convenient ways of specifying computation.

Data

1 out of the 4 Characteristics that Affect Writability: Under Support for Abstraction: o A binary tree that stores integer data in its nodes can be implemented using an abstraction of a tree node in the form of a simple class with two pointers and an integer

Process

1 out of the 4 Characteristics that Affect Writability: Under Support for Abstraction: o The use of a subprogram to implement a sort algorithm that is required several times in a program

Simplicity and Orthogonality

1 out of the 4 Characteristics that Affect Writability: [No Definition]

IBM 704 and Fortran

2 out of the 7 Examples of Early Languages: The capabilities of _____ prompted the development of _____ (derived from Formula Transition)

· Imperative Language · Functional Language · Logic Language · Object-Oriented Language

4 Language Categories

Java

1 out of the 5 Object-Oriented Languages: · Initially developed in the mid of 1990s to address the need for a programming language for consumer electronic devices · Became prevalent in the online world with the emergence of the World Wide Web · Increased the level of interactions between the user and the application · Can bring interest to Web pages through applications that can give the user immediate feedback and accept user input continuously through mouse or keyboard entries · Some features of this language are: o It is a platform-independent language. o It enhances interaction of clients (browsers) on the World Wide Web. o It moves processing to the client and off the server. o It is used to develop scalable Internet applications. o Its specification is publicly available. o It enables new forms of software distribution and upgrades.

ALGOL

1 out of the 6 ALGOL-Based Languages · Derived from Algorithmic Language · Originally developed in the mid-1950s · Designed specifically for programming scientific computations · Has 3 Major Specifications · Characteristics: Block Structure, Parameter Passing, Structured Control Statements, Recursion, Dynamic Arrays, Reserved Words, User-defined Data Types.

PL/I

1 out of the 6 ALGOL-Based Languages · Derived from Programming Language I · Introduced by IBM in the 1960s · Represents the first large-scale attempt to design a language that could be used for various application areas · Included what were then considered the best parts of ALGOL 60 (recursion and block structure), Fortran IV (separate compilation with communication through global data, and COBOL 60 (data structures, I/O, report-generating facilities) · The first programming language to have the following facilities: o Programs were allowed to create concurrently executing subprograms. o It was possible to detect and handle 23 different types of exceptions or runtimeerrors. o Subprograms were allowed to be used recursively, but the capability could be disabled, allowing more efficient linkage for non-recursive subprograms. o Pointers were included as data type. o Cross-sections of arrays could be referenced. For example, the third row of a matrix could be referenced as if it were a single-dimensioned array.

Pascal

1 out of the 6 ALGOL-Based Languages · Designed in 1970 by Niklaus Wirth · Named after Blaise Pascal · Has been most useful as a teaching tool · Used as a beginner's programming language · By the mid-1970s, it was the most widely used language for instruction.

Ada

1 out of the 6 ALGOL-Based Languages · Developed for the US Department of Defense in the 1970s · Derived from Augusta Ada Byron · Improves code safety and maintainability by using the compiler to find errors in favor of runtime errors · 4 Major Contributions: o Packages in this language provide the means for encapsulating data objects, specifications for data types, and procedures. o It includes extensive facilities for exception handling. o Program units can be generic here. o It provides for concurrent execution of special program units, named tasks, using rendezvous mechanism.

C

1 out of the 6 ALGOL-Based Languages · Originally developed by Dennis Ritchie in 1972 · Designed for systems programming · Implemented in the UNIX operating system · Has adequate control statements and data-structuring facilities to allow its use in many application areas · Has a rich set of operators that provide a high degree of expressiveness

BASIC

1 out of the 6 ALGOL-Based Languages · Stands for Beginner's All Purpose Symbolic Instruction Code · Originally designed as a teaching language by John Kemeny and Thomas Kurtz in the early 1960s · Described as easy to learn, especially for the non-science oriented individuals · Can be implemented on computers with small memory capacity · First widely used language that was used through terminals connected to a remote computer

Fortran

1 out of the 7 Examples of Early Languages: It is a general-purpose imperative programming language created for numeric computation and scientific computing.

Pseudocodes

1 out of the 7 Examples of Early Languages: · Have their own interpretative system for execution · Were implemented through compiling routines · Notable examples: Short Code, Speedcoding, The UNIVAC "Compiling" System

Plankalkül

1 out of the 7 Examples of Early Languages: · Means program calculus · Developed by Konrad Zuse · Includes mathematical expressions showing the relationships between program variables

COBOL

1 out of the 7 Examples of Early Languages: · Stands for Common Business Oriented Language · Developed by CODASYL Committee (Conference on Data System Languages) in 1960 · Designed for developing business, typically file-oriented applications · Not designed for writing systems programs · Characteristics: o Self-documenting o Non-proprietary o Maintainable

LISP

1 out of the 7 Examples of Early Languages: · Stands for List Processor · Developed by John McCarthy in the 1950s · First functional programming language that was intended to provide language features for list processing · Used in applications for artificial intelligence · 2 Dialects of this Language: Scheme and Common _____


Related study sets

Medical Terminology: Chapter 3 Exercise 3-8

View Set

CIS4360 Intro to Computer Security: Midterm 1

View Set

Simulated Practice Exam and Complete Practice Exam

View Set

PrepU chpt 27 Disorders of Cardiac function, and heart failure and circulatory shock

View Set

N149 - Advanced Placement Exam 1 Study Questions (14th edition Med-Surg Ch. 1, 4, 13, 23)

View Set