SI 413 Fall 2023 / Homeworks


This is the archived website of SI 413 from the Fall 2023 semester. Feel free to browse around; you may also find more recent offerings at my teaching page.

Homework 1: PL Intro

1 Course Policy

Read over the course policy. Tell me one thing that you like or that you don’t like about it.

2 Comparing Languages

List all the programming languages you are familiar with or have used before. For each one, answer the following:

  1. What are the most important features or characteristics of this language?
  2. For what purposes is this language most useful?
  3. What are drawbacks to programming in this language?

3 Chicken, meet Egg

Pick one programming language from the list above. Do some Internet research to find out two things:

  1. The name of a popular compiler or interpreter for that language
  2. What programming language the compiler/interpreter itself is written in.

Be sure to list out any sources that you used!

4 Errors

Give me a code snippet that causes some kind of error. Do you think it is an error in syntax or semantics, and why?

Requirement: Everyone must turn in a unique example. You can work together, but you still need to come up with as many examples as Midshipmen!

5 Stages of Compilation

List the main stages of compilation, from source code to an executable program. (This is not too hard to find if you read the notes.)

An interpreted language is one like bash or PHP that is directly executed instead of being compiled. Circle which stages in your list would be significantly different for an interpreted language.