Examen 2 Flashcards
Reasons for studying Concepts of Programming Languages
- Increased ability to express ideas.
- Improved background for choosing appropiate languages.
- Increased ability to learn new languages.
- Better use of languages that are already known.
- Overall advancement of computing.
Programming Domains
- Scientific applications (Fortran)
- Business applications (COBOL)
- Artificial Intelligence (LISP)
- Systems Programming (C)
- Web Software (HTML, PHP, JavaScript, Java)
Language Evaluation Criteria
- Readability - the ease with which programs can be read and understood.
- Writeability - the ease with which a language can be used to create programs.
- Reliability - conformance to specifications.
- Cost - the ultimate total cost.
Languages Categories
- Imperative - algorithm is specified in great detail, and specific order of execution of instructions or statements must be included. (C, Java, Perl, JavaScript, Visual BASIC .NET, C++)
- Functional - main means of making computations is by applying functions to given parameters. (LISP, Scheme, ML, F#)
- Logic - rule-based; no particular order. (Prolog)
- Markup/programming hybrid - markup languages extended to support some programming. Used to specify layout of information on web documents. (HTML, XML, JSTL, XSLT)
Implementation Methods
- Compilation - programs are translated into machine language. Very fast program execution once translation is complete. Large commercial applications.
- Pure Interpretation - programs are interpreted by another program known as an interpreter. Easy implementation of many source-level debugging operations. Small programs or when efficiency is not an issue.
- Hybrid Implementation Systems - a compromise between compilers and pure interpreters. Faster than pure interpretation. Small and medium systems when efficiency is not the first concern.
Programming Environments
A collection of tools used in software development. May consist of only a file system, a text editor, a linker, and a compiler. Or may include a large collection of integrated tools. (Visual Studio Code, Eclipse, Sublime, Xcode, Android Studios, PyCharm)
1843: The beginning of all
Ada Lovelace (often cited as first programmer) wrote the instructions for the analytical engine. Considered the first published algorithm specifically tailored for implementations on a computer.
1945: Zuse’s Plankalkul
First high-level programming language designed for a computer.
1949: Assembly Language
A type of low-level language. It mainly consist of instructions that only machines could understand.
1957: FORTRAN
FORTRAN is often credited with being the first compiled high-level language.
1958: ALGOL 60
ALGOL 60 was the result of efforts to design a universal language. It strongly influenced subsequent programming languages.
1959: COBOL
It has had little effect on the design of subsequent languages. Few have attempted to design a new language for business applications.
COBOL historical background - based on FLOW-MATIC.
Design goals: must look like simple English, easy to use, broaden the base of computer users. First language required by DoD.
1960: LISP
Interest in AI appeared in the mid-50’s. Investigation concluded that some methods must be developed to allow computers to process symbolic data in linked lists. Most computation was on numeric data in arrays.
Functional Programming: LISP - AI research needed a language to process data in lists rather than arrays, and symbolic computation rather than numeric.
LISP Evaluation - pioneered functional programming. No need for variables or assignment. Control via recursion and conditional expressions.
1964: BASIC
Design goals: easy to learn and use for non-science students. Must be pleasant and friendly, fast turnaround for homework, and free and private access. First widely used language with time sharing.
1971: PASCAL
Designed for teaching structured programming. Small, simple, nothing really new, largest impact was on teaching programming.
1972: C
It’s general-purpose, procedural programming language and the most popular programming language until now. Mother of almost all higher-level programming languages.
1972: SQL
Programming language for storing and processing information in a relational database.
1983: C++
Object-Oriented Programming. C++ is the fastest high-level programming language and one of the world’s most popular.
1991: Python
Famous language among data scientists and analysts. Simpler syntax that allows fewer lines.
1995: Java
Supports only OOP. Widely used for Web programming.
2000: C#
Developed by Microsoft and runs on the .NET Framework. Mainly used for making games.
Scripting Languages
Type of programming language that is interpreted rather than requiring compilation.
Scripting Languages for Web
- JavaScript - Client-side HTML-embedded scripting language, often used to create dynamic HTML documents. Most popular web-programming language (It is related to Java only through similar syntax).
- PHP - Server-side HTML-embedded scripting language, often used for form processing and database access through the Web (scripts executed on server). Widely used, open source.
Markup Languages
It’s a set of rules that defines how the layout and presentation of text and images should appear in a digital document. It isn’t a programming nor scripting language because it isn’t used to perform actions.
1. HTML - standard markup language for web pages. Describes the structure of a web page and it tells the web browser how to display the content.