Termpaper on Programming Languages, Assignments of Programming Languages

A termpaper assignment for Computer Science 152 course at Harvard School of Engineering and Applied Sciences. The paper requires students to investigate the formal foundations of programming languages and apply them to real-world programming languages. Students are required to choose one programming language to investigate or two programming languages to compare and contrast. They should explore the features and limitations of the language(s) they have chosen and write one or more programs in the language(s). Finally, they should write a term paper summarizing their investigations and give a short presentation in class. a list of possible mainstream, functional, scripting/web programming, domain-specific and logic programming, and research languages that students can choose from.

Typology: Assignments

Pre 2010

Uploaded on 05/11/2023

thecoral
thecoral 🇺🇸

4.5

(30)

395 documents

1 / 2

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Harvard School of Engineering and Applied Sciences Computer Science 152
Term paper
DUE: Wednesday, April 28, 2010, 5PM
In this course we have been investigating the formal foundations of programming languages. For the
term paper, you will consider how these ideas apply to real-world programming languages.
Specifically, for the term paper, you should perform the following tasks (in approximately this order).
1. Choose either one programming language to investigate, or two programming languages to compare
and contrast.
2. Investigate the language(s) you have chosen,.
3. Write one or more programs in your language(s).
4. Write a term paper summarizing your investigations.
5. Give a short presentation in class.
These tasks are explained in more detail below.
1 Choose language(s)
Choose either one programming language to investigate, or two programming languages to compare and
contrast. You are free to choose any language(s) you want, so long as there is some way of writing and
executing programs in this language. That is, there should be a compiler or interpreter available for the
language(s) you choose. Feel free to discuss possible language choices with the course staff.
Some possible languages include:
Mainstream: C, C++, Java, C#, Scala, Visual Basic.
Functional Languages: Haskell, OCaml, SML, F#.
Scripting/Web Programming: Javascript, PHP, Perl, Python, Tcl, Ruby.
Domain Specific & Logic Programming: Matlab, SQL, Prolog, Datalog, Curry, PostScript, L
A
T
EX, Erlang.
Research languages: Go, Cilk, gbeta, Cyclone, Coq.
2 Investigate language(s)
Explore the features and limitations of the language(s) you have chosen. The following questions are exam-
ples of the kinds of questions you should consider.
Was the language designed for a specific purpose, e.g., a specific class of programs, or a specific
execution environment?
Where does the language come from? Was it developed by researchers or industry? Is it based on any
previous languages? Is the language intended to be used in a certain domain or for a certain class of
applications?
What features does the language have? How do these features relate to features and concepts we have
considered in class?
Is the language compiled, interpreted, or both?
What kind of type system does the language have?
Does the language have dynamic scope, lexical scope, or both?
pf2

Partial preview of the text

Download Termpaper on Programming Languages and more Assignments Programming Languages in PDF only on Docsity!

Harvard School of Engineering and Applied Sciences — Computer Science 152

Term paper

DUE: Wednesday, April 28, 2010, 5PM

In this course we have been investigating the formal foundations of programming languages. For the term paper, you will consider how these ideas apply to real-world programming languages. Specifically, for the term paper, you should perform the following tasks (in approximately this order).

  1. Choose either one programming language to investigate, or two programming languages to compare and contrast.
  2. Investigate the language(s) you have chosen,.
  3. Write one or more programs in your language(s).
  4. Write a term paper summarizing your investigations.
  5. Give a short presentation in class.

These tasks are explained in more detail below.

1 Choose language(s)

Choose either one programming language to investigate, or two programming languages to compare and contrast. You are free to choose any language(s) you want, so long as there is some way of writing and executing programs in this language. That is, there should be a compiler or interpreter available for the language(s) you choose. Feel free to discuss possible language choices with the course staff. Some possible languages include: Mainstream : C, C++, Java, C#, Scala, Visual Basic. Functional Languages : Haskell, OCaml, SML, F#. Scripting/Web Programming : Javascript, PHP, Perl, Python, Tcl, Ruby. Domain Specific & Logic Programming : Matlab, SQL, Prolog, Datalog, Curry, PostScript, LATEX, Erlang. Research languages : Go, Cilk, gbeta, Cyclone, Coq.

2 Investigate language(s)

Explore the features and limitations of the language(s) you have chosen. The following questions are exam- ples of the kinds of questions you should consider.

  • Was the language designed for a specific purpose, e.g., a specific class of programs, or a specific execution environment?
  • Where does the language come from? Was it developed by researchers or industry? Is it based on any previous languages? Is the language intended to be used in a certain domain or for a certain class of applications?
  • What features does the language have? How do these features relate to features and concepts we have considered in class?
  • Is the language compiled, interpreted, or both?
  • What kind of type system does the language have?
  • Does the language have dynamic scope, lexical scope, or both?

Term paper

  • Does the language guarantee any properties about code? For example, type safety, program termina- tion?
  • How easy or difficult is it to write programs in this language? What kinds of errors can the program- mer make?
  • Would the language benefit from the addition or removal of any language features, e.g., first-class functions? What impact would this have on the language, in terms of expressiveness, efficiency, etc.? Is there a reason that the language does or does not have this feature?

If you are comparing and contrasting two languages, you can consider how your languages are similar or different on their answers to questions like those above.

3 Write programs

Write one or more programs in the language(s). This will help you gain an understanding of what is easy or difficult to accomplish in the language(s), and to understand features of the language(s). You might start with something very simple like a “hello world” program, but you should also try implementing something more substantial, such as a sorting algorithm, a parser, a small language interpreter, a simulation, etc. Try to identify what kind of programs are suitable for writing in your language(s), and write one or more of these programs.

4 Term paper

Write a short paper (2–4 pages) that communicates the results of your investigation. Assume the reader does not know the language(s), but is comfortable with the concepts we have learned in class. If, during your investigations, you needed to explore or understand programming language concepts we did not cover in class, then describe these concepts briefly, and explain how they relate to your programming language(s). Be sure to describe the programs you have implemented, and what insights, if any, this gave you. You must hand in the term paper by 5pm, Wednesday, April 28 , which is the last day of the semester. Your paper should be single-spaced, typed, and with reasonable margins. It should be between 2 and 4 pages in length. Please also submit the source code for the programs you wrote, and sample output if appropriate. You can email them to [email protected] by 5pm, Wednesday, April 28.

5 Presentation

The class on Thursday April 22nd will be devoted to student presentations. You will give a 5 minute presentation summarizing your investigation. You are free to use slides, the blackboard, an interpretive dance, or any other form of presentation.

Page 2 of 2