This preview shows pages 1–3. Sign up to view the full content.
This preview has intentionally blurred sections. Sign up to view the full version.View Full Document
Unformatted text preview: CSci 5106: Programming Languages Overview of the Course and the Subject Gopalan Nadathur Department of Computer Science and Engineering University of Minnesota Lectures in Fall 2010 Gopalan Nadathur Programming Languages Overview Approaches to Studying Programming Languages Catalogue Approach Here you learn to program in many different languages Conceptual Issues Approach Here the following kinds of aspects are studied: Structure of different languages/paradigms and considerations shaping them Impact of structure on programming Implementability issues Particular languages figure here as case studies Implementation Based Approach Real focus is on precise meaning of features and on viewing programs as objects Semantics Based Approach Semantics could be of denotational, operational or axiomatic variety or a mix of these Gopalan Nadathur Programming Languages Overview Approach Followed in This Course We shall adopt the conceptual issues approach here for the following reasons: Semantics and implementation based approaches are specialized and come at a later stage of learning Advantages over the Catalogue approach: The Obsolescence Factor Knowledge of particular languages becomes obsolete quickly but general understanding has a lasting value Choosing the Right Language Aspect Knowing which language is right for a particular task is part of being a good programmer The Language Designer Perspective Understanding the connection between language structure and machine architecture is useful in designing new languages Gopalan Nadathur Programming Languages Overview What is a Programming Language? A Language A system of signs used for communication When we focus on programming a machine, this specializes it as follows A formalism for communicating a problem solving approach to a computer with the intension of getting the problem solved There is still scope for diversity: what is a computer? how is a problem solving approach to be structured? Gopalan Nadathur Programming Languages Overview What is a Computer? A possible definition: A device for carrying out arithmetic and logical operations at high speed However, this definition could be interpreted to mean a specific physical device, a class of such specific devices, or an abstraction, based on certain properties deemed important, of all such devices The transition from machine languages to high-level languages reveals a gradual understanding of these different possibilities Indeed, programming languages, starting with Fortran, constitute a rethinking the structure of a machine Gopalan Nadathur Programming Languages Overview Reconstituting Machines Programming languages participate in recreating machines along two dimensions: Along the dimension of the execution model Here languages have added new kinds of data new kinds of instructions Along the dimension of the organizational model Here the issue is that of extendability and management: Data Abstraction Procedural Abstraction Modularization...
View Full Document
This document was uploaded on 05/06/2011.
- Fall '09
- Computer Science