Skip to main content

CS404: Programming Languages

Page path
  • Home /
  • Courses /
  • Course Catalog /
  • Computer Science /
  • CS404: Programming Languages /
  • Unit 2: Types
Back to course 'CS404: Programming Languages'
  • Unit 2: Types

    In this unit, you will learn about types, a method of enforcing levels of abstraction in programs. Data in programs come in many types: real number, integers, characters, lists, etc. A type error occurs when an operation is applied to an inappropriate data type. A type system consists of a set of types, and a set of programs to analyze types and type judgment. You will also learn about the basics of static typing, type checking and type inference.

    Completing this unit should take you approximately 19 hours.

    • Unit 2 Learning Outcomes Page
    • 2.1: Principle of Typing

      •  University of Texas at Austin: Thomas Dillig's "Principles of Typing" URL

        Read these slides, which will define typing, and explain why we need typing and how types compute. What is the difference between dynamic and static typing? Do you know any language with dynamic typing?

      •  Johns Hopkins University: Scott F. Smith's "Principles of Programming Languages" URL

        Read Chapter 6, which discusses type systems.

    • 2.2: Type Checking

      •  University of Texas at Austin: Thomas Dillig's "Basic Typing Rules and Proofs" URL

        Read these slides, which discuss how to construct type systems for multiple languages and prove/show soundness of a type system.

      •  University of Virginia: Wes Weimer's "Type Checking and Static Semantics" URL

        Read these slides, which discuss typed programming languages.

      • Indian Institute of Technology, Delhi: S. Arun Kumar's "Type Checking" Page

        Watch this lecture, which discusses type checking.

    • 2.3: Polymorphic Typing and Type Inference

      •  University of Texas at Austin: Thomas Dillig's "Polymorphic Tpying and Type Inference" URL

        Read these slides.

        • Advanced Typing Rules and Proof
        • Type Inference I
        • Type Inference II
        • Type Inference in L

    • Unit 2 Assessment

      •  Unit 2 Assessment Quiz

        Please take this assessment to check your understanding of the materials presented in this unit.

        Notes:

        • There is no minimum required score to pass this assessment, and your score on this assessment will not factor into your overall course grade.
        • This assessment is designed to prepare you for the Final Exam that will determine your course grade. Upon submission of your assessment you will be provided with the correct answers and/or other feedback meant to help in your understanding of the topics being assessed.
        • You may attempt this assessment as many times as needed, whenever you would like.

Navigation

Art History
Biology
Business Administration
Chemistry
Communication
Economics
English
History
Mathematics

Creative Commons License
© Saylor Academy 2010-2018 except as otherwise noted. Excluding course final exams, content authored by Saylor Academy is available under a Creative Commons Attribution 3.0 Unported license. Third-party materials are the copyright of their respective owners and shared under various licenses. See www.saylor.org/open/licensinginformation for detailed licensing information.

Saylor Academy and Saylor.org® are trade names of the Constitution Foundation, a 501(c)(3) organization through which our educational activities are conducted.

Terms of Use | Privacy Policy