Posted by keremkosaner on 29 June 2007

Ruby is a reflective, dynamic, object-oriented programming language. It combines syntax inspired by Perl with Smalltalk like object oriented features, and also shares some features with Python, Lisp, Dylan, and CLU. Ruby is a single-pass interpreted language. Its official implementation is free software written in C. The language was created by Yukihiro “Matz” Matsumoto, who started working on Ruby on February 24, 1993, and released it to the public in 1995. “Ruby” was named after a colleague’s birthstone.
Several virtual machines have been developed for Ruby. These include JRuby, a port of Ruby to the Java platform, IronRuby, an implementation for the .NET Framework produced by Microsoft, and Rubinius, an interpreter modeled after self-hosting Smalltalk virtual machines.
Ruby is object-oriented: every data type is an object, including even classes and types that many other languages designate as primitives (such as integers, booleans, and “nil”). Every function is a method. Named values (variables) always designate references to objects, not the objects themselves. Ruby supports inheritance with dynamic dispatch, mixins and singleton methods (belonging to, and defined for, a single instance rather than being defined on the class). Though Ruby does not support multiple inheritance, classes can import modules as mixins. Procedural syntax is supported, but all methods defined outside of the scope of a particular object are actually methods of the Object class. Since this class is parent to every other class, the changes become visible to all classes and objects.
Ruby has been described as a multi-paradigm programming language: it allows you to program procedurally (defining functions/variables outside classes makes them part of the root, ’self’ Object), with object orientation (everything is an object) or functionally (it has anonymous functions, closures, and continuations; statements all have values, and functions return the last evaluation). It has support for introspection, reflection and metaprogramming, as well as support for threads. Ruby features dynamic typing, and supports parametric polymorphism.
Posted in Software Reuse | Leave a Comment »
Posted by keremkosaner on 25 May 2007
XVCL Workbench Plug-in For Eclipse
Installation of XVCL Workbench Plug-in
Prerequisite: Eclipse Java IDE, v3.1 or above, installed in Windows platform.
1- Download distribution package from XVCL Workbench homepage:
http://xvcl.comp.nus.edu.sg/workbench/download/
Its naming convention is usually in the form: “plugin-name_plugin-ver.zip”, e.g. edu.xvcl.workbench_1.0.0.zip
2- Unzip the package into “plugins” folder inside Eclipse installation,
e.g. c:\Program Files\Eclipse\plugins\
3- Run Eclipse and open “Select Perspective” dialog box from Window > Open Perspective > Other
4- Select “XVCL Development” and hit OK. This will open necessary windows to work with XVCL.
Note: if you don’t see item “XVCL Development” in the “Select Perspective” dialog, try to restart Eclipse with ?clean argument, i.e. right click on Eclipse icon, choose Properties;under Target box in Shortcut tab, key in “{Eclipse Path}\eclipse.exe -clean”, with {Eclipse Path} refers to path of your Eclipse installation
Posted in Software Reuse | 1 Comment »
Posted by keremkosaner on 25 May 2007

XVCL (XML-based Variant Configuration Language) is a general-purpose mark-up language for configuring variants in programs and other types of documents. We can apply XVCL to configure variants in a variety of software assets such as software architecture, program code, test cases, technical and user-level program documentation or requirement specifications. In fact, XVCL can be used for managing variants in any domain that can be represented as a collection of textual documents.
XVCL is more than a language for configuring variants. It is accompanied by a methodology and supported by a tool ? an XVCL processor. The XVCL methodology tells you how to discover the variant-structure of the solution for your application domain and for the types of variants you want to address. The XVCL processor automates what are often the most error-prone parts of program construction, allowing you to entirely focus on the essential novelty of your problems, work requiring your creativity.
XVCL is a scripting language that allows you to specify how to systematically and reliably modify programs at variation points in order to accommodate specific variants into programs. You use XVCL commands to mark variation points in your program. To facilitate effective reuse, you split your program into generic, adaptable fragments, called x-frames. Each x-frame is instrumented with XVCL commands to permit automatic customization and evolution. You organize x-frames into a hierarchy that forms an adaptable architecture for your product line.
Posted in Software Reuse | Leave a Comment »