Helsinki University of Technology



Sama Suomeksi


Front Page

Overview

Schedule

Lectures

Guides

Topics

Teachers


T-106.290 Ohjelmoinnin laboratoriotyöt

Subject: Programming Language Performance (5 cr)

The purpose of this assignment is to evaluate popular programming languages for at least two computationally intensive mixed string/integer processing tasks chosen from the list below:

  • Generating palindrome sentences (such as "Madam, I'm Adam") from a list of words (for example read in from a file). Words are marked in the list somehow to indicate whether they can be used multiple times, or just once.
  • Finding all solutions to cryptograms (such bas "SEND+MORE=MONEY") when each letter stands for a unique number from zero to nine.
  • Given a word list and a start and end word, the shortest path from the start to the end word is one where only one character changes at a time, such as (start "cat", "cot", "dot", end "dog"). Write a program which finds from the given word list the start and end words with the longest shortest path between them.

Implement your benchmarks in seven languages, at least one from each of the following cathegories:

  • C
  • Another compiled language such as Fortran, C++ or Pascal
  • A virtual machine -based language: Java, C#
  • A popular scripting language, such as Python, Ruby, Perl, Scheme, or Visual Basic
  • A more abstract programming language, such as some variant of ML, Haskell, or Prolog.

Use a programming style idiomatic for each language. Ensure all implementations use the same algorithms. And of course, use of external libraries written in other languages prohibited.

Measure and analyze also memory usage in addition to CPU-usage. Present and justify your subjective opinions on how well each programming language suits the given task. Your report should also contain a review of other inter-language benchmarks.



Course email: cessu@cs.hut.fi
Kurssin newsgroup: opinnot.tik.labratyot
This page has been last updated on 2005-01-11.