Dashboard > USF Computer Science 652 - Programming Languages > ... > Homework > Language terminology and design
  USF Computer Science 652 - Programming Languages Log In | Sign Up   View a printable version of the current page.  
  Language terminology and design
Added by Terence Parr, last edited by Terence Parr on Jan 15, 2008  (view change)
Labels: 
(None)

This homework is designed to get you familiar with a number of important language design and implementation terms. You will need to do a lot of research on the Internet to answer these questions properly.

Answer these questions in your own words

no cutting and pasting from the Internet! Aside from being plagiarism, cutting and pasting will teach you nothing.

1. Briefly define the following terms:

  • Language
  • Grammar
  • Lexical analysis
  • Parsing
  • Symbol table

2. What is the difference between a compiler and an interpreter?

3. Define the following general programming language classifications and give two examples of each:

  • Imperative
  • Functional

4. Define object-oriented programming and give the name of the first object-oriented programming language. Can we add object-oriented technology to both imperative and functional languages?

5. What is the difference between strong typing and loose typing? Give an example of each type of language.

6. Research and carefully define static typing and dynamic typing. What is the difference between the two? Give an example of each type of language.

7. Static and dynamic typing systems both have advantages and disadvantages. Research the pros and cons on the net and describe them your own words.

8. What is the difference between static and dynamic scoping of variables and methods?

Site powered by a free Open Source Project / Non-profit License (more) of Confluence - the Enterprise wiki.
Learn more or evaluate Confluence for your organisation.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.1 Build:#806 May 06, 2007) - Bug/feature request - Contact Administrators