1 / 18

Proje c t START S y stem MARS( a new generation 32-bit computer )

Proje c t START S y stem MARS( a new generation 32-bit computer ). 1985 1988 (1990) Kronos pro c essor 2 mi c ropro c essor standard cards O S Excelsior Labtam Kronos Compilers Different Kronos plat f orm s AI software included ExpertPRIZ NUT Different Kronos

arama
Download Presentation

Proje c t START S y stem MARS( a new generation 32-bit computer )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Project START System MARS(a new generation 32-bit computer) 1985 1988 (1990) Kronos processor 2 microprocessor standard cards OS Excelsior Labtam Kronos Compilers Different Kronos platforms AI software included ExpertPRIZ NUT Different Kronos platforms CAD software Different Kronos platforms

  2. Programming environment NUT The NUT is a knowledge-based programming environment which sup- ports: - development of large programs in the object-oriented style; - automatic composition of programs from their specifications. It is compatible with the C language, runs under Unix, uses X Windows System. Its main components are the following: • interactive user interface • language processor • knowledge management system • graphic programming tools. Knowledge management system handles packages which contain classes, objects and graphics related to problem domains. Using graphic programming tools, a user can develop its own graphical language for specifying programs in a declarative way.

  3. Interactive user interface The NUT system is accessible through the X Windows System based interactive graphic interface. NUT user interface includes the following windows: • NUT main window (peaaken) • class windows, associated to classes • object windows, associated to objects • zoom window, associated to components of schemes; They are a particular case of object windows • Graphics Editor window • Schema Editor window • the Algorithm window • the Diagnostic window • the Debug window • the Rules window • message and dialog windowś

  4. The menu bar of the NUT system includes the following pull-down menus: • File – for handling packages by creating, saving, restoring them • Class – for handling classes, in particular, for opening a class window for editing • Object – for handling objects by viewing and editing them in an object window • Work/edit – working with texts in the workspace, executing programs • Rules – working with production rules • Options – setting an operation mode of the system • Windows – opening windows for debugging and graphics.

  5. NUT keel • specification language-spetsifitseerimise keel • procedural language-protseduurne keel It is the OO language that supports multiple inheritance,flexible mechanism for sending messages andautomatic synthesis of programs. 1.Objects ja classes An object is an entity that possesses an identity, a class, and a value (state). A class is a template for creation of objects with similar properties.

  6. 1.1 Classes Classes User-defined classes Predefined classes Primitive classes Universal class any Polymorfic classes array, struct, row Instances of primitive classes and universal class any can take value nil, representing undefinedness. 1.3 Primitive classes num – is a class of numbers bool - true andfalse (1 and0) is a class of booleans text – is a class of strings prog – is a class of procedures

  7. 1.4any anyis an universal class. The concrete class of an object declared to have class any is initially open. 1.5 array of cl is a class of values that are structures of objects having class cl.The initial length for an object having class array of cl is picked from the class name in the declaration of the object, if indicated there. The length is dynamic. Two-dimensional arrays are possible. 1.6 struct This class is hidden. Group aliases are of that class, structure expressions etc. 1.7 row is a class of values that are structures of objects of some fixed class (similat to array, used by syntheses of iterations...).

  8. 1.8 User classes <userclass-text>::= [<section>]… <section>::= <super-section>|<var-section>|<vir-section>| <rel-section>|<alias-section>|<init-section> 1.8.1 super-sections User class can inherit from one or more classes, called superclasses of the class. Only user-defined classes can act as superclasses. <super-section>::= super<super-description>… <super-description>::= <userclass-name>; Example: super document; super vehicle; 1.8.2 var-ja vir-sections User declares the names and classes the proper and virtual components.

  9. <var-section>::= var<var-declaration>… <var-declaration>::= <simplenames>:<class-name>; |<simplename>:<prototype-in-component-declarat>;* |<row-specifier>:<class-name>; |<row-specifier>:<prototype-in-component-declarat>; <row-specifier>::= 1..[<unsigned-integer>] <vir-section>::= vir<vir-declaration>… <vir-declaration>::= <simplenames>:<class-name>; |<simplename>:<prototype-in-component-declarat>; * p.1.8.6 A component may be declared to be of an non-existent class. This non-existent class is considered empty (length 0, without relations and initializations). Example: var x,y:Point; line:array 5 of Point; vir n1,n2,n3:num;

  10. 1.8.3 rel-sections The user defines the relations of the class he/she is defining. <rel-section>::= rel <relation-definition>… <relation-definition>::= [<relation-name>:]<relation-definiens>; <relation-name>::=<identifier> Relations are procedures. Procedure text contain a specification and may contain a program. The specification determines the input/output interface; It states parameters of the procedure, defines certain order of them, and tells their roles (input, output, weak) , ... Relations are used in two ways: -as methods, by sending a message to the object (relation calls...); -in synthesis of values for objects and of programs for procedures and their subtasks.

  11. <relation-definiens>::= <proceedure-text>seebelow |<multi-way-equation>|<one-way-equation>| <equivalence> <multi-way-equation>::= <expression-in-equation>=<expressen-in-equation> All components of equationarenum andweak. Expression...see below. The specification derivable by the class compiler from a multi way equation e1=e2... <one-way-equation>::= <dotname>=<expressen-in-equation> The specification derivable again by the class compiler from a one-way equation c=e... <equivalence>::= <dotname>=<dotname> The specification derivable by the class compiler from an equivalence c1=c2 is: - - c1, c2 Siin peavad mõlemad liitnimed olema võrreldavatest klassidest.

  12. Examples: rel method1:x+y=0; 1*sin(alpha)=P1.y-P2.y; method2:res=in1&in2; how_long:new_text=length(´See on üks tekst´);

  13. 1.8.4 alias-sections The user defines the aliases of the class he/she is defining. <alias-section>::= alias <alias-definition>… <alias-definition>::= <simplename>=<alias-definiens>; <alias-definiens>::= <name-with-dot>|<group> <name-with-dot>::= <atomicname>.<simplename> \row element-nameas well <group>::=(<pseudodotnames>) <pseudodotnames>::= <pseudodotname>[,<pseudodotname>]… <pseudodotname>::= <dotname>|all.<simplename> A group alias has class “struct”. all.x is a short form for c1.x,…,cn.x , where c1,…,cn is the list of allcomponents of the class being defined that possess a component named x.

  14. Examples: alias Px=P.x; all_states=(all.state); states=(current_state,next_state); 1.8.5 init-section The user tells the initializations of the class he/she is defining. <init-section>::= init <initialization>… Initializations are assignments that are performed, when an instance of the class is created. <initialization>::= <dotname><assign-symbol><expression>; <assign-symbol>::= := | <- Examples: init P.x:=0; structure:=[1,2,3]; len<-length(´This is a text´)+3;

  15. 1.8.6 Component declaration prototypes Prototypes are used in component declarations of user class texts for giving components more properties than they could acquire just from their classes alone <prototype-in- component-declaration>::= <userclass-name><amendments> <amendments>::= <amendment>[,<amendment>]… There are two kinds of amendments: - initialization amendments, - equivalence amendments. <initialization-amendment>::= [<simplename><assign-symbol>]<expression> \here = is allowed <equivalence-amendment>::= [<simplename>=]<dotname> Amendments without left-hand parts are called positionalamendments, in contrast to „normal“ amendments, that are called amendments by name.

  16. Examples: tr1:triangleside1=10; tr2:triangleside1:=10, 20, alpha:=30; tr3:triangleside1:=tr1.side1, side2:=tr2.side2+5;

More Related