CSCI 431 Project Description
Group and language assignments todate
- Vance Bell has requested javascript
- Brent Briggs, Keefer Hamrick, Joseph Crawley, Lizette Gonzalez and
Mike French have requested Tcl/Tk
- Roger Batsel and Melissa Boring have requested REXX
- Richard Preston and Terrance Rayner have requested Perl
- Jeremy Gustrowsky has requested Python
- David Dudman has requested VBScript
- Thomas Ryan has requested CGI Scripting
Overview
Everybody is required to participate in a class presentation,
either individually or as part of a group. Each presentation will
describe a scripting language of your choice. Although not a formal
part of the material to be covered in this course, there's been a
great deal of attention given to scripting languages recently. This
is evidenced not only by the increasing popularity of more established
scripting languages such as Perl and Tcl, but also by the large number
of new scripting languages (e.g., javascript, VBscript, CobraScript,
etc). Surprisingly, given this state of affairs, it is very difficult
to say exactly what a scripting language is, that is, what
distinguishes a "scripting" language from a "regular" programming.
Although it might not be possible to establish rigid guidelines, it
does appear that most scripting languages have the following three
properties:
- They are either hybrid or fully interpreted languages
- They are "type-less" or dynamically typed
- They are like command languages in that the main effect of a
program (written in a scripting language) is to drive another system,
while in a programming language the program itself is the main action.
Click here for a further discussion of
the definition of scripting languages taken from the newsgroup
"comp.compilers" in 1995.
Requirements
Your assignment is to give a brief presentation of a scripting
language to the class on Nov 23. All presentations will be on that
day and the exact time allotted for each presentations will depend on
the number of groups. Your presentation materials must be suitable
for inclusion of the course page (i.e., there must be an electronic
version of your presentation that can be displayed with an existing
application program). Your grade will be based on the quality of your
presentation, and the number of people in the group will be taken into
consideration.
You are free to chose any of the more widely known scripting
languages. The Yahoo
Programming Languages Page lists six scripting languages (under
the heading "scripting languages") not including javascript which is
listed separately. You can easily find other scripting languages by
doing a web search and including the phrase "scripting language".
Your presentation should include the following kinds of information:
- A program that you have written in the language that you are
presenting. This program should exhibit a number of the more
interesting features of the language.
- Discussion of technical factors such as:
- Simplicity of language constructs, which relates to ease of
programming
- Readability, which relates to maintainability, an important factor
as many programs greatly outlive their expected lifetimes (witness the
Y2K software crisis)
- How tuned a language's features are for a particular application
(e.g., Perl relates well to text processing)
- Compilation speed (if relevant)
- Runtime efficiency, in terms of speed and machine resources
- Library support
- Debugging help
- Language safety
- Longevity of language and compiler tools
- Portability across platforms and machine architectures:
Execution platforms for programs tend to change over
time (e.g., from DOS to Windows to Windows NT, just to trace the
``Wintel'' lineage). Is the language closely tied to a particular
machine, or is the language clearly portable (e.g., Java's clear
independence of any particular machine's quirks or implementation)?
- Discussion of political factors such as:
- Popularity of the language: Popularity, in terms of the size of the
marketplace and number of programmers using a language affects
the choice of a language.
- Economic: Which language tends to be cheapest or most cost effective
for a given application?
- References and resources, particularly those that are on-line.
Is the language well-supported by commercial organizations or
freeware development
communities (i.e., will the language's compilers and development
environment be available for the foreseeable future)?