30.07.2015 Views

Proceedings in pdf format. - Sociotechnical Systems Engineering ...

Proceedings in pdf format. - Sociotechnical Systems Engineering ...

Proceedings in pdf format. - Sociotechnical Systems Engineering ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

could be bad particularly when overrid<strong>in</strong>g anoptimised problem solution;• A few programm<strong>in</strong>g languages are support<strong>in</strong>gextension of the method's implementation. With that,the super class's method could be still <strong>in</strong>voked withthe old behaviour before or after the new behaviour isused.Practical usage of method extensions could beobserved with creation of a visual componentVirtualTreeView that should pa<strong>in</strong>t on the screen acomplex tree structure with general data <strong>in</strong> each treenode * .Now let the first application use it with customizedpa<strong>in</strong>t<strong>in</strong>g where every node with data of a particular typeis pa<strong>in</strong>ted green. And another application (the firstapplication extension) wants to pa<strong>in</strong>t nodes as the firstapplication and nodes which meet another particularcriteria should be pa<strong>in</strong>ted red. A whole lot of work issaved when us<strong>in</strong>g extend<strong>in</strong>g virtual methods <strong>in</strong>stead ofoverrid<strong>in</strong>g virtual methods.THE BETA PROGRAMMING LANGUAGEQuot<strong>in</strong>g the Object-oriented programm<strong>in</strong>g <strong>in</strong> theBeta: “BETA is a modern language <strong>in</strong> the Simulatradition. It supports the object-oriented perspective onprogramm<strong>in</strong>g and conta<strong>in</strong>s comprehensive facilities forprocedural and functional programm<strong>in</strong>g.Research is go<strong>in</strong>g on with the aim of <strong>in</strong>clud<strong>in</strong>gconstra<strong>in</strong>t-oriented constructs.BETA replaces classes, procedures, functions, andtypes by a s<strong>in</strong>gle abstraction mechanism called thepattern. It generalizes virtual procedures to virtualpatterns, streaml<strong>in</strong>es l<strong>in</strong>guistic notions such as nest<strong>in</strong>gand block structure, and provides a unified framework forsequential, corout<strong>in</strong>e and concurrent execution.The result<strong>in</strong>g language is smaller than Simula <strong>in</strong> spiteof be<strong>in</strong>g considerably more expressive.”The basic syntax rules of Beta consist of an objectdescriptor(# ... #)where ellipsis reference to an object body. The name andthe object body then specify the pattern:CPattern: (# ... #)* Actually this is a Delphi component called the VirtualTreeView, see http://www.delphigems.com/VirtualTreeview/VT.phpThe object-descriptor is now describ<strong>in</strong>g what arecapabilities of the pattern's <strong>in</strong>stances. Inside the objectdescriptormay or may not be an enter part, a do part oran exit part.In the enter part are com<strong>in</strong>g the values from outsidethe pattern <strong>in</strong>stance and pattern's attributes specified hereare set to these values. The do part is executed when<strong>in</strong>vok<strong>in</strong>g a pattern's <strong>in</strong>stance. The exit part is denot<strong>in</strong>gthe pattern's output values.A pattern can be declared as virtual by us<strong>in</strong>g :

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!