Introduction to Programming Languages PDF
Document Details

Uploaded by RosyPeony
STI College
Tags
Summary
This document provides an introduction to programming languages, covering milestones in their development throughout history. It explores various programming languages, including machine language, Fortran, and COBOL. The document appears to be aimed at computer science students or professionals, offering a foundation for understanding different generations of programming languages, along with programming domains and evaluation criteria.
Full Transcript
IT2409 Introduction to Programming Languages Milestones in Programming Languages A programming language is a formal notation system or instructions for writing computer programs and other software applications. Here are the milestones in Programming Languages throughout hist...
IT2409 Introduction to Programming Languages Milestones in Programming Languages A programming language is a formal notation system or instructions for writing computer programs and other software applications. Here are the milestones in Programming Languages throughout history. Year Programming Language Description Ada Lovelace invented the first machine algorithm. She made the leap that numbers could represent other things, leading to the idea 1843 Machine Language of programming languages. Her work was the first step in designing a language capable of giving computer instructions. Konrad Zuse, a German scientist, developed a language for expressing computations for the Z4, a computer from electromechanical relays. Plankalkül means program calculus. 1940s Plankalkül It was the first high-level computer programming language ever developed. This language included mathematical expressions, showing the current relationships between program variables and the ability to store codes that enabled engineers to carry out routine, repetitive tasks more efficiently and quickly. Kathleen Booth wrote the first assembly language, a low-level Assembly Language programming language developed to simplify machine code for 1949 writing instructions for processors. Implemented by William Schmitt to improve the operations of the Shortcode BINAC and UNIVAC computers. Alick Glennie coined “Autocode” to refer to a set of programming languages. It was developed for the Mark 1 computer at the University of Manchester. 1952 Autocode It was considered the first compiled programming language that could be translated into machine code using a special application known as the compiler. Formula Translation was created by John Backus to shorten the process of programming and make computer programming more 1957 Fortran accessible. It is still used today in supercomputers and scientific and mathematical computations. Algorithmic Language was created by American and European ALGOL computer scientists. It became the point of origin for other programming languages, including Pascal, Java, C, and C++. 1958 John McCarthy created the List Processor (LISP) for his artificial intelligence (AI) applications. It is one of the oldest computer LISP programming languages still used today by AI companies like Boeing and Genworks. Stands for Common Business Oriented Language. It was developed and designed by Dr. Grace Murray Hopper for business computer 1959 COBOL programs in industries. It was estimated to be in use by over 100 million people and is still widely used in today’s banking systems. 01 Handout 1 *Property of STI Page 1 of 7 IT2409 Created as a computer programming language for beginners by Dartmouth College students. BASIC stands for Beginner's All- 1964 BASIC Purpose Symbolic Instruction Code. Bill Gates and Paul Allen furthered its development, and it became Microsoft’s first commercially successful product. Developed by Niklaus Wirth, it was named after the famed mathematician Blaise Pascal. Apple was one of the leading 1970 Pascal companies to endorse this due to its streamlined and straightforward process. Dennis Ritchie developed the C language at the Bell Telephone Laboratories. It was named as such as it descended from the B C language. It is recommended for creating embedded system drivers and applications. Programming languages like C#, Java, JavaScript, 1972 Perl, PHP, and Python are all derived from C. Structured Query Language was developed by Raymond Boyce and SQL Donald Chamberlain. It was first called SEQUEL and was used for modifying, viewing, and altering information in databases. Bjarne Stroustrup, a C programmer, modified the programming C++ language and released it as C++. The changes include new features such as templates, classes, and virtual functions. 1983 Brad Cox and Tom Love created Objective-C, which is the primary Objective-C programming language used to create applications for Apple’s iOS, macOS, and iPad operating systems. Guido Van Rossum founded this as a support language for software Python developers, build control and management, testing, and many other ways. It is a general-purpose, high-level language. 1991 Created by Microsoft. It allows users to drag and drop sections of Visual Basic (VB) code simultaneously. Users can choose from various options in the drop-down menus and change different codes. Created by James Gosling for a software project for interactive TV. It is considered one of the world’s most famous and popular Java programming languages for coding web applications. It is a multi- platform, object-oriented, and network-centric language that can be used as a platform. Created by Brendan Eich and is primarily used as a scripting 1995 JavaScript language in websites. It is also used for web development, PDF documents, and desktop widgets. Rasmus Lerdorf developed PHP (previously known as Personal Home Page, now known as Hypertext Preprocessor) to build and PHP maintain web pages and server-side development. Facebook, Wikipedia, and WordPress use PHP. Table 1. Programming language milestones. 01 Handout 1 *Property of STI Page 2 of 7 IT2409 Programming Domains and Environments Programming Domains As great diversity in computer use develops through time, there have been different goals for developed programming languages. The following elaborates on the most common areas of computer applications and their associated languages. Domain Application Language Used The first digital computers from the late As efficiency is a concern in this 1940s to early 1950s were invented and domain, Fortran was the first used for this domain. language used. Scientific At the time, simple data structures such as Applications arrays and matrices and control structures such as counting loops and selection were used, but this required several floating- point arithmetic computations. Computer use in this domain began in the The first successful high-level Business 1950s when special computers were language for this domain was COBOL, Applications developed along with special languages. the initial version from 1960. AI is characterized by the use of symbolic As this requires flexibility, LISP was rather than numeric computations. In the first widely used programming symbolic computation, symbols consisting language for this domain before Aritificial of names rather than numbers are 1990. Intelligence (AI) manipulated and are more conveniently More recently, Python has been used done with linked lists of data rather than in AI applications. arrays. The WWW (World Wide Web) is supported Embedding programming code can by a collection of languages, ranging from be in the form of a scripting language HTML (not a programming language) to such as JavaScript or PHP. Java (general-purpose programming language). Web Software The need for dynamic Web content demands some computation capability, which can be provided by embedding programming code in an HTML document. Table 2. Programming domains. 01 Handout 1 *Property of STI Page 3 of 7 IT2409 Programming Environments It is the collection of tools in software development. It may consist of only a file system, a text editor, a linker, and a compiler, or sometimes, it may include a large collection of integrated tools wherein each is accessed through a uniform user interface. Microsoft Visual Studio Code It is a redefined and optimized code editor for building and debugging modern web and cloud applications. It is a lightweight yet powerful source code editor that runs on a desktop and is available for Windows, macOS, and Linux. It has built-in support for JavaScript, TypeScript, and Node.js and has a rich ecosystem of extensions for other languages and runtimes such as Java, Python, C++, C#, PHP, and.NET). NetBeans It is a free, open-source, integrated development environment (IDE) that allows the development of desktop, mobile, and web applications. It provides comprehensive support for JDK 7 technologies and the most recent Java enhancements. It also supports JavaScript, Ruby, and PHP. NetBeans and Visual Studio are more development environments as they are also frameworks. This means that they provide common parts of the code of the application. Arduino IDE It contains a text editor for coding, a message area, a text console, a toolbar for various functions, and a series of menus. It connects to the Arduino board to upload programs and communicate with them. Blockly It is a visual programming editor that uses drag-and-drop blocks for coding. It is made by Google and is currently empowering the most popular coding education programs worldwide. The user defines the block connections and input fields for Blockly to handle the complicated rendering, dragging, and connection of them. Programming Language Evaluation Criteria Evaluation criteria help analyze the impact of programming languages on the software development process, including maintenance. Figure 1. Language evaluation criteria and the characteristics that affect them. Retrieved from Sebesta, R. (2019). Concepts of programming languages. Pearson. 01 Handout 1 *Property of STI Page 4 of 7 IT2409 Readability An important criterion for assessing a programming language is the ease with which programs can be read and understood. In the 1970s, the software life-cycle concept was developed to relegate coding to a much smaller role and consider maintenance as a major part of the cycle in terms of cost. As ease of maintenance is determined in large part by the readability of programs, readability became a major measure of the quality of programs and programming languages. Readability must be considered in the context of the problem domain such that if a program that describes a computation is written in a language not designed for such use, the program may be unnatural and convoluted, making it difficult to read. The following describes the characteristics that contribute to the readability of a programming language: Simplicity: The overall simplicity of a programming language strongly impacts its readability. For example, a larger number of basic constructs in a language is more difficult to learn than one with a smaller number. The following can be considered problems in readability. o Feature Multiplicity – a scenario of more than one (1) way to accomplish a particular operation. o Operator Overloading – a scenario wherein a single operator symbol has more than one (1) meaning. It can result in reduced readability if users create their overloading and do not do it sensibly. o Oversimplicity – a scenario wherein the language is too simple to the point of lacking more complex statements and less obvious program structure. Orthogonality is the ability to change one thing without unseen effects on other things in the program. It is about the independence of components in a larger system. It deals with how a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structure of the language. A lack of orthogonality leads to exceptions to the rules of the language. For instance, a programming language that supports pointers. It should be able to define a pointer to point to any specific type in the language. If not, many potentially useful user-defined data structures cannot be defined. The more orthogonal the design of a language, the fewer exceptions the language rules require. This results in a higher degree of regularity in the design, making it easier to learn, read, and understand. Data Types: The presence of adequate facilities for defining data types and data structure offers a significant aid to readability. For instance, it might not be easily understood if a numeric type is used for an indicator flag, such as in C language, because there is no Boolean type in the language. Syntax Design: The syntax or form of the elements has an impact on the readability of programs. The following exemplifies syntactic design choices that affect readability. o Special Words: Some programming languages have used matching pairs of special words or symbols to form groups. These languages have diminished readability as statement groups are always terminated in the same way, making it difficult to determine which group is being ended when an end or a right brace appears ( } ). 01 Handout 1 *Property of STI Page 5 of 7 IT2409 o Form and Meaning: Designing statements to make their appearance partially specify their purpose, which helps readability. Semantics, or meaning, must follow directly from syntax or form. For example, in C, the meaning of the keyword static depends on the context of its appearance. If used to define a variable inside a function, it means the variable is created at a compile time. If used outside of all functions, it means the variable is visible only in the file wherein its definition appears. Writability It is the measure of how easily a language can be used to create programs for a chosen problem domain. It is unfair to compare the writability of different languages of a particular application when one is designed for that application and one that was not. For instance, Visual Basic (VB) and C are different when creating a program with a GUI, for which VB is only ideal. While for writing systems programs like an operating system, C is ideal. The following describes the characteristics that contribute to the writability of a programming language: Simplicity and Orthogonality: A large number of different constructs in a language might confuse some programmers as they might not be familiar with them. This leads to the misuse and disuse of some features. Too much orthogonality can affect the writability of a programming language, as errors can go undetected when any combination of primitive is legal. This can lead to code absurdities that cannot be discovered by the compiler. Expressivity in a language refers to various characteristics. It means that there are more effective operators that allow a computation to be accomplished with a very small program. For instance, in C language, the notation count++ is more convenient and shorter than count = count + 1. Reliability It is met if a program performs to its specifications under all conditions. The following describes various language functions that affect the reliability of programs in a given language: Type Checking tests for the type of errors in a program, either by the compiler or during program execution. As runtime type checking is expensive, compile-time type checking is more desirable. The earlier the errors are detected, the less expensive it is to make the required repairs. Exception Handling is the ability of the program to intercept runtime errors and other unusual conditions detectable by the program, take corrective measures, and then continue. Aliasing happens when there are two (2) or more distinct names in a program that can be used to access the same memory cell. It is considered and accepted as a dangerous feature in a programming language. Readability and Writability: A language that does not support natural ways to express the required algorithms in a program will use unnatural approaches that are likely to be incorrect for all possible situations. A program is more likely to be correct if it is easier to write. Additionally, a program that is difficult to read can also be difficult to write and modify. 01 Handout 1 *Property of STI Page 6 of 7 IT2409 References: Sebesta, R. (2019). Concepts of programming languages. 12th edition. Pearson. Heirso, S. (2022). Coding from 1849 to 2022: A guide to the timeline of programming languages. [Web Article]. Retrieved on November 15, 2024, from https://www.computer.org/publications/tech-news/insider-membership- news/timeline-of-programming-languages 01 Handout 1 *Property of STI Page 7 of 7