jagomart
digital resources
picture1_Concepts Of Programming Languages Pdf 187848 | Cos301 1


 149x       Filetype PDF       File size 0.44 MB       Source: aturing.umcs.maine.edu


File: Concepts Of Programming Languages Pdf 187848 | Cos301 1
cos 301 topics programming languages reasons for studying concepts of programming languages preliminaries programming domains language evaluation criteria influences on language design language categories language design trade offs implementation methods ...

icon picture PDF Filetype PDF | Posted on 02 Feb 2023 | 2 years ago
Partial capture of text on file.
                                             COS 301                                                   Topics
                                Programming Languages                                                  • Reasons for Studying Concepts of Programming 
                                                                                                           Languages
                        Preliminaries                                                                  • Programming Domains
                                                                                                       • Language Evaluation Criteria
                                                                                                       • Influences on Language Design
                                                                                                       • Language Categories
                                                                                                       • Language Design Trade-Offs
                                                                                                       • Implementation Methods
                                                                                                       • Programming Environments
                         Why Study Concepts of Programming                                             Why Study Concepts of Programming 
                         Languages?                                                                    Languages?
                          • Increased ability to express ideas                                         • To improve expressiveness
                          • Improved background for choosing appropriate                                   – Expressiveness increases with vocabulary 
                            languages                                                                      – Ability to visualize solutions increases with new 
                          • Increased ability to learn new languages                                         programming constructs and depth of abstraction
                          • Better understanding of significance of                                        – If the only tool you know is a hammer, the only 
                                                                                                             solutions you can see involve nails
                            implementation                                                                 – Even if a language does not directly support a 
                          • Better use of languages that are already                                         particular abstract feature (e.g. associative array) 
                            known                                                                            you can simulate it as part of solution
                          • Overall advancement of computing
                         Gain improved background for choosing                                         Improve your ability to learn new 
                         appropriate languages                                                         languages
                         • A fundamental result of theory is that all                                  • First language or two are difficult and time-
                            languages are equivalent in computing power                                  consuming to learn
                         • Anything that can be computed in Java or                                    • These languages also constrict your view of 
                            Python can also be computed in BASIC, COBOL or                               languages
                            FORTRAN                                                                       – As you learn the abstract concepts underlying 
                             – But some languages are better in terms of                                    programming languages you acquire a framework for 
                                                                                                            understanding a new language
                               expressiveness for a given problem                                         – Eventually you can read many unfamiliar languages 
                             – Learning just one or two languages in great depth can                        with little or minimal effort
                               be hazardous to your career                                                – Current trend is to combine relatively simple 
                         • Let’s consider some problems…                                                    language with a huge library. Why re-invent the 
                                                                                                            wheel?
                   The Tiobe Index                                            Gain a better understanding of significance 
                                                                              of implementation
                   • See                                                      • Programming languages provide a virtual 
                     http://www.tiobe.com/index.php/content/pap                 machine with which we express problems and 
                     erinfo/tpci/index.html                                     their solutions.
                   • Counts top languages by counting hits of the             • The virtual machine has to execute on a real one
                     most popular search engines                              • Understanding the implementation of a 
                   • See                                                        programming language helps to
                     http://www.tiobe.com/index.php/content/pap                  – Achieve more efficient problem solutions
                     erinfo/tpci/tpci_definition.htm                             – Avoid subtle bugs caused by particular language 
                                                                                  implementations
                   Gain better use of current languages                       Programming Paradigms
                   • As languages evolve, they become large and               • A programming paradigm is a pattern of 
                     complex compared to earlier languages                      problem-solving thought that underlies a 
                   • Many modern languages are multi-paradigm                   particular genre of programs and languages.
                     languages – procedural, functional, object               • Many people classify languages into four main 
                     oriented                                                   paradigms:
                   • A broad understanding of concepts and                       – Imperative (Procedural)
                     paradigms allows you to better leverage your                – Object-oriented
                     knowledge of current languages                              – Functional
                                                                                 – Logic (declarative)
                   Imperative or Procedural Paradigm                          A Von Neumann Computer
                   • The oldest programming model
                   • Follows the classic von Neumann-Eckert model:
                      – Program and data are indistinguishable in memory
                      – Program = a sequence of commands
                      – State = values of all variables when program runs
                   • Large programs use procedural abstraction
                   • Language has assignments, loops, conditionals, 
                     procedure and functional calls, control flow
                   • Example imperative languages: 
                   •    Cobol, Fortran, C, Ada, Perl, …
                          Object Oriented (OO) Paradigm                                                 Functional Paradigm
                          • An OO Program is a collection of objects that interact by                   • Functional programming models a computation as a 
                            passing messages that transform the state.                                    collection of mathematical functions.
                          • Concepts of OOP:                                                               – Input = domain
                             – Sending Messages                                                            – Output = range
                             – Inheritance                                                              • Functional languages are characterized by:
                             – Polymorphism                                                                – Functional composition
                          • Example OO languages:                                                          – Recursion
                             – Smalltalk, Java, C++, C#, and Python                                        – Conditional evaluation
                          • We will look at Smalltalk in detail later. Languages such                   • Example functional languages:
                            as Java and C++ are OOP concepts grafted onto a                                – Lisp, Scheme, ML, Haskell, …
                            procedural core                                                                – Surprisingly Javascript supports functional programming very 
                                                                                                             well!
                          Logic Paradigm                                                                Declarative Languages
                          • Logic programming declares what outcome the                                 • Prolog is a unique language with its basic ideas 
                            program should accomplish, rather than how it                                 of facts, rules and atoms combined into a 
                            should be accomplished.                                                       program often called a database 
                          • When studying logic programming we see:                                     • There are other declarative languages where a 
                             – Programs as sets of constraints on a problem                               “program” consists only of statements declaring 
                                                                                                          what the result should be, not how to do it
                             – Programs that achieve all possible solutions                             • SQL (Structured Query Language) is the prime 
                             – Programs that are nondeterministic                                         example
                          • Example logic programming languages:                                           – But all SQL implementations have procedural 
                             – Prolog                                                                        extensions (PL/SQL, T-SQL, etc.)
                                                                                                        • XPath is another example
                          Markup Hybrid Languages                                                       Markup Hybrids
                          • Pure markup languages are mostly based on                                   • XSLT (Extensible Stylesheet Language 
                            Standardized General Markup Language (SGML)                                   Transformations) is a declarative XML based 
                          • HTML and XML are examples of two pure markup                                  language used for transforming from XML to XML 
                            languages                                                                   • Often used to transform XML documents into 
                             – No processing is done by the language                                      HTML (a subset of XML) for presentation in 
                             – Markup provides directions to an external tool                             browsers
                          • But markup languages have been extended to                                  • Requires a processing engine that takes XML and 
                            support some programming                                                      XSLT as input and outputs XML (or HTML)
                          • Examples: JSTL, XSLT                                                        • Capabilities overlap XQuery
                                         Programming Domains                                                                                                             Programming Domains
                                         • Scientific applications                                                                                                              • Computer software operates in a large number of 
                                               –  Large numbers of floating point computations; use of arrays                                                                        different domains
                                               –  Fortran                                                                                                                             –  Scientific applications
                                         • Business applications                                                                                                                      –  Business applications
                                               –  Produce reports, use decimal numbers and characters                                                                                 –  Artificial intelligence
                                               –  COBOL                                                                                                                               –  Systems programming
                                         • Artificial intelligence                                                                                                                    –  The Internet
                                               –  Symbols rather than numbers manipulated; use of linked lists                                                                        –  Multimedia
                                               –  LISP                                                                                                                                –  Embedded Systems
                                         • Systems programming                                                                                                                        –  Industrial Control
                                               –  Need efficiency because of continuous use
                                               –  C                                                                                                                             • Some programming languages have been designed 
                                         • Web Software                                                                                                                              for specific domains
                                               –  Eclectic collection of languages: markup (e.g., XHTML), scripting                                                             • Others were explicitly design as general purpose 
                                                  (e.g., PHP), general-purpose (e.g., Java)
                                         Scientific Applications                                                                                                         Scientific Applications
                                         • AKA Number Crunching. The first computer                                                                                      • Earliest high-level languages (FORTRAN, from 
                                              applications (1940’s)                                                                                                          FORmula TRANslation) were designed for 
                                         • Normally involve simple data structures, simple                                                                                   scientific computing
                                              control structures and large numbers of floating                                                                           • Efficiency is primary concern  -- competition 
                                              point computations                                                                                                             with assembler
                                         • Abstraction is usually applied OUTSIDE the                                                                                    • Algol 60 was designed to provide better 
                                              language before the computational problem is                                                                                   expressiveness and abstraction but failed to 
                                              expressed in a language                                                                                                        catch on 
                                                                                                                                                                         • FORTRAN is still very much in use – only recently 
                                                                                                                                                                             has C begun to be adopted in the domain
                                         Business Applications                                                                                                           COBOL
                                         • Early 1950’s people realized that computers                                                                                   • More lines of COBOL are in existence and still 
                                              were very good at doing tedious and boring tasks                                                                               running than any other computer language 
                                         • Computers were specifically designed for                                                                                      • If you want job security learn COBOL – there’s 
                                              business (high I/O capabilities) as were                                                                                       always demand for people who can maintain the 
                                              languages                                                                                                                      COBOL corpus
                                         • COBOL (COmmon Business Oriented Language)                                                                                     • Other developments in business applications are 
                                              was first designed in 1959 (based on Grace                                                                                     of little interest to computer science; e.g., RPG 
                                              Hopper’s Flow-Matic language)                                                                                                  (Report Program Generator)
                                         • In 2002 object-oriented extensions were grafted                                                                               • Not discussed much in text
                                              onto the language
The words contained in this file might help you see if this file matches what you are looking for:

...Cos topics programming languages reasons for studying concepts of preliminaries domains language evaluation criteria influences on design categories trade offs implementation methods environments why study increased ability to express ideas improve expressiveness improved background choosing appropriate increases with vocabulary visualize solutions new learn constructs and depth abstraction better understanding significance if the only tool you know is a hammer can see involve nails even does not directly support use that are already particular abstract feature e g associative array known simulate it as part solution overall advancement computing gain your fundamental result theory all first or two difficult time equivalent in power consuming anything be computed java these also constrict view python basic cobol fortran underlying but some terms acquire framework given problem eventually read many unfamiliar learning just one great little minimal effort hazardous career current trend c...

no reviews yet
Please Login to review.