Scripting Languages
www.php.net
www.python.org
www.ruby-lang.org
www.perl.org
www.tcl.tk/
http://dmoz.org/Computers/Programming/Languages/Scripting
www.vendian.org/language_year
Scripting?
A short, somewhat misleading, way to say programming in
a very high level language
But what is a VHLL?
It depends on who you talk to...
Is Prolog a scripting language? Scheme? Java? Javascript?
I claim no..
But maybe important:
www.oreillynet.com/pub/wlg/3190
Fundamental Properties of Scripting
Easy to use
- Typeless?
- Interpreted
- Simple?
Lot's of available functionality
- Built-in data structures (lists, associative arrays)
- Built-in string processing (strings and regexps)
- User community writes lots of modules
- Network, DB, XML, GUI, WWW, etc., etc.
Extensible
- "Easy" to write native code that is accessible from script
Embeddable
Dynamic
- Code is data, data is code
- Typically have an "eval" command
But is this software engineering?
Scripting languages can:
- Be ill defined
- Change their semantics at will
- Encourage BAD programming
- Have little support for modularity
- Dynamically fail (e.g., octal input)
Uses of scripting in SE
Prototyping
- write a prototype in a scripting language
- select critical piece, convert to system language
- repeat until performance requirements are satisfied
- package into an executable
Is this a new software development model?
CBSE Glue (CBSE==Component-Based-SE)
- Buy components or code your own in a system PL
- Glue together with a scripting language
- Revert to SD process above if needed
Tcl calling DLLs:
http://www.elf.org/ffidl/
Perl calling DLLs:
http://dada.perl.it/
Tcl DII into CORBA:
http://www.cerc.wvu.edu/iss/TclDii.htm
A Python ORB:
http://www.fnorb.org/
Test harnesses
Other uses
Other scaffolding -- skeletons, stubs, input generators, output summarizers
Special development tools -- project-specific code generators, file
managers, report generators, etc.
Automating anything you can in the SE process
Do many IDE's support a scripting language?
Can Eclipse use a scripting language?