Python: Syntax, Static Semantics, Semantics of a Language

It was the first year of the launch of edX and MIT’s 6.00x course was offered free of cost, along with certification. I, along with a friend of mine, started the classes. At the end of the course, we had a final exam. We started revising 2 weeks prior the exam and I had this idea of posting the revision on this blog for easy access in future.

This is a series of posts of all the lectures and we’ll include all exam oriented points from the course-ware. I believe the best way to revise is to recall examples. I’ll try to include fitting examples for each concept.

There are 3 main points to note from the first class.

Knowledge: Declarative Knowledge & Imperative knowledge.

  • Declarative knowledge is statement of facts.
    • for example: π = 3.14. Its a fact.
  • Imperative knowledge is the method on how you reached to that fact.
    • for example: π = circumference of any circle/diameter of that circle

Computer Program: Fixed Computer Program & Stored Computer Program

  • Fixed Computer Program computes precisely only computation. They are devised to perform only specific task.
    • for example: While playing computer games a missile tracks you down if you fly over a ‘Non-Civilian’ area. That missile is an example of fixed computer program.
  • Stored Computer Program computes a set of predefined instructions stored in electronic memory.
    • for example: Very simple arithmetic and logic units, a simple calculator has predefined set of instructions on what to do if user inputs 2 + 5

Aspects of Language: Syntax, Static Semantics & Semantics

  • Syntax: Let’s take an example to understand this.

    • for example: “Mouse Cat Dog” is not in a correct syntax as far as English language is concerned. Similarly, there is a particular syntax in any other language. We’ll consider Python syntaxes later as we proceed, as for now 3.2 + 3.2 is a syntactically valid statement.
  • Static Semantics: Whether syntactically valid statements have any meaning.

    • for example: “I are big”… the syntax is correct, but there’s a static semantic error that we know as grammatical error. Similarly 3/'three' is a static semantic error in Python because int 3 is being divided by string 'three'
  • Semantics: There should not be more than one meaning associated with any statement because computer cannot figure out which is the correct intended meaning.

    • for example: In English if I say “I’m having a friend for dinner”, the statement can be interpreted in two different ways. Such things should not, or I should say cannot happen in computer languages like Python.

In the next post, we will start with basic data-types in Python.


Note: This is a part of what I learned in an online Open Course Ware offered by MIT on edX. Its for my personal reference & also for those who would like to revisit the course.