d {intorriìatica 2 YU ISSN 0350-5596 AVTORJIM ČASOPISA INFORMATICA Zaradi mosnega plasmaja öasopisa Informatica v tujini naprošamo avtorje Časopisa Informatica, da pišejo v prihodnje svoje ölan) Informing Informs), information Is informing. Information is Informing, etc. Informing is again either active, passive, or both. Through Informing information Is coming into existence as described in the previous paragraph. Similar to the noun 'information' and the verb 'inform'. Informing has the highest imaginable semantical power of Its predecessor. Therefore, Informing Is expressing all possible activity of Information, when Information Is Informing on Its way to Information and when new Information Is coming Into existence, arising trom previously existing Information. A broadened meaning of Informing may be compared to the Greek 'polesis'. The meaning of 'poiesis' Is acting, composing, creating, doing, elaborating, establishing, executing, finishing, forming, getting ready, making, manufacturing, originating, poetry, preparing, proceeding, producing, setting up, working, etc. As with the word information, the word Informing now passes through a corresponding change and enrichment of Its meaning. Any phenomenon, its arising, acting, behaving, and processing can be understood as Informing. Informing is not necessarily dependent on the previous Information. Informing brings to the surface also new, unexpected information. At this point. It is necessary to stress how Informing Is not an Indispensable, causal activity, even though causality is squeezing through In various forms the natural and social phenomena. Because not all phenomena are causally connected, they can occur accidentally, e. g., as an external Information entering through sensory ways to cortices or as a circular, cortex internal information (e. g. thrownness and breaking down in Wlnograd, UCC, 33-37). Examples of causal and non-causal Informing are also perturbing (conriunlca11 on among beings) and autopolesls (biologic self-production) (Maturana, OL). Informing of Information and information qua Informing are generating a new regular form or process which will be called counter-!nforma 11 on. 2.3. Informlsm, Informness, and Informingness Informlsm Is nothing less than the thinking and understanding of the entire phenomenology through Informing or by means of Informing, through the way on which information informs everything - living and non-living. In the context of Informlsm the adjectives informlc (Informical) and informistic (Informi s 11 cal) can be used denoting some properties of this reasoning. Informness and informingness are consequences of this reasoning and represent the properties, how all phenomena are understood to be Informing or Informing. 2.4. Informity and Informable Informity is the property which a phenomenon has In regard to Its Information, to Its Informing, to Its Informational, to its form or process which is Information-like or can be explained or understood as such. In the framework of Inforinism, the Informlty Is the moßt general property which ts particular to each phenomenon or phenomenon occurrence. Every phenomenon Is able to Inform to a necessary and sufficient extent, complexity, clarity, detail, and depth In Itself and outside Itself, So, In general, phenomena are Informable and there exists and arises the Informable about a phenomenon. Evidently, the Informable Is Informatlonally two-folded: It is simultaneously perceiving-sensitive and behavlng-active. of Information in an informativable case is in propagation of Information in an informationally passive way. Hence, the Informativable is semantically included in the Informatlonable. In this section meanings of the following words will be presented: Informatics: Informat1 cal, Informatlsm, Informatlcness, Informa 11clty, Informatlcable. The Informative Is bringing Information somewhere to somebody. However, the Informative Is also causing or generating the Informing in beings and populations. Hence, the informing of the Informative is coming into existence. In this section the archetype 'Informative' and Its derivatives will be determined. So, the chain Informative: 1nformat1 v 1sm, 1nformat1veness, Informatlvlty, informativable will be considered. 3.1. Informative Can the adjective 'Informative' attain the meaning of the adjective 'informational'? In everyday language informative has the meaning of the imparting icnowledge and of the instructive. By general agreement, the meaning of informative could be broadened in the way to attain the meaning of informational. In paragraph 1.3 the difference of meaning between informational and informative Is pointed out. So, one can use the adjectival form 'Informative' In the ordinary (narrowed) way. 3.2. Informativlsm As derivative of informative, the noun Informativism concerns the meaning closely connected with the particularly narrowed meaning of Informative. Informativism is a noncomplete, particular thinking about information. In thinking, the essence of information (Being of Information) is excluded, so, informativism Is thinking through giving, processing, carrying, possessing, bringing, mechanically transforming, translating, transmitting, receiving, assembling of information, etc. In this context, informativism Is merely a part of informational lam. 3.3. Informatlveness and Informatlvlty Informativeness and informatlvlty are close to the property of 'being Informative' and 'informativism'. If the first one sounds more expressive, the second one is more sensitive in respect to an Informative subject or Informative object. 3.4. Informativable The Informa'tlvable is a form or process, which expresses the ability to be Informative, to carry, give or bring Information. The emphasis 4.1. Informatics Informatics Is a young, arising discipline which concerns many particular fields, where Information is important for the development of these fields. In this way, informatics has many specializations and field orientations. The term 'Informatics' developed in the European university connunity as the counterpart to the terra 'computer science' used at universities In the United States. Afterwards, the meaning of the terra was broadened. Today, Informatics concerns information and information investigation in several fields and disciplines as a general means, as philosophy, as education, as science, as technology, as application in economics, engineering, medicine, biology, sociology, and In other related disciplines. Informatics is becoming the way of thinking, methodology, knowledge, and processing, all of which concern information. Informational forms, and informational processes in a general sense. Informatics unites the different informationally developing disciplines dealing with theory, philosophy, technology, methodology, terminology, and application of Informat ion. Described as such. Informatics in the realm of Information may have similar role, for instance, as mathematics has in the realm of mathematical and semi-mathema11 cal objects in different sciences and disciplines. So informatics, with its characteristically shaped methodology, tools and objects, may have a general developmental value for several other disciplines. Informatics is dealing with Information systems and how these systems in a man-machine Interaction exist as living and technologically supported information systems. An Information system Is no longer a computer system Isolated from man and his life processes. So far as computers of the future will become information machines, computer science will be replaced more and more by information science. 4.2. Informatlcal The term 'informatlcal' is used as the adjectival form regarding informatics. Informatlcal means are Information objects, methodologies, philosophies, theories, technologies, tools, etc. The Informatlcal includes the entire realm of Informatics, the field of Informatlcal means. There are essential, meaningful differences among the usage of the adjectives informational, informative, and informatlcal. These differences are now already surfacing into one's awareness. The same is valid for the corresponding substantival forms of the Informational, of the Informative, and of the Informatlcal. 4.3. Informatlsm InformatlBm Is the way of understanding, how, why, where, and when informatics, as a discipline, methodology and tool, can be used and has to be applied. Inforniat 1 sm concerns thinking, questioning, problem solving, and different implementations in different fields of everyday life by Informatical means. Informatlsm Is becoming the main stream of orientation in modern life, an orientation for surviving in a man-to-man13LIES As it shown in V0EL77 , REQ'J83 , REQUSOb , REQUSOa, REQUe2 one part Is build of simple bodies , called primitives and using Boolean operators on them . As it is shown in Fig 2 elementary primitives are box , cylinder , co ne and sphere , These are elementary primitives in Solid modeling technique . Using Boolean operators (union , difference and intersection) we can combineA.:bođies on few ways Fig 3. (b) FIG 2 Elementary primitives 3.1 Representational schemes Nowadays exist few representational schemes like Spatial enumeration , Cell decomposition , Constructive Solid ^ieometry (CSG) , Boundary representation (B-rep) , Svreep representations /REQU83 , REQUSOa , REQUSOb , MANT85a/ . V/e can introduce three most famous : CSG , B-rep and Sweep . Constructive Solid Geometry (CSG) connotes FIG 3 a) A non-physical "assembly" of tvro blocks , b)regularlsed intersections c)regulari2ed union , d)regulari2ed difference and e)other regularized difference a family schemes for representing rigid solids as Boolean constructions or combinations of solid components via the regularised set of operators defined in the REQUSOb and REQUSOa , CSG and B-rep are the best understood and currently most important representaation schemes for solids . CSG representations are (ordered) binary tree . nonterminal nodes represent operators , which may be either rigid motions or regularized union , intersection or difference ; terminal nodes represent primitive leaves v/hich represent subsets of E^ , or transformation leaves which contain the definning arguments or.rigid motions . CSG trees nay be defined by the following : / t « »I \ - «of! - i ! / . , . tT- V,;- tr W "" ' ») (n) ^ ^ (g) (e) " m (§■ ? = {0} ■ inckr M «ncir »J ; t" / \ kirwti /' m z m aifkrti M \L,j ^ v KIJ FIG 10 Euler operators : plane models An example of body with hole , Fig 11 , shows manipulation with Euler operators . MVSP Mev »tv (d) —? * / ' \ \ N / 1 1 1 ' / » N J— \ * \ ! 1 < 1 \ / « . MEY 9r xrv »ep U) \ / V I I MTV W A«V (h) MEV Hev HSF 0 0 KEMa (0 Msy (J) MEF (I.) Wfv MEF MEV MEF MEV MEF HFKRH FIG 11 A sample definition (MANT82) 5 SURFACE MODELLING Surface modeling emerged as a field of CAD in the early 1960s as result of work done by S.A. Coons at MIT , USA in representing mathematically the shape of sculptured objects such as aircraft exterior skins , ship hulls and car bodies . The mathematical methods are polynomial functions , which allow through differentiation easy determination of geometric properties of the surface tangents , normals and curvature , Polinomial of high degrees require a large number of coefficients . Bernstein - Bezier or B-spline methods requires only 16 control points . The mapping from control points to actual surface- i8 đona through a itxU matrix which for Bezier representation has following form ; P(u,v) =• UBCb'^v'^ (8) where P(u,v) is the point in Cartesian space which corresponds to the parametric surface point (u,v) , and where ; 10 0 0 B -3 3 0 3-6 3 -1 3 -3 (9) is the Bezier basis matrix for a bicubic patch , where "=11 ®12 °13 ®21 ®22 °23 ®24 ®31 °32 °33 °34 ®42 =43 =44 (10) is the set of control points , which are armn-ged on topologically rectlinear grid according tb their subscripts . U = [ 1 u u^ u^J (11) V = C 1 V v^ v'l (12) are the parametric basis vectors . The modelling of a patch amounts , therefore , to the manipulation of its 16 control points in thr 3D Cartesian space . 6 THE REPRESE-ITATIO-J OF POLYHEDRAL SOLIDS Host of models developed so far mathematically representing a solid object are based on the general formal definition of its shape as a set of contigous points in 3-space . Thfe idea that relations between elements of list is topological is shown on Fig 8 and 12 , /KALA83b , WXED85/. Body is build of faces . The two-axis (or more) curvature discontinuity points are known as vertices . The volume enclosed by this set of elements is known as polyhedral shape . It is possible to implement a polyhedral shape representation by means of a hierarchical data structure , such as the one shown in Fig 12 . In this scheme the nodes represent one shape element each , and the arcs represent the relations between them . As it shown in BAER79 and W3IL85 it is possible to get one node for base . For example , a polyhedral shape bounded FIG 12 A hierarchical representation of the shape model (polyhedral representation without sculptured surface including is on the left side ) by planar surfaces can be represented by means of two types of nodes - faces and vertices , when the arcs between them are, constructed such that each string of successive vertices represents a ring of edges bounding face . Another representation has been deviced by Baumgart /BADI'i 75/ . Other types of structures are described in 3RAI82 and TOILS5 . This example is get from KALA83b and NSW181 and demonstrate representation in "winged-edge" structure . This scheme is derived from a proof to Euler Law relating the number of various elements in a polyhedral shape model (Eq 5 and 7). Since an edge is adjacent to exactly two faces , it is component in two rings which bound one face each . Assuming these rings are oriented , the edge has a predecessor and a succe«' ssor each , as well as two bounding vertices (Fig 13) . Using the "winged-edge" structure together with its implications on the ring and face elements as the key for representing the shape , Baumgart obtained a structure which is extrem-ly efficient for manipulation purposes a set of operators , for nmipulating a structure . (For further informations in data base for boundary representation see BRAI82). 7 A REUTIONAL MODEL FOR REPRESENTING FOLYHED-R^.L SHAPES The relational database model is one of the three most common data definition languages , the other two being the network and the hierarchical models . Its underlaying mathematical foundation derives from the set-theoretic concept of relation . The object called relations , are commonly represented in a 2D tabular form . Each relation corresponds to a single class of data , wlnich in the case of the polyhedral shape can be' faces , rings , edges and vertices . The rows of relation are called tuples . Each tuple identifiable through a unique key , and its columns are called domains ; each domain identifiable through a unique name . The number of domains in a relation determines its degree . For example , in the edge relation (Fig 14) , each tuple correspond to a single edge , and its domains correspond to one of the edge adjacent items , such as its predecessor edge on -each of the two rings in which it is a member , »v-«« -M,OS,»' Oi.Ol, Face list Ring list FIG 13 The "winged-edge" data structure Face no Ring on F Ring No Next R/F Face 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 U U k U A 5 5 5 5 5 6 6 6 6 6 Vertex list Vertex Mo X'coord Ycoord Zcoord 1 -0.5 -0,5 0.5 2 -0,5 -0.5 0.5 3 0.5 0.5 0.5 U 0.5 -0,5 0,5 5 -0.5 -0.5 -0,5 24 6 0. .5 0.5 -0. .5 7 0. 5 0.5 -0, .5 8 0, .5 -0.5 -0, .5 Olge list EdgNo Rngl Esucl EpCdl Vertl Rng2 .Esuc2 Eprd2 VTt2 1 1 2 k 1 2 9 10 2 2 1 3 1 2 3 10 11 3 3 1 h 2 3 k 11 12 4 t* 1 1 3 k 5 12 9 1 5 6 8 6 6 2 10 9 5 6 6 5 7 7 3 11 10 6 7 6 6 3 8 h 12 11 7 8 6 7 5 5 5 9 12 8 9 5 U 8 5 2 5 1 1 10 2 1 5 6 3 6 2 2 11 3 2 6 7 k 7 3 3 12 h 3 7 8 5 8 4 4 FIG 14 A relational representation of the polyhedral shape model 6 EXTENSION OF SOLID MODEL USING SOLID OFFSETING Offset solids are expanded or contracted versione of an original objects , To solid offset (abbreviated s-offset ) a solid S by a positive distance r one adds to the solid all points exterior to S that lie within a distance r of the boundary of S . For a negative s-offset one subtracts from the solid all the points of S within a distance r from its boundairy . Positive and negative s-off-sets for a simple reshaped "2D solid" are shown in Fig 15 /RDSS86/. provide reasonable results in many but not all of the possible cases . It is interesting that oflseting has many potential applications in : - Tolerance analysis . Three-dimensional tolerance zones may be defined by offsets , and used to determine whether mechanical parts satisfy specified tolerances . - Approximate object equality , Two solids X and Y are equal within some specified resolat- ion £. The solids X and Y may be for example , a desired part and the part generated by a sequence of machining operations . - Physical process modelling . Processes such as coating and etching may be modelled , at least to a first approximation , by expanding and shrinking operations , _ Cutter path generation . Computing cutter paths for WC machining by s-offseting solids seems much more usefull than current n-offseting techniques , because it does not produce self-intersecting paths . 9 EXTENSIBILITY OF THE RELATIONAL DATABASE MODEL Aspects shown in section 8 and posibility to have an information abuout surface finish , heat treatment and material type of each face of model give us an idea how to extend this relational model . Looking from technological aspects It Is possible to make a link between a faces in hierarchical scheme and a state of machininig(surface finish) of each face . This link is shown on Fig 16 . «Mt FIG 15 A simple L-shapped object (a) a positive offset (b) , and a negative offset (c) In NC and related applications one offsets smooth surfaces by "moving along the normal" by a distance r to generate other surfaces and offsets planar aurves similarly to generate other curves . (This operation is refered as normal offsetlng or simply n-ofsetlng to distinguish it from solid offsetlng) . The current understanding of normal offsetlng is sunarized in TILL84 and FAR085 . Briefly , there is no accepted mathematical definition of n-aflsetlng may led to cusps and self-intersections . Heuristic approaches proposed in TILL84 n H •SÄ- K FIG 16 Extension of representation of polyhedral shape model Correspondence between face list of surface finish is one to one . This introduce , very easy in Computier Intelligent Process Planning becau se we have informations about state of part sur- face on one hand and on second other perimeters like a necessary tools , machine tools and so on /PHILL85/. 10 CONCLUSION The presentation of the characteristics of an integrated modelling system in this paper is the first step in attempting to bridge the gap between some of the desired levels of design capabilities in a comprehensive manner rather than local extensions , that will allow the representation and manipulation of solid objects . As it is shown basic part of modul is database concepted on relational schemes . This database is very flexible and has appli-catiion in other areas . (Here is not shown but solid model play a big role in immage processing in robotics) , One of the interesting fields is CAPP systems . Solid database on relational principles is main information about body "immage" . This data in such a relation model of the shape can be structured in many ways and expanded into a suitable manipulative structures when necessary . APENDIX A Vertex Aunique point in a space , A vertex ' lies in one or mora faces . Edge A finite nonself-intersecting , direc ted space curve bounded by two not necessarily distinctc vertices . An edge lies in at least one and not more than two faces . Face A finite connected , nonself-intersec ting , oriented piece of surface boun ded by one and more loops . A face 11 es in a single shell . Loop An oriented ordered alternating seq--enee of vertices and edges . A loops are nonself-intersected , and lies in single face , and form a bound of f&ce Shell The collection of consistently oriented faces forming the bound of a single connected , clòeed volume . REFEREIJCES ALAG84 Alagic Suad :"Relational Database" , Svjetlost , Sarajevo , 198A (on Ser-bocroat ) BAER79 Baer A , Eastman C , Henrion K : "Geometric modelling i A survey" , CAD ,. Vol 11 , No 5 , September 1979 , pp 253 - 272 BAUIITS Baumgart Bruce ! " A polyhedron representation for computer vision " , AFIPS Proc , Vol 44 , 1975 , pp 589-596 BRAI82 Braid I. C, Hillyard R. C , Stroud I. A : "Stepwise construction of poly- hedra in geometric modelling" , Ed. K. W. Brodile : "Mathematical methods in computer graphics and design" , Academic press , London EA3T79 Eastman Charles , Waller Kevin :"Geometric Modeling using the Euler operators " , Proceeding First Annual Conf. on Ceoiputer Graphics in CAD/CAM systems , MIT , April 1979 , pp 248-259 FAR085 Farouki R. T. : "Exact-'offsets procedures for simple solids" , Computer Aided Geometric Design , Vol 2 , No 4 , December 1985 , PP 248-259 F0tE82 Foley B.Janes , Van Dam Andreas :"fua-damentals of Interactive Computer Graphics" , Addison Wesley , 1932 , KALA83a Kalay Yehuda Modelling polyhedral solids bounded by aulti-curVed paramet rie surfaces" , CAD , Vol 15 , No 3 , May 1983 , pp 141+146 EALASJb Kalay Yehuda : " A relational database for nonmanipulative representation of solid objects " , CAD , Vol 15 , No 5 , Septenber 1983 , pp 2?! +276 KOCO( ) KoSović Petar : "Geometric Modelling using Euler Formulas" , (to be appear in Informatica , serbocroat version) MAOT82 Mäntylä Martti, .Sulonen Eeijo ;"GVrB :A Solid. Modeler with; Euler operators", IEEE Computer Graphics and Applications September 1982 , pp 17+31 MANT83a Mäntylä Märtti :"Solid Modelling = Theory and Applications", Pre-Confereh ce Tutorial , Geometric Modelling ,E0-EOGEAPHICS'83 , Zagreb , August 1933 MANTSJb Mäntylä Martti : "Computational Topo- ' logy : A Study of Topoloogical manipulations in Computer Graphics and Geo metric Modelling" , ACTA Polytechnica Scandinavica , No 37 , 1985 MILA82a MilaSić Mariana : " Development and application of a mathematical method in the decomposition of multilevel hierarchical systems with an information base " , Ph.Doc.Disertation , University of Belgrade , 1982 (on Serbocroat) MILA82b Hilačić Vladimir :"Computer-Based Informatization on Manufacturing Engi neering Activities" , Int . J. Prod . '"es , Vol 20 , No 3 , PP 362-403 MILA84 KilaSić Vladimir , Kalajdžić Milisav: "Logical structure of manufacturing process design - fundamentals of an expert system for manufacturing process planning" , 16 CIKP International Seminar on Manufacturing Systems , To- kyo , 1984 , pp 93+101 MILA85 Hilačić Vladimir :"SAPT-Expert System of Manufacturing Process Planning" , Winter Annual Meeting of ASHE , Miami Beach , November 1985 , pp 43+50-NFvJMSl Newmann William , Sproul Bobert : "Principles of Interactive Computer Graphics" , McGraw-Hill International 1981 PHIia5 Phillips R.H , Arunthavathan V , Zhou D.X :"Symbolic representation of CAD data for Artificila Intelligence based Process Planning " , Winter Annual Meeting of ASME , Miami Beach , November 1985 , pp 31+'f-2 REQUBOa Requicha A.G. Aristides : " Representation of Rigid Solid Objects" , Lecture Notes in Computer Science (Edition J. Encarnacao} , Springer Verlag , pp 2+78 RE^USOb Requicha A.G. Aristides i "Representations for Rigid Solids Theory , Methods and Systems" , ASM Computing Survays, Vol 12 , No 4 , December 1980 , pp REQi;82 Requicha A.C-. Aristides , Voelcher B, Herbert : "Solid Modeling : A hisTorical summary and contemporary asse ssment" , IEEE Computer Graphic and Applications , March 1982 , pp 9+24 REvqUB? Requicha A.G. Aristides , Voelcher B. Herbert :"Solid Modelling : Current Status and Research directions" , IEEE Computer Graphics and Applications , October 1983 , pp 25+37 R0SS86 Rossignac R. Jaroslaw , Requicha A.G. Aristides : "Offseting operations in solid modelling" , Computer Aided Geometric Design , Vol 5 « No 2 , August 1986 , pp 129+148 TILL84 Tiller Wayne , Hanson Eric : " Offsets of two-dimensional Profiles" , IEEE Computer Graphic and Applications , Septembar 1984 , pp 36+46 V0EL77 Voelcker B, Herbert , Requicha A.G. Aristides : "Geometric Modelling of Mechanical Parts and Processes" , Computer , December 1977 , pp 48+57 WEIIS5 Weiler Kevin : "Edge-Based Data Structures for Solid Modeling in Curved Surface Environments", IEEE Computer Graphics and Applications , January 1985 , pp 21+40 WIEDa5 Wiederhold Gio : "Database Design", McGraw-Hill International , 1985 IMPLEMENTING PASCAL-LIKE CONSTRUCTS: AN EXERCISE IN PROLONG PROGRAMMING UDK 681.3.06:519.682 PROLOG Bogdan Filipič Department of Computer Science and Informatics »Jožef Stefan« Institute, Ljubljana ABSTRACT. Due to tha decorativo mèaniag ,of programs, Prolog is a powerful programming language. However, in practice it turns out that numerous tasks within a certain kind of programs are quite procedural. The paper describes a simple implementation of some Pascal-like constructs in Prolog as a practical solution to this problem. IMPLEMENTACIJA PASCALSKIH KONSTBUKTOV KOT VAJA IZ PBOGBA-HIKAMJA V PROLOGO. Prolog je zaradi deklarativnega pomena programov moöan programski jezik, vendar se v praksi izkaSe, da so mnoga opravila znotraj določenih programov povsem proceduralnega znaöaja. V elanku je kot praktična reSitev tega problema prikazana implementacija nekaterih pasoalskih konstruktov v Prologu, INTRODUCTION JF-THEH AND IF-THEH-ELSE PROCEDURES Due to the declarative meaning of programs, Prolog is a powerful programming language [1,3]. It is especially well suited for solving non-numerical problems. From the programmer's point of view, programming in Prolog is very efficient. On the other hand, Prolog implementations suffer from the lack of supporting the procedural programming approach. In practice it namely turns out that numerous tasks within a certain kind of programs are quite procedural. One may, for example, wish to perform an action conditionally, repeat a procedure until a certain condition is satisfied or execute a sequence of actions a given number of times. To do this in Prolog, we usually use outs and repeat-fail loops. Unfortunatelly, improving efficiency through these mechanisms often weakens the clarity and the conciseness of a Prolog program. Some Prolog implementations support conditional by default. Remember, for example, P -> Q ! R from DECsystem-10 Prolog [2], C-Prolog [5] or Quintus Prolog [6]. Arity Prolog [7] even supports ifthen/2 and ifthenelse/3 predicates. Here are common definitions of these procedures: if_then get( ASCII >, name< Answer, CASCll] beep !- put(7>. In order to implement the for loop, let us first introduce a utility for managing global counters [4]. Suppose we have certain values in our program that can be passed to or modified by any part of the program. Modifying these values may be understood as assigning values to global variables in procedural languages. Such variables are particularly suitable as counters. Each counter is specified by its name, a key, and the related integer value. The counter managing predicates below simply use retract and assert to assure the current value of a counter to be recorded in the database. Based on previously defined repeat procedure and the global counters, the for loop has the following two forms: for CCount,IJ .-= 11 to 12 do <3. for CCount,IJ II doMnto 12 do Q. Count identifies the procedure and should be instantiated to a Prolog constant. Furthermore, the global counter with the key Count is activated when executing the procedure. Its current value is instantiated to I. The following example illustrates how to use the loop: for Ci,IJ .*= i to 10 do ( nrited), nl J. AÄain, the execution is Pascal-like only when the goal(s) appearinfl in the loop can be satisfied in no more than one way. REFERENCES [1] Bratko I.: Prolog Programming for Artificial' Intelligence, Addison-Wesley, 1986 CONCLUSION The paper presents the implementation of some Pascal-like constructs in Prolog. We found them useful for writing procedural segments of programs, such as input and output procedures. As already stated, our purpose is not to reduce the importance of standard Prolog concepts, but just to add some convenient procedural features. In our opinion, combination of both declarative and procedural approaches is the right solution ■ when wondering about how to code a complex task effectively. And finally, the, reader might have noticed that we said nothing about the repeat procedure when discussing Pascal-like features. The reader is invited to implement it himself as an exercise. [2] Byrd L., Pereira F., Warren D.: A Guide to Version 3 of DEC-10 Prolog, Department of Artificial Intelligence, University of Edinburgh, 1083 [3] Clooksin H.F., Mellish C.S.: Programming in Prolog, Springer-Verlag, 1984 [4] FilipidSB., Mozetie I. : A Library of Prolog Utilities, Report US DP-4466, Josef Stefan Institute, Ljubljana, 1986 [5] Pereira F.: C-Prolog User's Manual, University of Edinburgh, Department of Computer Aided Architectural Design, 1984 [6] Quintus Prolog User's Guide and Reference Manual, Quintus Computer Systems Inc. , Palo Alto, 1986 [7] The Arity/Prolog Programming Language, Arity Corporation, Concord, 1986 APPENDIX: THE PROGRAM %------------------------------------- % File PROCtD r % Implementing Pascal-1ike constructs s- op( 900, fx, if ). op( 850,. xfx, then ). s- op( 800, xfx, else ). c- op{ 900, fx, case >. t- opf 850, xfx, of ). op(-800, xfx, othernise ). s- op( 750, xfx, >. s- op< 900, fx, repeat I- op( 850, xfx, until s- op( 900, fx, for I- op( 850, xfx', to !- opC 850, xfx, öomto op( 800, xfx, do s- op( 750, xfx, 'f' I- Ccountsl. Z Count if P then Q if_then_else( Q = . case X of C XntO othertiise R J s- if X=Xn then <3 else R, . case X of £ XnsQ J si f X=Xn then Q, case X of C XisQ ! Others J s- if X=Xi then Q else case X of Others. repeat Q until P repeat, calK (Q, /) ), call(P). for C_,_]S^J1 to 12 do _ j-ll>12, .'. for CCount,13s=Il to 12 do Q ctr^set(Count,11}, repeat C ctr_inc(Count,1), Q > until 1=12, ctr_remove(Count), /. for C_,_ls=ll donnto 12 do _ s-11<12, /. for [Count,IIs=tldonnto 12 do Q i-ctr_set(Count,11), repeat ( ctr_dec(Count,I), Q > until 1=12, ctr_remove(Count), /. O z-2 Z Z--- File CDUHTS i /Managing global counters Z ctr_set/2 sets a counter to the Z desired nuaber. Z ctr_dec/2 decrements a counter and Z returns its previous value. ctr_dec(Key,tl} t- retract( counter(Key), HI is H - 1, assert( counter (Kay,1^1) ), J. ctr_set(Key,N} s-integar (H) , ctr jrauovolKey) , assort( counter (Key,M) >, .'. Z ctr_inc/2 increments a counter and X returns its previous value » ctr_inc(Key,a) i- retract( counter(KeyJ N1 is M * 1, assort( counter (Key ,141 > >, /. % ctr_is/2 returns the current valua % of s countar, ctr_is(Key,H) t- counter(Key,ti), /, Z ctr_remova/1 removes o counter Z froo the dotobsse, ctr_reBovo(Key) »- retractf counter(Key,_J J, fail, ctr reBove(_). LANGUAGE CONSIDERATIONS OF PARALLEL PROCESSING SYSTEMS PART ONE: Concurrent microprocessing systems UDK 681.3.06:519.682/.683 Peter Kolbezen Institut »Jožef Stefan«, Ljubljana ASTRACI - Full parallells« offered by the «ultl-prooessor is not still fully exploited. Much work that has been done In structured programing to separate a mono-processor progran into well-defined nodules, and atteapts to systematize the interactions between modules, have helped to achieve a more disciplined approach to software development with much benefit to nulti-mikroprocessor software. This paper presents various issues relevant to language aspects of parallel processing systems. The objective Is to present a discussion of issues and soie of the current approaches rather than a well-developed «etodology of software, which has yet to be developed. New approaches to parallel processing architecture are briefly outlined too. 0 JEZIKIH SISTEMOV PARALELNEGA PROCESIRANJA. PRVI DELi Konkurenäni «ilkroprocesorski sistemi. Popolna soflasnost, ki jo omogoöa materialna opre«! veäprooesorsklh «iste-(1I0V, ee ni dovolj IzkoriSäena. Da bi se ta cilj dosegel, je bilo «ed drugim vlolfana :e veliko napora tudi v strukturirano programiranje, ki deli snoprocescrski program v dobro definirane module, poskuSa sistemiziratl akcije med moduli, pomaga doseäi bolj urejen pristop k razvoju programske opreme in ji d a Je- grapn Slot» lice Twer. Token matcnrnQ In SI ruderi quM.« Fig.3-A tagged dataflow architecture. The graph reduction architecture /16/ is the next variation on the dataflow approach discussed above. This variation is to evaluate functions by working directly on their graphical representations. As various portions of the graph are evaluated, they are repleaatd by their intermediate results. Evaluation of each of° the lowest nodes (which becomes a search to see whether such a node is present in the given relations), can proceed In parallel. The Intermediate boolean results are then fed back through .the graph as it is reduced, until a single result emerges. ALICE /17/ Is the computer which incorporates graph reduction directly into its basic architecture. It is designed to be programmed in the applloative language HOPE, but can also support declarative languages such as PROLOG. The architecture of ALICE enables the parallel operations to be performed without any explicit instructions from the program. Each node in a program graph is represented as a packet within Alice. A packet consists of an identifier fields, a function or operator field, and one or more argument fields, which may be data values or references to other packets. There are also control fields used by the computer in its operation. Distribution network PA PA PA r TT n PA n Interconnection network PPS PPS PPS PPS PPS PA Processing Apent PPS Packet pool segment Fig.'»-Al ice: overall structure. Also linking each processing agent is a low bandwidth distribution network, which contains addresses of prccessable packets and empty packets. This network includes simple processing elements which transfer these addresses from one processing agent to another, in order to even out the queue of work waiting at each processor. ALICE uses the INnOS transputer /12,13 / as its basic processing element« each main processing agent colntains a number of transputers, and additional transputers provide the intelligence in the distribution network. The transputer is designed as a single-chip processing element for parallel computer architectures, It has an one-board memory, with high-speed DMA (for input and output channels, bypassing the processor) facilities and reception and transmission registers for data transfer between transputers. Its single sequential processor has a reduced instruction set (RISC processor) for maximum speed (Instruction cycle time of SO nanosecond). Transputer is designed for a very high throughput of data, even if the processing rate is not so high. The transputer is designed to be programmable directly in Occam programming language /18/. It is Intended to be incorporated in a distributed architecture, with individual transputers connected by a very high speed local area network. As such it Is an ideal building block for many components of a multi-mlcroprocesor fifth generation computer system. A. CONCLUSION The general layaut of an ALICE computer is shown in Fig.'., It consists of a large segmented memory serving as a packet pool, and a number of processing agents. The processors and the memory segments are connected by a high-speed switching network which enables any processor to access any memory segment with minimal delay due to other access path. The configuration chosen is a delta network, comprising a large number of simple switching elements with four inputs and four outputs in a regular array, (Fig.1 shows a delta network of elements with two inputs and two outputs.) Thi network operates asynchronously, so that each request for a packet is propagated through the switches as rapidly as possible, and the packet is returned to the processor as soon as the access path Is open. With the Increased interest in multi-microprocessor and distributed computing systems, there is emerging a large number of proposals and approach to handle them. In a multl-mioropro-cessor design the architectural philosophy requires the Interrelated consideration of application requirements, hardware communications, and software aspects. While more detailed treatinent of software issues is left until second part which succeed of this paper, each of the considerations, as are: types of communications, priority, co-ordination of processes, procesB-procesor allocation, network visibility, control Issues, and synchronization /19/ should be seen as having implications as to the structure, hardware, and software o( a system. ' In multi-microprocessor systems the archltaotu-ral structure, applications requirsnentt, and varied software aspects like the operating systems /20/, cooniunications infrastructure, and tools to aid application programaing such as high level languages suitable for parallel programming, all form a tightly knit situation in which it is far mare difficult to isolata the constituent parts and arrive at universally accepted solutions. The requirements of the fifth generation for layers of parallelism and an emphasis on inference rather than numerical coaputation look like providing sufficient incentive. Even if the objective of a computer with enhanced intelligece is not attained, the new architectures will provide engines of unpreoendent power for conventional computing. The move away from general-purpose processors to aggregations of special-purpose chips is likely to affect all branches of information technology. The increase in the scale of integration, and the advanced CAD systems for microchip production will find applications in every branch of microelectronics. The industrial, economlo and political cansequences of having access to, or not having access to the new generation of silicon foundries are farreachtng. 5. REFERENCES /1/ Bedlna f1, , Distante F. SH i HH Resources Allocation in a Multiprocessor systeat An Architectural Problem, Advances in Microprocessing and Microprogramming, EUROMICRO, 198'i. /2/ Tucker A.B., Jr. Programming languages (Second edition), McGraw-Hill Book Company, 1986. /3/ Stankovifc J.À., A Perspective on Distributed Computer Systems, IEEE Trans. on Comp., vol.C-33, NO.12, December 198^. /A/ Chandy M,, Misra J. Distributed »ioulatl-on: A case study In design and verification of distributed programs, IEEE Trans, on Software Engineering, September 1978. /5/ Ma P.R., Lee E.Y.S., Tsuchya M. "A task allocation model for distributed computing systems", IEEE Trans, on Comp., pp. A1-47, Jan. 1982. /6/ Flynn N.J. Directions and Issues in Architecture and Language", Coaputer IEEE, October 1980. /7/ Milutinovió V. A High Level Language Architecture i Bit-Slice-Based Processor and Associated System Software, aicroprocessing and •Microprogramming 12, 1983. /8/ Kogge P.M. The Architecture of Pipelined Computers, McGraw-Hill Book Company, 1981. /9/ Treleaven P. Fifth generation coaputer architecture analysis, in Moto-Oka, 1982, pp. 265-275. /10/ Hwang K., Briggs F. Computer Architecture and Parallel Processing (International Student Edition), McGraw-Hill Book Company, 198t. /11/ Brajak P. Paralelno procesiranje: arhitektura 90-tih godina. Zbornik jugoslovenskog savjetovanja o novima generacijama raSunala, MIPRO 86, Rijeka, Maj 1986, str.33-A6. /12/ Smith K, New computer breed uses transputers for parallel processing, Electronics 56,«,, 1983, pp.67-68. /13/ Mihovllovlfi B., Mavrie S, KolH.a2en P. Transputer-osnovni gradnik vetlprocesorskih sistemov, Informatica 4/86, Ljubljana, Ì986. 14/ Tanaka H., et.al. The preliminary research on the data flow machine and the data base machine as the basic architecture of fifth generation computer systes, in Moto-Oka, 1982. /15/ Gurd J. Developments in dataflow architecture, In SPL Internaclonal, 1962. /16/ Cripps M., Field A.J., Reeve M.J. The design and implementation of Allcet a parallel graph reduction machine, Byte Magazine, June 1985 . /17/ Darlington J,, Reeve M.J. Alicei a multiprocessor reduction machine for the parallel evaluation of applicative languages, ACM Con-fernce on Functional Programming and Computer Architecture, October 1981, pp.65-75. /18/ Inmos. Occam Programming Manuel, Prentice-Hall, 1984. /19/ Kolbezen P. Analiza multiprocesorsVega sistema, US Delovno porodilo Dp-4461, Univerza E.Kardelja, US, Ljubljana, December 1986. /20/ Kolbezen P, Problemi naörtovanja aulti-procesorskega sistema, US Delovno porodio Dp-',462, Univerza E.Kardelja, US, Ljubljana, December 1986. /21/ Foster M.J., Hung H.T. The design of special-purpose VLSI chips, IEEE Coaputer Magazine 13,1, 1980, PP.26-A0. /22/ Seitz C.L. Conccurent VLSI Architectures IEEE Trans, on Coup., Vol.C-33, No.12, Deo. 1984. LANGUAGE CONSIDERATIONS OF PARALLEL PROCESSING SYSTEMS PART TWO: Survey and analysis of concurrent languages UDK 681.3.06:519.6827.683 Peter Kolbezen Institut »Jožef Stefan«, Ljubljana ABSTRACT - The paper Is devoted to outlines oi Ada and Ocoaa, ooaparison of ooaiiunicatlon-oriented features of both languages, and a brief description of the key features of various proposals of soae reaaining aulti-aicroprocesior oriented languages that have been sade in recent years and that the «ajar research issues still remain to be addressed. 0 JEZIKIH SISTEMOV PARALELNEGA PROCESIRANJA, DRUGI DEL; Pregled in analiza konkurenčnih jezikov. Članek je posveden opisu jezikov Ada in Oocan ter primerjavi konunikacijsko orientiranih znaflilnosti obeh jezikov. Podan j« tudi kratek opis bistvenih lastnosti razliänih predlogov nekaterih ostalih veäproce-sorsko orientiranih jezikov, ki se pojavljajo v zadnjih letih, in katerih razvojni uspehi se bodo morali £e izkazati. 1. INTRODUCTION Conventional progranning languages are procedural: they describe, in exhaustive detail, the steps which a computer Bust carry out in order to perforin a particular data processing task. These programming languages in their present form have no place in the fifth generation of computers, but some recent advances, notably the incorporation of parallelism, and the emergence of the language OCCAM, may mean that the thread of development uhich started with Algol in 1957 is continued into the computers of the future. A measure of "controlled" parallelism can be incorporated into procedural programming languages. This approach was pioneered in Concurrent PASCAL /1/, Concurrent C /2/, Pascal-Plus, Modula /3,A/ eto. and has been incorporated into the real-ti«e language ADA /5/. The most fully developed implementation of parallelism into procedural languages is OCCAtl, where each module Is regarded as a oomaunioa-ting sequential process, which may run on ita own, possibly dedicated, processing element. Languages developed to support concurrent processing, allow cooperation between prooesses but reflect their inheritance both fron the "parent" language structure and arohitectural restrictions. In these languages, called procedure-oriented languages /6/, process interaction is based on shared variables. These lan^ages contain prooesses (active objects) and modules, monitors (pasive objects) providing means for ensuring mutual exlusion of concurrent accesses. The primitives of these languages do not match the impleaentation features of the architecture of processor networks. Both message- and operation-orientad languages Ibi are based on message passing but show different views of process interaction. New programming languages like Ada or Occam try to explore structuring concept in concurrent programming. Both languages adapt the process (called task in Ada) as the fundamental notiti-on in program construction but differ significantly in their mechanisms for process coauni-cation and synchronization. A message-oriented language as Occam provides channels and input/output processes as the primary means for processes interaction while an operation-oriented language as Ada provides remote (extended) procedure call for process Interaction. Priai-tives based on these notations can be iapleaen-ted on different basses not only by prograaaing languages but by operating systeas, spadai programs, architectures (microprograms) or usar programs. In order to give soae details of languaga development results, the following sections ara devoted to outlines of ADA and OCCAM, oo«p»ri-son of comaunloatlon-orlented Ada and Occaa features /7/, and a brief description of tha key features of various proposals of some remaining mu11i-nicrcprocessor languages that have been made in recent years. 2. ADA Ada has been developed essentially as a ganaral purpose, high level language standard. To have as wide an application scope as posilbla, constructs have been introduced to help with concurrency. For real-time aplications, Ada provides facilities for multitasking, i.e. for logically parallel threads of execution that can oo-ope-rate in carefully controlled ways. Ta»li« A task is an Independent thread ol execution. Like a package, a task is divided into a specification part and a body. Similarly, the nodularity and abstraction concepts for packages generally apply to tasks. The task specification contains entry declarations that define the procedure-like call that can bs nada to connunicate with the task. The task body contains the code and variables =PROC ident. Cfora.paras3°procesB VAR identifier CC < .identifier CC 21 > —variableCvector of variables) CHAN identifier CC < ,identifier CC 33 > —channel(vector of chanels) VALUE Identifier CC 33 < .identifier CC 33 > —value(veotor of value«) c2-c3- Process i Process 2 processii°declaration process Pig.5.b - Hardware configuration for Occam program example generation application«. It 1» In tune with the fifth generation philosophy of developing the hardware and sofware of a ooaputor «yate« together. Together with the ln«os transputer, it provides a modular hardware/software conpo-nent <.of the type which Is essential in the construction of highly parallel computer systems. The slepllclty of Occac «ake« it .an appealing prospect lor proving the oorrectna«« of processes. Its lack of data structuring facilities, and closeness to the hardware of the computer system mean that Occam 1« likely to be the low-level language of fifth generation of systems, with applications written In a more abstract language. This is the case with the Alice computer. A. COMPARISON OF ADA AMD OCCAM FEATURES 5. THE ANOTHER PROPOSALS OF SOR LANSUAQES MULTI-MICRPROCES- CSP Distributed program /8/ Is defined as processes, with mutually disjoint address spaces, canniunlcating directly using typed aessages. Arrays of processes can be defined. Send and receive of messages are termed as Input and output operations, respectively. Receiver and sender are to be synchronized for message transfer. Non-determinism Is permitted through guarded coanands. Input statements can appear In guards. A parallel command permits the simultaneous initiation and execution of several processes . Features of communication languages arei Unit of concurrency, specification, means of coasu-nlcations, correspondence, naming / De Sarac H. Programming In alcro-Prolog, Ellis Horuood, 1985. /27/ Ennals R., Beginning mioro-Prolog, Eilit Horwood, 1983. /28/ Haare C.A.R. Coaaunicating sequential processes, Connunloatlons ol the ACM 21,8, 1978, pp.71-92. MODEL INFORMACIJSKEGA SISTEMA ZA PODPORO KADROVSKI DEJAVNOSTI UDK 658.3:681.3 Ivo Ščavničar Železarna Jesenice Prispevek podaja opis osnutka informacijskega sistema za podporo kadrovski dejavnosti, oblikovanega v železarni Jesenice. Opis predstavi podatkovni model predlaganega sistema, drevesno razgradnjo funkcij kadrovske dejavnosti, ki jih bo podprl predlagani sistem in opredelitev vloge elementov organizacijske strukture. OpušSena so ostala vprašanja, ki sicer sodijo v osnutek informacijskega sistema: potrebna strojna in programska oprema, predvideni stroški, podrobnejša opredelitev postopkov, izgled in vsebina nosilcev podatkov. INFORMATION SYSTEM MODEL FOR PERSONNEL EVIDENCE ADMINISTRATION APPLICATION. The paper describes conceptual design of information system intended as support for personnel evidence administration, developed in Železarna Jesenice. Description presents data model of suggested system,tree decomposition of functions involved in personnel administration which are supported in designed system and defines the role which elements of organization scheme do have in designed system. Other questions, which otherwise' take part in design of information system such as: demanded HW and SW support, expected costs, description of processes, content and appearance of individual informations, are not discussed. 0. UVOD Računalniško podprti informacijski sistemi s področja kadrovske dejavnosti so gotovo med tistimi, ki jih srečamo najpogosteje. Zato v opisih teh sistemov srečamo marsikaj znanega. Kljub temu je tak opis lahko zanimiv, če gre za sistem oblikovan v zadnjem času, saj razvoj na področju informatike prinaša nove možnosti, iz dneva v dan pomembnejša vloga človeka na vseh področjih dejavnosti pa nove zahteve. Kadrovska dejavnost spada med pomembnejše v Železarni Jesenice, saj sodimo med večje kolektive (nekaj nad 6000 zaposlenih), izobrazbena struktura je raznolika, dokaj živahno menjamo in posodabljamo tehnologijo ob tem pa se večkrat otepamo s pomankanjem ustreznih kadrov. Obstoječe računalniške obdelave s tega področja oblikovane pred mnogimi leti so namenjene predvsem izračunavanju osebnih dohodkov, podpore širši kadrovski dejavnosti pa nudijo le malo. Zato smo se že v letu '81 odločili, da uvedemo nov informacijski sistem, ki bo v večji meri kot obstoječi ustrezal željam in potrebam uporabnikov. Sistem, ki ga pričakuje jo uporabniki naj bi avtomatiziral številna rutinska opravila, omogočal različne analize pomembne za odločanje na področju kadrovkse politike, poenostavil oblikovanje poročil, ki- jih zahtevajo različne ustanove, predvsem pa omogočal čim učinkovitejše razporejanje delavcev na delavna mesta. Da bi zagotovili kar največjo ažurnost podatkov in trenutno dosegljivost vsaj najpomembnejših informacij želijo uporabniki sistem, v katerem se bo čim več postopkov izvajalo interaktivno. Od že izdelanih paketov, ki jih je mogoče kupi- ti smo si ogledali INTERPERS, izdelek podjetja IBM, ki pa ni v celoti ustrezal našim zahtevam. Zato smo se odločili za samostojno izdelavo ustreznih programov. Po začetnih aktivnostih je (zaradi nalog z višjo prednostjo in organizacijskih sprememb na nivoju delavne organizacije) delo zastalo in se nadaljevalo šele v letu '86. Zaključene so vse aktivnosti sistemske analize razen podrobnih opisov za večji del programov, dober del le-teh pa je že kodiran in na voljo uporabniku. Cilj članka je predstaviti nekatere rezultate prve faze oblikovanja novega sistema: podatkovni model, funkcionalni model ter vlogo posameznih organizacijskih enot v predlaganem modelu informacijskega sistema. Vsebina je razdeljena v štiri poglavja. Prvo poglavje je namenjeno opisu podatkovnega modela. Jedro tega opisa predstavlja kanonska shema (mehurčni diagram) vseh relacij, ki v modelu nastopajo. Drugo poglavje predstavi funkcionalno plat predlaganega modela. Poleg sheme, ki prikazuje drevesno razgradnjo funkcij zajetih v sistem, so pomembnejše med njimi tudi kratko opisane. Tretje poglavje prikazuje vlogo elementov organizacijske sheme v predlaganem modelu. Poleg sheme drevesne organiziranosti sta v poglavju podani tudi matriki, ki prikazujeta vlogo vsakega od organizacijskih elementov pri vpisovanju in uporabi podatkov (iz podatkovnega modela) oziroma odgovornost za izvajanje posameznih funkcij (iz funkcionalnega modela). Zaključek poskuša predlagani sistem primerjati z obstoječim in oceniti prednosti, ki jih prinaša. Snov je podana le v osnovnih obrisih, v podrobnosti se ne spušča. Slednje so v preveliki meri odvisne od konkretnih pogojev in potreb v Žele- zarni Jesenice in zato nezanimive za ostale. Opis predlaganega modela in v njem nakazane rešitve pa bodo kljub temu marsikomu, ki se ukvarja z informatiko na področju kadrovske dejavnosti, ponudile vsaj kakšen koristen namig če že ne primer vreden vsaj delnega posnemanja. 1. PODATKOVNI MODEL Podatkovni model predlaganega sistema je relacijski in vse relacije v njem so v tretji normalni obliki v smislu definicij iz (1), (2), (3) ali 17). Jedro opisa predstavlja kanonska shema, v drugem delu pa so kratko opisane relacije. Kanonska shema je podana grafično v obliki mehurčnega diagrama, kot je predlagano v (1), le da je naša shema nekoliko poenostavljena. Mehurčki predstavljajo relacije ne pa, kot je to predvideno v (1), posameznih tipov, podatkovnih elementov ( atributov ). črte, ki povezujejo mehurčke, prikazujejo povezave med posameznimi relacijami oziroma obstoj in "cilj" tujih ključev v posameznih relacijah. Podrobneje: črta, ki povezuje relacijo A z relacijo B in je na strani relacije A opremljena z enojno, na strani relacije B pa z dvojne puščico pove, da za vsak element relacije B (zapis, vrstico v relaciji B) obstaja natanko en element relacije A. Za poljuben element iz relacije A obstaja eden, več ali sploh nobeden element iz relacije B. V primeru take odvisnosti med relacijama A in B je eden od ključev relacije A (navadno primarni ključi hkrati tudi eden od atributov relacije B. 1.1 Kanonska shema Bistvo podatkovnega modela je zajeto v treh entitetah oziroma njim ustreznih relacijah in odnosih, ki veljajo med njimi. Te entitete so: delavec, delovna naloga ali opravilo in usposobljenost (opisi so podani v razdelku 1.2). Odnos med njimi grafično podaja spodnji mehurčni diagram: DELAV^ ZASEDE-^ NOST DNO) T USPOSOBLJENOST. (ZAHTEX /ÖSPOSON VNOST )—- -—{BLJENOST „DNO^/ V^ELAVC^ Slika 1: Podshema mehurčnega diagrama Poleg relacij, ki ustrezajo entitetam delavec, DNO (delavne naloge in opravila) in usposobljenost, v diagramu nastopajo tudi relacije, ki omenjene paroma povezujejo med seboj: zasedenost DNO, ki vsebuje informacijo o razporeditvi delavcev na DNO, zahtevnost DNO, ki pove katere - usposobi jenosti zahteva posamezna DNO in usposobljenost delavca, in za vsakega delavca pove, katere sposobnosti iraa. Tak model naj bi omogočal učinkovito izvajanje osrednjih funkcij kadrovske dejavnosti: analizo potreb, analizo možnosti (razpoložljivih kadrov) in razpore- janje delavcev na delavne naloge in opravila. Informacije potrebne za izvajanje teh funkcij so, nekoliko poenostavljeno, vsebovane prav v "trikotniku" entitet delavec, DNO in usposobljenost ter entitetah, ki jih povezujejo. Gornja shema predstavlja le poenostavljen izvleček iz celotne sheme, ki je prikazana s sliko 2. V razširjenem modelu je relacija usposobljenost zamenjana z več manj splošnimi relacijami: psihološki testi, fiziološki testi in znanje. Temu ustrezno so dodane tudi relacije, ki povezujejo posamezno vrsto usposobljenosti z relacijami DNO in delavec. Celoten model je seveda bistveno obsežnejši, saj kadrovska dejavnost poleg osnovnih funkcij (analiza m'^žnosti in potreb ter razporejanje) izvaja tudi mnogo drugih, ne dosti manj pomembnih. Mehurčni diagram celotnega modela je prikazan na sliki 2. ,Za lažje razumevanje diagrama in opisov relacij še opomba: Relacije v podatkovnem modelu predstavljajo bodisi katerega od tipov entitet pomembnih za kadrovsko dejavnost, bodisi povezavo, ki obstaja med entitetami. Posebnost so povezave med entitetami istega tipa. Značilen primer take povezave v modelih, v katerih nastopa entiteta tipa izdelek, so "sestavnice" (izdelki so enostavni ali sestavljeni iz drugih izdelkov). Tudi v primeru predstavljenega modela je več takih tipov entitet oziroma njim ustrezajočih relacij: mentor (entiteta tipa delavec) spremlja delo pripravnikov (tudi entitete tipa delavec), delovna naloga je enostavna ali sestavljena iz več opravil, več testov sposobnosti se združuje v baterije testov ipd. Relacija v kateri obstajajo notranje povezave o katerih bi radi shranjevali infromacijo, zahteva v podatkovnem modelu dodatno relacijo. Ključ slednje dobimo tako, da sestavimo (sklopimo) ključ relacije, katere notranjo povezavo podaja s samim sabo. Za relacije, ki podajajo notranje povezave neke druge relacije, bomo v opisih uporabljali izraz struktura, ki se je udomačil v našem računskem centru. 1.2 Opis relacij Čeprav so že sama imena relacij dovolj zgovorna in njihove medsebojne povezave razvidne iz sheme, za boljše razumevanje modela dodajamo kratke opise posameznih relacij. V opisih so v oklepajih, ki slede imenom relacij, našteti najpomembnejši podatkovni elementi. Podčrtani so tisti, ki sestavljajo identifikator (ključ). DELAVEC (delavska številka, ime in priimek, rojstni podatki, spol, enotna matična številka, naslov, narodnost,...) je relacija, ki vsebuje podatke o osebah tako ali drugače pomembnih za kadrovsko dejavnost v ŽJ. Ne vsebuje le zaposlenih ampak tudi štipendiste, upokojence, vse, ki kandidirajo za sprejem v žJ, vse ki so opravili sprejemni postopek itd. S.DELAVEC (del.številka,del.številka,vrsta odnosa, datum,...) je relacija, ki omogoča shranjevanje informacij o različnih povezavah med delavci, kot je na primer povezava mentor - pripravnik (pomembno za spremljanje izvajanja pripravništva) ali sodniški odnos (pomembno za uveljavljane določenih pravic delavcev). Predstavlja torej strukturo za entitete vrste "delavec". Zapis v tej relaciji lahko predstavlja tudi začasno nalogo (projekt). DNO (šifra DNO, naziv, nadrejen org.element, normativ števila zaposlenih,plačilna grupa,..) je relacija, ki shranjuje podatke o delovnih nalogah in opravilih. Tudi ta relacija je SLIKA '2: Mehurčnl diagram strukturirana:delavna naloga je bodisi enostavna (je opravilo) ali sestavljena iz več opravil. Delokrog, ki tudi spada v to vrsto entitet, pa je sestavljen iz več nalog. S.DNO (Šifra DNO, šifra DNO, delež opravila v nalogi,...) je relacija, ki podaja strukturo relacije DNO. ODLOČBA (delavska Številka,šifra DNO,datum odločbe,številka odločbe predvideno število ur na mesec, dejansko Število ur v obračunskem mesecu, predviden datum zaključka odločbe, dejanski datum zaključka,...) Ta relacija nosi podatke o razporeditvi delavcev na posamezne DNO. Vsak (aktivni) delavec ima vsaj en zapis v tej relaciji,lahko pa tudi več. To pomeni, . da bomo shranjevali tudi podatke o preteklih razporeditvah delavca . da je delavec lahko razporjen na več nalog hkrati, z različnim predvidenim številom ur za posamezno nalogo. ORG.ENOTA (šifra org.enote,tip,nivo,naziv enote,...) vsebuje podatke o elementih organizacijske sheme v ŽJ. S.ORG (šifra org.enote,Šifra (nadrejene)org, enote,...) podaja organizacijsko shemo ŽJ. Vključitev te relacije v podatkovni model med drugim omogoča izvajanje različnih obdelav oziroma pridobivanje informacij za poljuben organizacijski element (obrat, delavno skupino,TO?.D, DS itd) in združevanje (agregiranje) podatkov po različnih nivojih. PTEST (šifra testa,naziv,sred, vrednost, mejne vrednosti,...) vsebuje podatke o psiholoških testih, ki jih ob sprejemu in premeščanjih izvajamo v žJ. S.PTEST (šifra testa,šifra testa, vrsta povezave,...) podaja strukturo relacije PTEST. Poleg informacije o združevanju testov v baterije vsebuje ta relacija tudi informacijo o možnosti zamenjave (ekvivalence) med testi. FTEST analogno kot PTEST za fiziološke in zdravstvene teste. S.FTEST podaja strukturo fizioloških testov. ZNANJE (šifra znanja, naziv, čas šolanja,stopnja izobrazbe, usmeritev, poklic,...) je relacija, ki združuje več vrst entitet:šolsko izobrazbo, znanje (npr. predmet določenega izobraževalnega programa ), tečaj, seminar ipd. S.ZNANJE (šifra znanja,šifra znanja, vrsta povezave,...) podaja strukturo za relacijo ZNANJE: za, šole, tečaje predmete iz njihovega programa, vertikalno povezovanje šol različnih stopenj (možnost nadaljnega šolanja) ipd. TEČM (šifra znanja,planiran datum izvedbe, . . . ) je relacija, ki omogoča načrtovanje in spremljanje izvedbe raznih, predvsem internih izobraževalnih oblik. POKLIC (šifra poklica, naziv,...) pojasnjuje poklic pridobljen z določeno izobraževalno obliko in omogoča razlikovanje med obema pojmoma. PTEST DNO (šifra p.testa,šifra PNO, mejne vrednosti,...) pove katere teste morajo opraviti zaposleni na določenem delavnemu mestu in v katerih mejnih vrednostih mora biti rezultat. PTEST DELAVEC (šifra p.testa,delavska številka, rezultat,...) podaja rezultate posameznih merjenj s fiziološkimi testi. ZNANJE DNO (šifra znanja,šifra DNO,...) je relacija, ki pove katera znanja so zahtevana za opravljanje posameznih DNO. ZNANJE DELAVEC (šifra znanja,delavska številka, datum začetka šolanja, datum zaključka,dosežen uspeh,...) vsebuje podatke o družinskih članih zaposlenih delavcev. SOCIALNA SKUPINA (delavska številka,šifra skupine , datum vpisa, kategorija,...) vsebuje informacijo, ki omogočajo nekatere analize s socialnega področja, kar je pomembno za določene zunanje ustanove pa tudi za ustrezno obravnavanje in varovanje pravic delavcev znotraj organizacije. Združitev teh podatkov v posebni relaciji omogoča tudi boljšo zaščito (tajnost) podatkov s tega področja. j, KRITERIJ STAN.TOČKOVANJA (šifra, naziv,utež,...) predtsvlja seznam kriterijev, ki jih upoštevamo pri stanovanjskem točkovanju. Utež je podatek, ki pove v kolikšni meri se upošteva kriterij pri izračunu skupnega števila točk. STAN.TOČKE (delavska številka,število točk,...) KKB (šifra HKB,naziv, grupa, število obolelih, oznaka interaktivnosti, signalna vrednost,...) predstavlja šifrant bolezni po mednarodni klasifikaciji bolezni. V to relacijo so vključeni tudi podatki (naprimer trenutno število obolelih), ki jih sicer lahko izpeljemo iz relacije OBOLELI To je redundanca za katero pa smo se odločili, da omogočimo interaktiven dostop do teh podatkov To omogoča delavcem v obratni ambulanti pravočasno reagiranje na razne pojave epidemij ali zdravju škodljivih sprememb v delavnem okolju. OBOLELI (delavska številka,MKB,dat., dat zaključka bolovanja, vzrok,...) vsebuje informacijo o obolelih delavcih. Te informacije se po zaključku bolovanja in obdelavi s področja OD brišejo, razen za tiste šifre MKB, ki imajo to (v relaciji MKB) posebej označeno. S tem je mogoče kvalitetnejše obravnavanje bolnikov s kroničnimi boleznimi . 2. FUNKCIONALNI MODEL Poglavje o funkcionalnem modelu je razdeljeno v dva razdelka. Prvi prikazuje razgradnjo kadrovske dejavnosti. Prikaz je enostaven - s pomočjo drevesne strukture, povezave, ki obstajajo med posameznimi funkcijami niso prikazane. To pomanjkljivost delno odpravlja drugi razdelek, ki v matrični obliki podaja povezavo med podatkovnim in funkcionalnim modelom. 2.1 Drevesna shema in opis posameznih funkcij Prvi nivo razgradnje kadrovske dejavnosti kot smo ga ugotovili v ŽJ predstavlja spodnja shema : A zagotavljanje kadrov kadrovska dejavnost- B varovanje pravic delavcev C oblikovanje poročil za zunanje organizacije A. Zagotavljanje kadrov zajema kadrovsko dejavnost v ožjem pomenu: načrtovanje potreb, razporejanje in razvoj oziroma usposabljanje delavcev. Podrobnejšo razdelitev kaže shema: 1. analiza stanja in potreb 2. analiza možnosti 3. ugotavljanje zahtevnosti DNO 4. načrtovanje kadrovskih potreb — načrtovanje — A. zagotavljanje kadrov 2. zagotavljanje delavcev za opravljanje dela 3. razvoj delavcev (usposab. 1. urejanje delavno pravnih razmerij (sprejem, odhod...) 2. ugotavljanje sposobnosti 1. načrtovanje in spremljanje priprav. 2. organizacija internega izobraževanja 3. • izdelava predlogov za napredovanje 4. ■usmerjanje in spremljanje šolanja delav ' . 5. • štipendiranje Slika 3: Razgradnja funkcije "zagotavljanje kadrov" A.1.1 Analiza stanja in potreb sloni na podatkih o DNO in njihovi zasedenosti, njen rezultat pa je pregled DNO, ki so neustrezno zasedene bodisi glede na normativ ( predvideno število delavcev ) bodisi glede na zahtevane sposobnosti. V relaciji DNO so vpisane tudi delavne naloge in opravila, ki jih šele načrtujemo ( glede na organizacijske spremembe ali nove investicije ). V tem primeru analiza daje potrebe po novih kadrih oziroma pregled delavcev, ki bodo po ukinitvi določenih DNO ostali nerazporejeni. ■ A.1.2 Analiza možnosti ugotavlja sposobnosti delavcev (znanje,psihološke, fiziološke sposobnosti), kandidatov za sprejem in štipendistov, ugotovitve primerja z rezultati analize stanja in potreb ter oblikuje predloge razporeditve, premestitve in dodatnega usposabljanja delavcev. Ena od nalog, ki spadajo v ta sklop funkcij je izdelava "optimalnega" predloga razporeditve s pomočjo metod linearnega programiranja. A.1.3 Ugotavljanje zahtevnosti DNO je, kot pove že ime,namenjeno ugotavljanju sposobnosti, ki jih mora imeti delavec razporejen na določeno delavno nalogo oziroma opravilo. Vloga informacijskega sistema pri zagotavljanju te funkcije je omejena predvsem na vnos in shranjevanje podatkov o sposobnostih (znanja, testi), zahtevnost posameznih DNO ter izpis teh podatkov po različnih kriterijih, iskanje sorodnih DNO in določanje zahtevnosti sestavljenih DNO. A.1.4 Načrtovanje kadrovskih potreb in analiza kadrovskih gibanj je funkcija namenjena oblikovanju predvsem takih informacij, ki pomagajo pri odločanju na strateškem nivoju: kakšna je fluktuacija, kateri so vzroki zanjo, kakšno bo predvidoma gibanje kadrov v posameznih obdobjih in kakšne bodo potrebe (izdelava projekcij), kako se spreminja izobrazbena struktura kadrov, kakšna je fluktuacija po posameznih profilih. A.2 Zagotavljanje delavcev za opravljanje dela je sklop funkcij, ki podpirajo predvsem operativne naloge na ožjem področju kadrovske dejavnosti: vnos podatkov o novosprejetih delavcih, popravljanje podatkov o delavcih, izpis odločb o razporeditvi oziroma premestitvi, vnos podatkov o štipendistih in kandidatih za sprejem, oblikvoanje razpisov za prosta delavna mesta,. Večina teh nalog se bo izvajala interaktivno, k^r je za določena opravila na operativnem nivoju nujno. A.3 Razvoj delavcev je funkcija, ki jo informacijski sistem podpira predvsem z: vođenjem evidenc o možnostih nadaljnega izpopolnjevanja in delavcih vključenih v razne oblike izobraževanja, analizo potreb po usposabljanju, s pomočjo pri spremljanjem izvajanja pripravništva ipd. Sem spada tudi spremljanje inovativne dejavnosti delavcev in oblikovanje predlogov o možnem napredovanju glede na uspehe pri usposabljanju. B. Informacijsko podporo zagotavljanju in varstvu-pravic delavcev smo razdelili v naslednje podfunkcije (glej sliko 4): B.l Prvi sklop funkcij s področja varstva pravic je namenjen večanju varnosti in zmanjševanju škodljivih vplivov pri opravljanju posameznih DNO. Tudi tu je vloga informacijskega sistema omejena predvsem na shranjevanju podatkov in oblikovanju poročil: vodenje evidenc o zaščitnih sredstvih potrebnih na posameznih DNO, o oskrbljenosti delavcev s temi sredstvi, o nezgodah in vzrokih zanje, o vrsti in teži poškodb pri nezgodah, o škodljivih vplivih v posameznih okoljih in o delavnih mestih z be-nificirano delavno dobo. Zahtevnejša naloga pa je analiza teh podatkov s ciljem odkrivanja sredin z večjo pogostostjo nezgod, njihovih B. varstvo in zagotavljanje pravic delavcev 1. varstvo -pri delu 2. socialno varstvo 3. zdravst. varstvo 4. dviganje — nivoja družbenega standarda 1. zagotovitev zaščitnih sredstev 2. spremljanje in analiza poškodb in nezgod 3. analiza vpliva dela na okolje (ekologija) 1. zagotavljanje socialnega varstva 2. vodenje evidenc o posebnih soc. skupinah 1. preventivno 2. kurativno 1. stanovanjsko gospodarstvo 2. spremljanje športno rekreativne dejavnosti 3. spremljanje in pomoč pri načrtovanju oddihov 4. urejanje prevozov na na delo 5. ■ obdelava osebnih dohodkov 6. - vodenje evidenc o samoupravnih in družb, polit, aktivnostih Slika 4: Razgradnja funkcije "varstvo in o zagotavljanje pravic delavcev" značilnosti ter preverjanje hipotez o vzrokih in pogojih, ki privedejo do nezgode. B.2 je sklop nalog namenjen zagotavljanju socialnega varstva delavcev ter hranjenju in obdelavi podatkov o posebnih socialnih skupinah, informacijski sistem pa podpira operativne naloge oddelka, ki oe ukvarja s tem področjem in oblikuje razne statistične analize, B.3 Ena pomembnejših funkcij v sklopu kadrovske dejavnosti je zagotavljanje zdravstvenega varstva, tako kurativnega kot preventivnega. Predvidoma naj bi obdelave s tega področja omogočale poleg običajnega izračuna nadomestil za osebni dohodek tudi: . različne analize o obolelosti delavcev . pravočasno detekcijo naraščanja obolevnosti z določeno diagnozo. Tovrstne informacije so se izkazale kot pomembne za odpravljanje vzrokov bolovanj. ( V DO Sava-Kranj so s spremljanjem informacij te vrste dosegli pomembne uspehe pri zmanjševanju obolevnosti (6) ) . učinkovito spremljanje in obravnavo delavcev s kroničnimi obolenji . izdelavo predlogov premestitev za delavce z zmanjšano delavno sposobnostjo in oblikovanje programa rehabilitacije oziroma prekvalifikacije . izdelavo programov preventivnih pregledov z upoštevanjem zdravstvene zahtevnosti delavnih . mest in ogroženosti posameznih delavcev . arializo vpliva posameznih delavnih okolij na zdravje . interaktivni vpogled v zdravstveno zgodovino posameznega delavca B.4 Podfunkcije združene v funkciji "dviganje družbenega standarda" so dovolj pojasnjene s- samo shemo. Posebej omenimo le naloge informacijskega sistema na področju stanovanjskega gospodarstva. poleg vođenja evidenc o bivalnih pogojih delavcev, spada v to področje tudi oblikovanje prednostnih list za dodelitev stanovanjskih pravic in izračun višine kreditov za stanovanjsko gradnjo. Glede na veliko število prosilcev smatramo, da je računalniška podpora upravičena. B.5 Obdelava osebnih dohodkov je bolj ali manj taka, kot jih poznamo v drugih delavnih organizacijah. Vključenost v sistem za podporo kadov-ski dejavnosti, uporaba sodobnejše podatkovne baze in interaktivni vnos podatkov tudi temu področju prinaša večjo prožnost in ažurnost, možnost kvalitetnejših analiz ter manj podvajanja pri vnosu podatkov. B.6 Samoupravno komuniciranje je področje, ki ga do sedaj nismo podpirali z računalnikom. Predlagani model predvideva vsaj najnujnejše: vodenje podatkov o samoupravnih organih in organih družbeno političnih organizacij, vodenju podatkov o vključitvi delavcev v te organe, vođenju podatkov o delu delegacij in enostavnejše obdelave teh podatkov. C. V skupini "izdelava poročil za zunanje organizacije" smo združili, kot pove ime, oblikovanje zakonsko določenih ali drugače dogovorjenih poročil oziroma statističnih analiz za potrebe raznih zunanjih organizacij, kot so zavod za statistiko, skupščina občine, sis za zaposlovanje itd. 2.2 Povezava med funkcionalnim in podatkovnim modelom Povezava med obema predlaganima modeloma je prikazana v matrični obliki (tabela 1). Vrstice v matriki predstavljajo funkcije iz funkcionalnega modela, stolpci pa relacije iz podatkovnega modela. Oznake na presečiščih vrstic in stolpcev v matriki pa povedo, kakšen odnos velja med funkcijo (v vrstici) in relacijo ( v stolpcu). Pri tem je pomen posameznih oznak naslednji : V ... spraševanje - funkcija le sprašuje po vrednostih podatkovnih elementov (atributov) v relaciji K ... kreiranje -funkcija vpisuje nove n-terice (vrstice) v relacijo M ... spreminjanje - funkcija spreminja vrednosti podatkovnih elementov (atributov) v relaciji.' 3. VLOGA ORGANIZACIJSKIH ELEMENTOV Realizacija obeh predlaganih modelov bo bolj ali manj vplivala na delo in naloge posameznih organizacijskih enot. V tretjem poglavju poskušamo vsaj grobo prikazati ta vpliv s pomočjo dveh matrik: prva prikazuje odgovornost organizacijskih enot do vpisovanja oziroma čitanja podatkov v bazi podatkov, druga pa odgovornost pri izvajanju funkcij. Organizacijske enote, vključene v kadrovsko dejavnost so prikazane s spodnjo drevesno shemo (glej sliko 5). 1. — oddelek za kadre 2. — oddelek industrijske psihologije 3. oddelek varstva pri delu in okolja 4. — oddelek zdrav, in soc. varstva 5. — oddelek za izobraževanj. 6. — oddelek za družbeni standard 7. — center za . preučevanje samoupr. in inform. 8- disciplinska komisija organizacijske enote vključene v kadrovsko dejavnost 1. ■ kadrovski sektor 2. — sektor za ekonomiko in organiz. 3. 1. oddelek za organizacijo 2. planski odd. 3. oddelek za študij dela in nagrajev. - finančno računovodski sektor (oddelek za obračun OD) 4. -TOZD-i 5. -obratna ambulanta 1. - referent za kadre 2. -odbor za del. razmerja 1. -kurativna ambulanta 2. -ambulanta za medicino dela in športa .6. -poslovodni odbor 7. —zunanje organizacije Slika 5; Organizacisjki elementi vključeni v kadrovsko dejavnost relacije U 04 u H U i U rt t tn g M D x g g g rt 1 tn 3 U 5 iJ < a u § u Q u o 3 O H a Š g o fj o o S a g z M Z o o ^ H O) - m m o Q o H u X 5 g tA u < h h . hI to u M s M u U m 63 U u U H M H z z ce. a iJ > E-i EH ^ E- •-5 "D M 3 M U u M m (0 ^ S g tü 3 m m W M Z z z u > > H X > < U O Cd < Z 01 < P Cd > tn iJ < Z >J (d > > < o Cd ►d «< Cd O «C «S O Cd C2 KJ U EH Q Cd O J O ►d z Cd a o ». H Z u Z Cd Q Q cn h H tn k ca ca O a Q D Q Cd Cd t< K u Z < TJ I-: 01 Cd M M s z M H u n h k h Cd Cd Cd u EH M M z Z C« o: pJ > KJ H EH H H EH H M M u U M o Cd Cd < < Cd < o U5 tfl CA U} 02 tn Z Z ►d < ■O X »Ii Cd H H 3 2 hJ ►J O 6 K U Cd Cd Cd Cd < < « . o u ž S s m M D m M a ä M a a a g * IN "i < o Q o tì § rt o O H u D § M: a O rt N O < Z CA o B tn < a 6H rt M o H K M en U) O g z M o M N rt rt Z O H 6- rt 1 a M :<; O z < )t3 iJ M « M < « Z M o U U u > H M S (V S K M H g M > I-) ä e-1 M m m >J K £H o Z u . 0 U u . W U O S a ij rt a a a O O a< Q a a b (S 0 U) a a < o O N M a a o U O D § o o o > N o M O u o 0. o o K o 0. M funkcije A.1.1 Analiza stanja in potreb 2 Analiza možnosti 3 Ugotavljanje zahtev. DNO 4 Načrtovanje potreb A. 2.1 Urejanje del. razmerij 2 Ugotavljanje sposobnosti A. 3.1 Pripravništvo 2 Interno izobraževanje 3 Predlogi za napredovanje 4 šolanje delavcev 5 štipendiranje B.1.1 Zaščitna sredstva 2 PoSkodbe, nezgode 3 Ekologija B.2.1 Socialno varstvo 2 Posebne socialne skupine B.3.1 Preventivno zdravstvo 2 Kurativno zdravstvo B,4.1 Stanovanjsko gospodarstvo 2 Rekreacija, šport 3 Oddihi 4 Prevozi B.5 OD B.6 Samoupravne aktivnosti C Poročila za zunanje org. O S OS S S S O O S O S O S O S s s s o o o s s o o o o s o s s s s s s SSS s o SSS o SSS s s s s s ss s s s s s s s s s o o s s s s tabela 3: Matrika odgovornosti za izvajanje funkcij Model kakršen koli pač je, ne more dokazati svojih kvalitet, dokler se ne izkaže kot slika nekega konkretnega, uspešno delujočega sistema. Kljub temu, da opisani model take potrditve še nima, menim, da so opisane rešitve lahko v pomoč vsem, ki se ukvarjajo z načrtovanjem računalniško podprtih informacijskih sistemov za podporo kadrovski dejavnosti. Predvsem to velja za skrbno načrtovan podatkovni model, saj se nabor podatkov s področja kadrov od ene do druge ( delavne ) organizacije ne razlikuje kaj dosti. Uporabljena literatura in gradivo: (1) J. Martin: Principles of Data-Base Management, ( Prentice -Hall, Ine, 1976 ) (2) C. J. Date: A Guide to DB2 ( Addison - Wesley, 1983 ) (3) M. Krisper, F. žerdin: Informacijsko inženirstvo ( FE, Ljubljana, 1985 ) (4) I. Svetlik in sodelavci: Naloge kadrovske dejavnosti v OZD ( dopisna delavska univerza Univerzum, Ljubljana, 1978 ) (5) B. Čeh, I. ščavničar: Informacijski sistem preventivnega zdravstvenega varstva ( interno gradivo tj, 1985 ) (6) J. Vadnjal: Računalniški model spremljanja in analize obolevnosti in bolniškega staleža v tovarni Sava Kranj ( Sava Kranj, Kranj 1983 ) (7) S. Alagić: Relacione baze podataka, (Svijetlost Sarajevo, 1984) JEDNO PROŠIRENJE BIBLIOTEKE R A T F O R - a POTPROGRAMIMA ZA OBRADU ALFANUMERIČKIH VELIČINA UDK 681.3.068 Toma Janoš Institut za mernu tehniku i upravljanje, Fakultet tehničkih nauka u Novom Sadu PRIKAZ: U ovom radu je prikazan jedan pristup obradi alfanumeričkih veličina na programskom jeziku FORTRAN. Potprogrami za realizaciju ovog pristupa napisani su na programskom jeziku preprocesora za FORTRAN, RATFOR-u, i testirani su prilikom Izrade kros-asemblera za mikroprocesor Z80, koji je takodje pisan na RATFOR-u. ABSTRACT: The paper describes an approach in processing alphanumerical values using FORTRAN, and a realisation of this approach through subroutines written in RATFOR, the FORTRAN preprocessor. These subroutines are tested in a cross-assembler for Z80, also written in RATFOR. UVOD U ovom radu je izložena jedna od primena ideje ds se efikasnost pisanja programa povećava pridienom gotovih i proverenih opštih i funkcijskih potprograma /1/. Ovaj pristup implicira da se, pri pisanju potprograma iz nekog većeg skupa programa, pojedini potprogrami pišu tako da budu medjusobno nezavisni i Jto opštije namene. Potprogrami pisani po ovom načelu mogu se vrlo efikasno koristiti pri razvoju drugih programa 1 predstavljaju programski alat, koji vi-5e korisnika može da primeni pri reSavanju problema odredjenog tipa. Požto je RATFOR (rac i ona 1 ni ■ FORTRAN ) pre-procesor, koji je ugradjen na raCunaru EÌ-H6/53 u Institutu za mernu tehniku 1 upravljanje, izveden tako da može programe Iz sistemske biblioteke da uključuje putem INCLUDE naredbi /3/, u razvijani skup programa, proširenje biblioteke RATFOR-a potprogramima opšte namene značajno olakšava pisanje novih programa. Ovim se vreme potrebno za razvoj 1 testiranje softwa-re-a bitno skraćuje, što smanjuje troškove i povećava efikasnost primene digitalnog računa-ra. . Potprogrami koji su prikazani u ovom radu su proistekli iz primene RATFOR-a (odnosno FORTRAN-a) na nenumeričke obrade, prilikom izrade kros-asemblera za mikroprocesor Z80, i odnose se prvenstveno na rad sa alfanumeričkim nizovima - s tring-ovima. Osnovne postavke o upotrebi string-ova u RATFOR-u date su u prvom poglavlju, u kojem je opisan i skup ranije postojećih potprograma iz biblioteke RATFOR-a. Ovi potprogrami su, poslužili kao osnova za proširenje opisano u drugom poglavlju, gde je svaki opšti 111 funkcijski potprogram dodat u RATFOR biblioteku detaljno opisan. Algoritmi potprograma su dati u obliku pseudokoda . 1. PREDSTAVLJANJE ALFANUMERIČKIH VELIČINA 1.1. Uobičajeni pristup obradi alfanumeričkih veličina Kod primene računara za nenumeričke obra- de važan je način komuniciranja programa sa okolinom, to jest način unosa 1 ispisa podataka u/1z datoteka računarskog sistema. Kod uobičajene upotrebe FORTRAN-a ulaz i Izlaz podataka, pa i alfanumeričkih veličina, vrši se u pakova-nom obliku /2/. Ovaj pristup nije najpogodniji za pisanje programa kojima se obradjuje neki tekst, jer su redovi u tekstu obično razl1či te dužine i sa različitim brojem reči. Kod pisanja kros-asemblera ovakav način unosa i ispisa vrednosti u programskom jeziku FORTRAN (ne treba'zaborav i ti da je RATFOR pre-procesor za FORTRAN) nije najpogodniji, pošto su obrade uglavnom na nivou jednog alfanumeri-ka. 1.2. Predstavljanje alfanumeričkih veličina u obliku string-ova Da bi se proširile mogućnosti primene FORTRAN-a i na nenumeričke obrade u biblioteku RATFOR-a je ugradjeno nekoliko potprograma kojima je'omogućen unos 1 Ispis jednog alfanume-rika na datoteku (file) sa odredjenim logičkim brojem (Ifn). Osnovu ovog pristupa čine dva potprograma /1/: GETCH - koji iz datoteke, odredjene logičkim brojem, unosi jedan alfanumerik u ulazno/izlazni buffer 1 PUTCH - koji u ulazno/Izlazni buffer datoteke odredjene logičkim brojem, upisuje jedan alfanumerik ili, ako je taj alfanumerik NEHLINE, ispisuje sadržaj buffer-a na datoteku. Očigledno, ovakav pristup podrazumeva da se unos 1 ispis podataka obavlja isključivo preko alfanumeričkih veličina, što treba imati u vidu kod ulazno/izlaznih operacija. Veličina polja u ulazno/izlaznom redu ovde nije odredjena nekim formatom, pa je označavanje kraja str1ng-a moralo biti rešeno drugačije. Izabrano je rešenje, preporučeno u /1/, da se kraj strlng-a označi nekom posebnom vrednoš-ću EOS (end of string) koja ne pripada skupu znakova računara 1 na računaru E1-H6/53 iznosi -2. Znakove veličine se u RATFOR-u pamte kao celobrojne veličine (INTEGER). Tako, string u *) Radjeno u okviru postdiplomskih studija, na predmetu RACUNARI. RATFOR-u ima oblik I integer niz | EOS Da bi se niz a 1 fa nume ri ka, koji čini jedan red u datoteci, razlikovao od RATFOR string-a, na njegov kraj se pre znaka EOS stavlja znak NEWLINE iz skupa znakova računara. Dakle, niz a 1 f anuuieri ka , koji čine jedan red ima oblik I integer niz NEWLINE EOS Ovako zamišljeno komuniciranje programa sa okolinom omogućava onome ko piše program veliku slobodu u oblikovanju unosa i ispisa podataka. Medjutim, ovo takodje podrazumeva i pretvaranje svih veličina, koje treba ispisati, u nepakovani oblik, odnosno RATFOR string, kao i pretvaranje unetih veličina u nepakovanom obliku u pakovani, ako Je to potrebno. Za pretvaranje veličina iz Jednog u drugi oblik potrebno je, dakle, obezbediti odredjen skup pot-programa, koji bi svi korisnici RATFOR-a imali na raspolaganju. Odredjen broj potprograma sa ovom namenom je postojao u biblioteci RATFOR-a. Ovi potpro-grami, koji čine osnovu proširenja RATFOR biblioteke opisanog u ovom radu, biće objašnjeni u sledečem odeljku. 1.3. Osnovni skup potprograma iz RATFOR biblioteke za rad sa string-ovima Potprogrami iz RATFOR biblioteke, koji če ovde biti opisani, se, prema nameni, mogu podeliti u tri grupe. Prvoj pripadaju potprogrami za unos i ispis podataka: getch, putch, getlin, putlin, outnum. Drugu grupu 61ne potprogrami za rukovanje znakovnim nizovima: equal, length, scopy, a treču potprogrami za pretvaranje veličina iz jednog oblika u drugi: itoc, cvtstr, strcvt. Prikaz namene i upotrebe ovih potprograma dat je prema navedenoj podeli. 1.3.1. Potprogrami za unos i Ispis podataka 1.3.1.1. Integer function getch (c, Ifn) Ovaj funkcijski potprogram kao svoju vrednost i vrednost argumenta c vraća sledeči alfanumerik iz datoteke sa logičkim brojem Ifn. Ime getch mora b1t1 navedeno u opisnim naredbama pozivnog programa kao INTEGER. Način pozivanja potprograma je char = getch (c, 1fn). 1.3.1.2. Subroutine putch (c, Ifn) Ovaj potprogram upisuje alfanumerik c u ulazno/izlazni buffer. Po upisivanju znaka NEWLINE slog upisan u buffer se upisuje u datoteku sa logičkim brojem Ifn. Način pozivanja potprograma je call putch (c, Ifn). 1.3.1.3. Integer function getlin (line, Ifn) Ovaj funkcijski potprogram celobrojnog tipa upisuje red Iz datoteke sa logičkim brojem Ifn u string line. Kao svoju vrednost potprogram vraća broj elemenata string-a ili vrednost EOS, ako je unet prazan red. Ime getlin mora biti navedeno u opisnim naredbama pozivnog programa kao INTEGER. Način pozivanja potprograma je len = geti 1n (1 ine, Ifn) . 1.3.1.4. Subroutine putlin (line, Ifn) Ovaj opšti potprogram upisuje red, sadržan u stringu line, na datoteku sa logičkim brojem Ifn. Način pozivanja potprograma je cal 1 puti in (line, Ifn). 1.3.1.5. Subroutine outnum (n, len, Ifn) Ovaj opšti potprogram pretvara broj u pa-kovanom obliku u RATFOR string sa prikazom u decimalnom brojnom sistemu i ispisuje ga u polje dužine len u ulazno/izlazni buffer datoteke sa logičkim brojem Ifn. Ako je dužina prijemnog polja pozitivan broj, broj n se pri ispisu poravnava desno, ako je len negativno poravnava se levo, a ako je len=0 nema poravnavanja. Način pozivanja je call outnum (n, len, Ifn). 1.3.2. Potprogrami za rukovanje string-ovima 1.3.2.1. Integer function equal (stri, str2) Ovaj funkcijski potprogram uporedjuje dva RATFOR string-a. U opisnim naredbama pozivnog programa mora biti naveden kao INTEGER. Ako su string-ovi jednaki, equal prima vrednost YES, Inače je NO. Vrednosti YES i NO korisnik može odrediti u DEFINE naredbi RATFOR-a /3/. Način pozivanja potprograma je ind = equal (stri , str2). 1.3.2.2. Integer function length (str) Ovaj funkcijski potprogram vraća kao svoju vrednost dužinu RATFOR string-a str, bez znaka EOS. Način pozivanja potprograma je 1en = 1ength (str ). 1.3.2.3. Subroutine scopy (start,from,target, to) Ovaj opšti potprogram preslikava RATFOR string start od znaka sa indeksom from u string target od znaka sa indeksom to. Način pozivanja potprograma je call scopy (s ta rt,from, target, to). 1.3.3. Potprogrami za pretvaranje stringeva 1.3.3.1. Integer function itoc (int,str,s 1ze) Ovaj funkcijski potprogram pretvara celo-brojnu veličinu int u pakovanom prikazu u njen nepakovani prikaz (RATFOR string) str u decimalnom brojnom sistemu. Parametar size je najveća dimanzija string-a str. Kao svoju vrednost ovaj potprogram vraća dužinu string-a. Način pozivanja potprograma je len = itoc (int,str,size). 1.3.3.2. Integer function cvtstr (holl,str) Ovaj funkcijski potprogram pretvara tekst u znacima navoda holl u RATFOR string. Kao svoju vrednost potprogram vrača dužinu RATFOR string-a. Način pozivanja potprograma je ind = cvtstr (holl ,str). 1.3.3.3. Subroutine strcvt (s tr,del i m,ho 11 ) Ovaj opšti potprograni pretvara RATFOR string str u FORTRAN prikaz hell, tipa CHARACTER. Natin upotrebe potprograraa je call strcvt (str,del im,hol 1). Proširenje RATFOR biblioteke novim pctpro-gramima, opisano u narednom poglavlju, ima za osnovu izložene osnovne postavke i opisane već postojeće potprograme. 2. PROŠIRENJE BIBLIOTEKE RATFOR-a Potprogrami, kojima je proSiren opisani osnovni skup potprograma RATFOR biblioteke, su napisani prilikom izrade kros-asemblera za mikroprocesor' Z80. Ovo je nametnulo i neke posebne zahteve. 2.1. Nenumeričke obrade pri izradi kros-asem- b1 era Obrada teksta koja je potrebna kod izrade kros-asemblera Ima odredjene specifičnosti. To su, pre svega, potreba za predstavljanjem brojeva u raznim brojnim sistemima (binarno, ok-talno, decimalno i heksadec 1 ma 1 no ), za izdvajanjem reči odredjene dužine iz reda izvornog asemblerskog programa, za umetanje jednog string-a pre, u sredinu i iza drugog string-a itd. Da bi se zahtevi za ovakvim obradama, zadovoljili, bilo je potrebno razviti odgovarajuću programsku podršku. Detaljan opis potprograma koji ispunjavaju i ovakve zahteve dat je u daljem tekstu. 2.2. Skup potprograma kojima je proširena RATFOR biblioteka Potprogrami za obradu alfanumeričkih veličina. koji su dodati u biblioteku RATFOR-a se, prema nameni, mogu podeliti slično ranije navedenoj podeli već postojećih'potprograma. Dakle, dodati su potprogrami za unos 1 ispis podataka: nextw, outi, douti , dfouti; potprogrami za ru-' kovanje RATFOR s tring-ov ima : firstc, addstr, fill, prefil, midstr, skipbl, cmphr 1 potprogrami za pretvaranje iz jednog oblika u drugi: 1tos, stol, ditos, dstoi. Navedeni potprogrami su detaljno opisani po ovim grupama. 2.2.1. Potprogrami za unos i ispis 2.2.1.1. Integer function nextw (in,i,limit, out) Ovaj funkcijski potprogram uzima iz string-a in, koji je unet pomoću potprograma getlin, narednu reč ograničene dužine. Ovde je reč definisana kao niz alfanumerika ograničen 'znakovima TAB ili BLANK. Reč koja je izdvojena iz in se smešta u string out, a indeks string-a in, promenljiva 1, se postavlja da pokazuje na prvi alfanumerik iza unete reči. Nextw dobija vrednost dužine reči, ako je ona kraća od vrednosti limit, Inače dobija vrednost ERR, koju korisnik može definisati RATFOR naredbom DEFINE /3/. Tok algoritma je integer function nextw ( in, 1 ,1 imi t,out) call skipbl (in,i) ! preskakanje vodećih ! TAB 1 BLANK while (element in(i) nije EOS ni BLANK) prenesi alfanumerik u out(1) retu rn end. 2.2.1.2. Subroutine outi (n, 1 ,out,base) Ovaj opšti potprogram ispisuje veličinu n u pakovanom obliku, u buffer datoteke sa logič- kim brojem (Ifn) out u obliku string-a sa prikazom u brojnom sistemu sa osnovom base. Veličina 1 odredjuje podešavanje broja u izlaznom ■polju. Ako je 1 manje od 0, broj se podešava u levo a polje se dopunjava BLANK-ovima; ako je 1=0, nema podešavanja ni dopune BLANK-ovima; pri 1 veće od 0 se broj podešava u desno sa vodećim BLANK-ovima. Tok algoritma je subroutine outi (n , 1 ,out ,base ) 1 pretvaranje u RATFOR string len=itos (n.str,HAXSTRING,base) 1f (treba popuniti vodećim BLANK-ovima) popuna BLANK-ovima Ispis nepakovanog prikaza broja If (treba popuniti BLANK-ovima iza broja) popuna BLANK-ovima return end. 2.2.1.3. Subroutine douti ( n , 1 ,out, base) Ovaj potprogram je isti kao i outi, osim toga što je celobrojna veličina, koju treba ispisati, u dvostrukoj tačnosti: Ovo je potrebno ako je, na računaru EÌ-H6/53, ceo broj veći, po apsolutnoj vrednosti, od 32767. 2.2.1.4. Subroutine dfouti (n,1,òut,base) Ovaj potprogram ispisuje ceo broj u dvostrukoj tačnosti u polje dužine 1 u buffer datoteke sa logičkim brojem out. Ispis je sa osnovom brojnog sistema base. Polje se popunjava sa leve strane vodećim nulama. Tok algoritma^je subroutine dfouti (n,l ,out,base) ! pretvaranje broja u RATFOR string len = ditos(n,str,HAXSTRING,base) If (treba ispisati vodeće nule) ispis vodećih nula ispis nepakovanog prikaza broja return end . 2.2.2. Potprogrami za rukovanje string-ovima 2.2.2.1. Integer function firstc (str,c) Ovaj funkcijski potprogram nalazi indeks prvog elementa string-a str, koji je jednak c. Firstc vraća indeks pronadjenog elementa kao svoju vrednost ili, ako c nije nadjeno vraća vrednost ERR. Tok algoritma je jednostavan, pošto se indeks odredjuje pretraživanjem string-a str, pa neće biti prikazan. 2.2.2.2. Integer function addstr (body,str) Ovaj funkcijski potprogram dodaje string str na kraj string-a body, tj. spaja dva string-a. Kao svoju vrednost addstr vraća ukupnu dužinu Izlaznog string-a. Tok algoritma je Integer function addstr (body,str) ! pronalaženje Indeksa elementa koji je ! jednak EOS for (body(i ) - = EOS) > I dodavanje str na body for (str(j) -=EOS) dodaj str na body return end. 2.2.2.3. Subroutine fill (1 , hexcod, 1 en , s 1nglc) Ovaj potprogram popunjava string hexcod, od znaka 1+1 do ukupne dužine len, alfanumeri-' cima single. Tok algoritma je subroutine fill (1 , hexcod, 1 en, s inglc ) for (nije dostignuto len) dodavanje single na hexcod return end. 2.2.2.4. Subroutine prefll (str, 1 en , s 1ngic ) Ovaj potprogram popunjava string str sa leve strane vodežira a 1fanumerlc1 ma single, do ukupne dužine len. Tok algoritma je subroutine prefll {str, 1 en,s 1nglc) 1f (string je kraći od len) popuni sa single return end. 2.2.2.5. Subroutine midstr (mi d , 1,j,body) Ovaj opSti potprogram je namenjen za upisivanje str1ng-a mid u string body, od njegovog i-tog do j-tog elementa. Ako je j veće od ukupne dužine body, za j se uzima vrednost dužine body. Tok algoritma je subroutine midstr (mid , i , j ,body) if (j) dužine string-a body) j = dužina str1ng-a body for (nije dostignuto j) presiikaj mid u body return end. 2.2.2.6. Subroutine skipbl (line,1) Ovaj potprogram je namenjen za nalaženje prvog elementa str1ng-a Une različitog od BLANK i TAB. Tok algoritma je subroutine skipbl (11ne,i) while (TAB Ili BLANK) uvećati brojač 1 return end. 2.2.2.7. Integer function cmphr (txt.str.i ,j) Ovaj funkcijski potprogram je namenjen za uporedjivanje niza alfanumerika u znacima navoda txt sa RATFOR str1ng-om str, od njegovog i-tog do j-tog elementa. Ako su txt .1 string jednaki, cmphr prima vrednost YES, inaće je NO. Tok algoritma je " Integer function cmphr (txt,str, 1 ,j ) pretvori txt u RATFOR string if (jednakost) cmphr = YES else cmphr ■■ NO return end. 2.2.3. Potprograral za pretvaranje iz nepakova-nog u pakovani prikaz i obrnuto 2.2.3.1. Integer function Itos (i nt, str,i s 1 z, base) Ovaj funkcijski program pretvara velUinu int iz pakovanog prikaza u nepakovani prikaz broja str(i5lz) sa osnovom brojnog sistema base. Kao svoju vrednost itos vraća dužinu stri-ng-a str, a ako je postojala greSka pri pretvaranju vraća vrednost ERR, Tok algoritma je integer function itos (int,str,1s1z,base) if (base nije u dozvoljenim granicama) Itos = ERR return ! Izračunavanje str1ng-a repeat int se dell osnovom brojnog sistema 1 popunjava se str until (int == 0 111 je dostignuto islz) odredjivanje znaka broja promena redosleda elemenata u str return end. 2.2.3.2. Integer function stol (str , 1 ,1nt, base) Ovaj potprogram je namenjen za pretvaranje nepakovanog prikaza broja str, sa osnovom brojnog sistema base, u pakovani oblik int, poćev od i-tog elementa str. Kao svoju vrednost stol vraća NOERR ako je pretvaranje uspelo, inače prima vrednost ERR. Tok algoritma je intecer function stoi (s tr, i , 1nt, base ) 1f (base izvan opsega) stol = ERR return call ski pbl ( s tr, i ) ! preskakanje praznih mesta minusO = predznak ! odredjivanje predznaka repeat izračunavanje int until (str nije EOS, BLANK ili NEWLINE) return end. 2.2.3.3. Integer function ditos (int,str,isiz,base) Ovaj potprogram ima funkdju ekvivalentnu sa Itos, samo Sto je veličina Int u dvostrukoj tačnosti. Ovo je potrebno, na E1-H6/53, kod pretvaranja veličina većih, po apsolutnoj vrednosti, od 32767 u nepakovani oblik. Tok algoritma je opisan kod potprograma itos. 2.2.3.4.Integer function dstoi (str , i , 1 nt, base) Ovaj potprogram ima funkciju ekvivalentnu sa stoi, samo Sto je veličina Int u dvostrukoj tačnosti. Ovo je potrebno, na računaru Ei-H6/53 kod pretvaranja nepakovanog prikaza brojeva većih po apsolutnoj vrednosti od 32767 u pakovani. Tok algoritma je opisan kod potprograma stoi. ZAKLJUČAK Potprogrami opisani u ovom radu predstavljaju deo podrške, koja omogućava skraćivanje vremena razvoja programa uz smanjenje broja grešaka, primenom FORTRAN preprocesora RATFOR. Za očekivati je da razvijeni programi, kao 1 ovaj rad, mogu da posluže korisnicima kao osnova za dalje proširenje RATFOR b1 bi 1oteke.Programi opisani u ovom radu su sastavni deo RATFOR biblioteke na računaru EÌ-H6/53 u Institutu za mernu tehniku i upravljanje Fakulteta tehničkih nauka u Novom Sadu i mogu INCLUDE naredbom RATFOR-a biti uključeni u razvijani skup programa . Autor se zahvaljuje prof, dr Danilu Obra-doviću sa Instituta za mernu tehniku i upravljanje Fakulteta tehničkih nauka u Novom Sadu na korisnim sugestijama datira u toku pisanja rada. LITERATURA /1/ Kernighan, B.W., Plauger, P.J., A PROGRAHO-ZAS MAGASISKOLAJA (Software tools, Hungarian translation), Muszaki Konyvkiado, 1982, /2/ Parezanović, N., RAČUNSKE MA5INE I PROGRAMIRANJE, programski jezik FORTRAN IV, PFV, Beograd, 1979. /3/ Kernend, Z., RATFOR priručnik za upotrebu, Beograd, 1984. RAZISKÄVE RAČUNALNIKOV iN INFORMACIJE V NASLEDNJEM DESETLETJU UDK 681.3.001.5 Anton P. Železnikar ISKRA DELTA, Ljubljana Ta «lanek, ki je bolj esejističen In manj strokovno usmerjevalen, je bil napisan kot osnovni motiv za akademsko razpravo o raziskovalnih možnostih na področju računalnikov In Informacije v prihajajočem desetletju. V nJem poudarja avtor na svoj naCln posebno usmeritev, katere cilj je graditev in uporaba inteligentnega paralelnega stroja. Research of Computers and Information for the Next Decade^ This paper was prepared for an academic conversation on the possibilities of research in the field of computers and information in the coming decade. The paper reflects the autor's particular emphasis in which direction to proceed in order to reach the goal of construction and application of intelligent, parallel information machines. 2. Filozofija Informacije . 1. Uvod Razumevanje računalnikov In njihove uporabe (1) se razvija Čedalje bolj oCltno v smeri Informa' cljskih strojev In njihovih procesov. Na nekaterih novih Izhodiščih se oblikujejo pojmi, zamisli In realizacija prihodnjih paralelnih oziroma vecprocesorskI h računalniških sistemov in njihovih inteligentnih lastnosti. Ta ciljna Izhodišča so osnovni motivi domala vseh današnjih državnih In pod j et ni sk Ih projektov novogenerac 1 j ske računalniške metodologije In tehnologije. Projekti s taksno usmeritvijo se Izvajajo na Japonskem, v ZDA, Veliki Britaniji, ZR Neme I j i, Franciji, SZ, Indiji, Kitajski Itd., začenjajo pa svojo razvojno pot tudi pri nas (v okviru razvojnih projektov Iskre Delte). Raziskovalno, tehnološko in razvojno osnovo oblikujejo paralelne masivne in paralelne neraaslvne veCprocesorske (superra- CunalniSke) računalniške arhitekture, novonast a j a J oca metodologija umetne oziroma strojne In programske inteligence in zlasti nova filozofija oblikovanja razumevanja, konceptov, arhitekture, metodologije in tehnologije računalniških sistemov ( 1 , 3 ), ki spoznava nezadostnost rac 1 ona 11 s 11 ene raziskovalne in razvojne tradicije pri koncipiranju Inteligentnih strojev In Inteligentnih progra- Intellgenca strojev In programov Je uresničljiva le na ustrezni temeljni Informacijski pod-stat 1, ki jo obi Ikujeta Informacijska nastajalnost In spremenljivost Informacijskih stanj procesov (3). In InformatICnost, ki je lastnost Informacijskega nastajanja, je podlaga oziroma tehnološki Imperativ 1 nt e 1 igenCnos11, tj. sposobnosti Inteligentnega delovanja. V razdobju do leta 1 990 in po nJem bo bržkone mogoC.e razviti novo filozofijo informacije (3) do te stopnje, da bo iz nje 2e mogoCe postopno graditi fundamentalno Informacijsko teorijo; Sele ta teorija bo lahko podlaga Inteligenci in vrsti drugih višjih informacijskih funkcij, ki se bodo raziskovale tako v okviru tehnoloških kot živih informacijskih mehanizmov. Ze v okviru današnjih raziskovalnih In razvojnih razmišljanj je inteligenca le poseben informacijski pojav (informacijska kategorija), ki na določen naCln povezuje druge višje in nižje informacijske funkcije, kot so npr. motivacija, asociacija, strategija, ontološki model sveta, organizacija in različni značilni kor-teksni in tehnološki informacijski procesi. Inteligenca, ostaja tako prej ko slej smiselni kompleks osnovnejslh, toda tudi vlSjlh Informacijskih procesov. Tu se Inteligenca razumeva kot visoko strukturirana In povezana informacija, kot zapleteno in prepleteno informacijsko procesno stanje oziroma procesnost. Filozofija- In teorija informacije in iz njiju izpeljivo razumevanje informacijskih strojev in: programov bosta znaCIlno Interdisciplinarni raziskovalni dejavnost i ; obe se bosta sklicevali, združevali In govorili v okviru veC znanstvenih disciplin, kot so nevralne znanosti (2) (nevrofIzlologl]a, nevrofarmakolog t ja, nevropsthologtja, nevrollngvisti ka, nevroanatomlja, genetika, biologija, biokemija, medicina itd.), razumevanje obnašanja in učenja (eksperimentalna psihologija, psihiatrija, nevrologi ja) , informatika (razumevanje, spoznavanje In razumevanje spoznavanja živih in tehnoloških strojev in programov) in informacijska tehnologija (nove arhitekture, metodologije, elementi). Novi raeunalnlskl sistemi bodo morali v okviru svojih paralelnih ali veCprocesorskih arhitektur Izpolnjevati tudi zahteve po določeni stan-darizacijl. Ti standardi se oblikujejo po dosedanjih Izkušnjah kot posledice trzne uspešnosti (administrativni oziroma poslovni računalniški sistemi) In procesnih tehnoloških zahtev (procesni oziroma Industrijski računalniški sistemi). 4. Informacijsko programiranje 3. Informacijski stroj Tehnološki stroj ni v nobenem primeru posnetek živega stroja ali organizma. Avtomobil nt konj, letalo ni ptica, računalnik ne posnema možganov in robot ni bitje. Kljub temu postaja oblikovanje strojev vedno bolj povezano s filozofijo in znanjem o Živem, npr. s filozofijo biti. Izkustva in Informacije in znanjem o možganskem ustroju, o nevrofIziolosklh procesih in o miselnih funkcijah. Večini strokovno vkalupljenlh znanstvenikov In tehnologov se zdi povsmem neverjetno, da je lahko filozofsko razmišljanje praktično pomembno pri njihovem delu (1, 3). Trdne znanosti in tehnike, ki izhajajo iz evropske rac I ona 11 s 11 ene tradicije, postajajo nemočne in nezadostne pri reševanju sodobnih Informacijskih problemov. Ta pomanjkljivost se na j izrazi te j e pojavlja v miselnosti In umetne Inteligence In pri In razvoju novogeneracI jsk1 h katere so projektni načrtovalci In napovedovali inteligentno metodologij 1 raziskavah strojev, za obljubljali obnašanje. Znanje In filozofija mišljenja o naravi biološkega bivanja, o Jeziku In o naravi Človekovega obnašanja postajata bistvena pri oblikovanju, gradnji In proizvodnji strojev In njihovih programov. Cilj današnjih oblikovalcev, načrtovalcev, graditeljev in tehnologov ao Inteligentni stroji In Inteligentni programi. Pri tem postaja jasno, da inteligence kot tehnološke lastnosti ne bo mogoce dosecl brez temeljnih raziskav njene informacijske narave. Informacijski stroj postaja tako tudi sinonim za inteligentni stroj. Na poti do inteligence stroja morata metodologija in tehnologija zagotoviti informacijsko nastajalnost v tehnološki substanci (materialni arhitekturi novega računalnika) in v pripadajoči informaciji (spremenljivem, metodološko nestrukturiranem programu). Nastajalnost v okviru računalniške arhitekture je v bistvu dinamično, signalno, sporočilno ali vobce informacijsko krmiljena osnovna arhitektura: to je t. i. dinamična strojna arhitektura. učinek takega krmiljenja je navidezna, virtualna arhitekturna spremenljivost z dejanskimi in potrebnimi dinamičnimi posledicami. Ta arhitekturna spremenljivost, ki Je elementarna. Je prav zaradi te elementarnostl modularna, podsl-stemska in naposled tudi sistemska, je tedaj spremenljiva v podrobnostih (v drobni tehnološki strukturi), elementarnih modulih (v srednji logični strukturi) . in podsistemih (v grobi strojnojezikovnl strukturi). Informacijski stroj z dinamično arhitekturo bo omogočil Izvajanje t. 1. Informacijskih programov. Informacijski program Je značilno programlrno nestruktur I ran, med svojim Izvajanjem spremenljiv In nastajajoč program. Teh lastnosti današnji programi nimajo ali pa jih imajo le v značilno trivialni obliki. Informacijski program, ki bi bil Inteligenten, je cilj današnje programlrne metodologije. Ta metodologija Je vklenjena v programirnorazvojna strukturna pravila, ki programsko funkcijo omejujejo In onemogočajo programsko nastajalnost 2e na ravni današnjih programlrnlh orodij, kot so prevajalniki In programski generatorji za visoke programlrne Jezike. Razvoj masivnih paralelnih, nemaslvnlh vecpro-cesorsklh, novogeneracljskI h računalnikih sistemov se sooCa tudi s t. I. programlrno krizo. Ko Je nov oziroma novogeneraclJskl stroj arhitekturno realiziran, se pojavi najprej problem njegovega operacijskega sistema (sistema osnovnih sistemskih programov, ki omogočajo uporabo stroja) in njegove funkcionalne zdruzljIvost1 s stroji prejšnje generacije. Razvoj In Izdelava teh programov po kriterijih operativnosti In zdru21jivosti se lahko pokaZeta kot praktično nezadovoljiva ali celo nemogoča. Nekateri veliki razvojni projekti tako ne dosegajo ciljev, lastnosti, zmogljivosti in napovedi, ki so bile postavljene v projektnih načrtih. Cilji, ki se vobce ne morejo dosegati, so npr. inteligentno obnašanje sistemov, govorna komunikacija Clovek-stroj, ekspertne lastnosti računalniških sistemov (primerljive z Zlvlmi Izvedenci), komunikacija v pisnem naravnem jeziku Itd. Programima kriza je hkrati kriza umetne inteligence oziroma njene racionali s 11 ene metodologije (matematizaclJe, algori trni zac I j e, formalne jezikovnosti, znanstvene trdnosti). Bistven element programlrne krize je programska kompleksnost operacijskih in aplikativnih programov. Ta element krlznosti se praktično reSuje z razvojem programlrnlh orodij in seveda s projektnim vodenjem velikih programlrnlh skupin. Pri novih projektih se pojavlja nekaj, kar Je mogoče imenovati projektna kriza. Novi projekti na področju Informacijskega stroja, informacijskega programiranja pa tudi Informacijske tehnologije potrebujejo ob svojih začetkih posebno obravnavo z vidika filozofije tehnološko in metodološko mogočega. ne pa utemelJevan]e projektne upravičenosti z napovedmi, kl Jih kasneje nI mogoCe uresničiti. 5. Informacijska tehnologija Današnja Informacijska tehnologija temelji na elektronskih Integriranih vezjih, optičnih podatkovnih prenosnikih, elektromagnetnih, optičnih in elektromehanlcnih pomnilnih in perifernih napravah, telekomunikacijski opremi Itd. V integriranih vezjih prevladujejo se vedno pol-prevodnlskl in prevodniskl elementi pri normalnih in nizkih temperaturah (supraprevodnost). Prihodnji razvoj se bo bržkone gibal tudi v smeri uporabe elektromagnetnih, antenskih, valovodnlh pa tudi drugih, npr. bloloSkIh elementov (npr. ZivCnlh vezij), ki bodo integrirani v funkcionalna osnovna vezja. Tehnološka osnova informacijskega stroja bo v marsičem inovativna. Uporaba elementov in procesov fizike trdne snovi, biokemije, genetike, bioloških In drugih substanc bo omogočala potrebno funkcionalno raznovrstnost v fizični, logični in uporabnostnojezlkovni strukturi stroja. Z novo substanCno In procesno strukturo se bo tako sestavljeni stroj približeval paralelni proceslrnl raznovrstnosti, ki Je funkcionalno primerljiva z zlvo nevronsko substanco. 6. Zivi In umetni sistemi Osrednji ZivCnl sistem ostaja tako od molekul Življenja do korteksov zgleden primer smiselnega sistema, ki bi ga Želeli po možnosti posnemati tudi a tehnološkimi stroji. Tu se 2e kaže nova interdisciplinarnost med nevralno In informacijsko znanostjo in nekaterimi obrobnimi področji (filozofija, psihologija, tehnologija). Umetna inteligenca Je trenutno Ze na poti rekonstrukcije svojih osnov oziroma spoznavanje novih temeljev (1). Raziskave Zlvih In umetnih sistemov postajajo vedno bolj medsebojno odvisne in pospešujoče. Oblikovanje interdisciplinarnih raziskovalnih projektov In skupin na akademskem In industrijskem področju Je' nujno, ker brez tega ni mogoCe računati z raziskovalnimi rezultati, ki bi zagotavljali napredek na področju Inteligentnih strojev In programov. Računalniška Industrija bo Se nadalje glavni nosilec tega razvoja. Akademske raziskave, ki so pretežno zaCasne, obrobne in predvsem začetne (inlclalne), bodo take ostale tudi v prihodnosti. Računalniška industrija mora tako prej ko slej računati z veCJim delom Investicij v razvoj novih sistemskih konceptov, načrtovalnih in programlrnih metodologij, paralelne arhitekture, paralelnih operacijskih sistemov, sistemske Inteligence, komun i kad J , novih apiIkaclJskih področij Itd. DomaČa računalniška industrija realno v tem novem razvojnem kontekstu ne more pričakovati bistvenih ugodnosti na domaČem trZiSCu in bistvenega družbenega usmerjanja. Predvsem razvoj mednarodne razvojne in Izvozne trzne strategije je lahko realni faktor njenega napredovanja.. 8. Slovstvo (1) T. Wlnograd, F. Flores: Understanding Computers and Cognition: A New Foundation for Design. Ablex Pubi Corp, Norwood, NJ (1886). (2) E. R. Kandel, J. H. Schwartz: Principles of Neural Science (Second Edition). Elsevier, New York (1985). (3) A. P. Zeleznikar: Na poti k informaciji. Informatica 11 (1987), St. 1, 4-18. 7. Sklep Raziskave in razvoj računalnikov In Informacije na novih, informacijskih In s tem na Intelegen-Cnlh temeljih se bodo intenzivneje nadaljevale v 90. letih. Današnji paralelni, superraCunal-nlskl In vektorski sistemi, ki v povezavi z današnjo umetno Inteligenco in s svojimi funkcionalnimi značilnostmi napovedujejo t. i. peto računalniško generacijo. Se ne bodo inteligentni. Vendar se bodo z nJlml In z njihovo uporabo uveljavili nekateri standardi, kot so paralelne arhitekture, sistemska vodila, operacijski sistemi, komunikacijski In graflCnl standardi in nova področja njihove uporabe. S tem razvojem se bodo pojavili novi podjetniški in akademski projekti. JEZIK ZA SPECIFIKACIJU INFOLOŠKOG MODELA INFORMATICA 2/87 UDK 681.3.069:519.688 Danilo Vldojkovlć Viša šl(ola unutrašnjih poslova, Zemun Vladan Jovanović Fakultet organizacionih nauka, Beograd u radu je predložen jezik za opis infološkog modela dobijenog Langeforsovim pristupom projektovanju informacionih sistema. lafološki model opisan predloženim jezikom moguće je preslikati u Yao-ov model za analizu troškova pristupa u fizičkoj organizaciji podataka. AN IKFOLOGICAL DATA MODEL SPECIFICATION LANGUAGE. In the article the language used for a specification of an infological data model acquired through Langefors's approach to information systems design is suggested. The infological data model described with the help of the suggested language is possible to map into Yao's attribute based model for database cost analysis. 1. U V O D Projektovanje informacionih sistema predstavlja veoma kompleksan posao koji sadrži čitav niz različitih aktivnosti. Postoje mnoge metode za projektovanje informacionih sistema, ali ni jedna od njih ne pristupa sa jednakom sistematičnošću svim fazama projektovanja. Tako, uglavnom razlikujemo metode čije je težište na ranijim fazama projektovanja, vezanim za analizu korisničkih zahteva i izradu logičkog modela podataka, i metode koje više pažnje posvećuju projektovanju fizičke organizacije podataka na računaru. U ovom radu prikazan je jezik koji omogućava povezivanje dva takva pristupa : Langeforsovog pristupa projektovanju informacionih sistema'''^'' koji veliku pažnju posvećuje prvim fazama projektovanja, tako da se dobija logički model podataka (infološki model) koji verno odražava korisničke zahteve, i Yao-vog modela za analizu troškova pristupa u fizičkoj organizaciji podataka''^^ koji uvodi jedinstven postupak proračuna vremena pristupa podacima u različitim organizacijama podataka i time omogućava optimalan izbor fizičke organizacije po- dataka. Infološki model opisan predloženim jezikom predstavlja polaznu osnovu za primenu Yao-vog modela, što omogućava zadovoljenje korisničkih potreba defini-sanih u infološkom modelu, uz optimalno iskorišćenje raspoloživih resursa. U prvom delu rada prikazan je Langeforsov pristup projektovanju informacionih sistema, a u drugom delu dat je prikaz jezika za opis infološkog modela. 2. LANGEFORSOV PRISTUP PROJEKTOVANJU INFORMACIONIH SISTEMA Osnovni cilj informacionog sistema je da ispuni infor-macione zahteve korisnika u skladu sa uslovima koji vladaju u objektnom sistemu. Medjutim, mnogi infor-macioni sistemi ne postižu taj cilj, pre svega zbog usko specijalističkog pristupa projektovanju informacio- nih sistema. Često se u prvi plan stavljaju tehničke mogućnosti za izgradnju informacionog sistema što gotovo redovno dovodi do realizacije informacionog sistema koji ne zadovoljava u potpunosti potrebe korisnika. Tada je neophodno da se stvarne potrebe korisnika modificiraju da bi se uklopile u mogućnosti tako projek-tovanog informacionog sistema. Medjutim, kada se jave prevelike razlike izmedju mogućnosti informacio nog sistema i potreba korisnika neophodno je izvršiti reprojektovanje što je, naravno, skopčano sa novim troškovima. Jasno i precizno definisani korisnički zahtevi u najranijim fazama projektovanja neophodan su preduslova za efikasan rad informacionog sistema. Langeforsov pristup projektovanju informacionih sistema, poznat i kao infološki pristup, kao polaznu tačku upravo uzima potrebe krajnih korisnika planiranog in -formacionog sistema. Krajni korisnik je lice koje treba da reši problem odredjene vrste, ili da donese od -luku u procesu upravljanja. Prema infološkoj teoriji in-formacioni sistem služi korisniku kao izvor informa -cija koje će mu pomoći da reši aktuelni problem. Sa tog aspekta sasvim je jasno da je od velikog značaja uključivanje korisnika u proces projektovanja informacionog sistema, bez obzira u kojoj meri je upoznat sa načinom rada računara i ostalih uredjaja koji će kasnije biti korišćeni. Informacioni sistem koji se projektuje može se posmatrati kao model jednog dela realnog sveta (objektnog sistema). Projektovanje informacionog sistema predstavlja proces preslikavanja jednog dela objektnog sistema u informacioni sistem. Infološki pristup predlaže da se to preslikavanje izvrši sistematski, u četiri koraka 1. Preslikavanje objektnog sistema u korisnički model, OS-KM(OS); 2. Preslikavanje korisničkog modela u infološki model, KM (OS) - IM (OS); 3. Preslikavanje infološkog modela u datološki model, IM(OS) - DM(OS)i 4. Preslikavanje datološkog modela u fizički model, DM(OS) - FM(OS). Izrada korisničkog modela Projektovanje infološkog modela Projektovanje datološkog modela Projektovanje fizičkog modela Objektni sistem Korisnički model Infološki model Datološki model Fizički model Slika 1. Faze projektovanja informacionog sistema Prva dava koraka čine infološku fazu projektovanja informacionog sistema. U ovoj fazi projektovanja potrebno je definisati tzv. spoljne karakteristike planiranog informacionog sistema. "Informacioni sistem, prema infološkom pristupu, treba da bude izgradjen tako da je dovoljno da korisnik specificira informaciju koju želi , na način koji njemu odgovara, a sistem će pronaći ili proizvesti podatke koji predstavljaju traženu informaciju, bez obzira na to kako su podaci memorisani i st-ruktuirani u bazi podataka.''^''' Za krajnjeg korisnika dovoljno jè da sistem posmatra kao "rezervoar" u koji se smeštaju i iz koga se dobijaju odredjene vrste informacija. Spoljne karakteristike informacionog sistema odredjene su upravo mogućnostima prihvatanja i prezen- » tiranja odredjenih vrsta informacija. Zadatak korisnika budućeg informacionog sistema je da u infološkoj fazi projektovanja utvrdi spoljne karakteristike informacio -nog sistema i na taj način jasno iskaže svoje informa -cione potrebe. Tokom infološke faze projektovanja ne razmatraju se karakteristike resursa koji će se koristiti u fazi implementacije. To može, u odredjenim slučajevima da dove- de do infološkog modela koga nije moguće realizovati raspoloživim sredstvima, Medjutim, i to je manji promašaj od onoga kada se, zbog preteranog prilagodjava-nja karakteristikama uredjaja u ranim fazama projekto-vanja izgradi informacioni sistem koji nije u stanju da zadovolji potrebe korisnika. Infološki pristup predlaže da se tokom infološke faze samo u grubim crtama sagledaju karakteristike raspoloživih resursa i da se u tom svetlu projektuje infološki model. Na osnovu precizno definisanog infološkog modela projektant je u mogućnosti da sprovede sledeću fazu pro-jektovanja, datološku fazu. Tokom ove faze projektuju se datološke, odnosno unutrašnje karakteristike informa -cionog sistema. One obuhvata ju datoteke i programe koji će realizovati informacione skupove i informacione procese definisane u infološkom modelu. Kao rezultat dobija se datološki model informacionog sistema. Tokom faze projektovanja datološkog modela uticaj performansi računara je znatno veći. U Langeforsovom pristupu naročita pažnja se posvećuje minimiziranju količine transporta podataka izmedju glavno i periferne memorije . U tom cilju se u datološkoj fazi vrši grupisanje (konsolidacija) datoteka i grupisanje procesa, što bitno utiče na konačnu strukturu datološk(xj modela. Treba, medjutim, naglasiti da ova prilagodjavanja ne utiču na karakteristike utvrdjene korisničkim i infološkim modelom. Poslednji korak u procesu projektovanja informacionog sistema L^ngeforsovim pristupom treba da obuhvati postavljanje datološkog modela na računar, odnosno preslikavanje u fizički model. Ovaj korak nije u istoj meri precizan i sistematičan kao prethodni. Sistematizacija fizičkog projektovanja može se obezbediti samo preciznim zapisom željenih parametara (karakteristika) u formalnom jeziku. U tom cilju konstruisan je JEZIK ZA OPIS INFOLOŠKOG MODELA koji opisuje parametre infološkog modela relevantne za primenu Yao-vog modela za optimalan izbor fizičke organizacije podataka. 3. JEZIK ZA OPIS INFOLOŠKOG MODELA Reči koje čine predloženi jezik proistekle su iz terminologije koja se koristi u infološkom modelu. Tako se katalog - datoteka kompleks u infološkom modelu označava sa DIRECTORY-FILE-COMPLEX, datoteka u kojoj su smešteni zapisi uredjeni po primarnom ključu sa MAIK-FILE, a katalozi koji služe za pristup podacima u datoteci, sa DIRECTORY-FILE. Veza izmedju pojedinih delova infološkog modela koji se nalaze na različitim hijerarhijskim nivoima opisuje se terminom Wmi . Na primer, rečenica DIRECTORY-FILE-COMPLEX vozilo WITH MAIN-FILE dat-voz Tokom realizacije prva tri koraka u procesu projektovanja informacionih sistema Langeforsovim pristupom de- finišu se koncepti prikazani u Tabeli 1, čime se utvrdju- /2/ je struktura infološkog mo>iela. Elementarni koncept (e-koncept) Elementarna poi .ika (e-poruka) Doo za identifikaciju objekta (Object term) Deo za identifikaciju svojstva (Property term) Deo za identifiKaciju vremena (Time term) Elementarni r roces «C/3 - upit Elementarni zapis Slementarna datoteka Glavna datoteka Katalog Katalog-datoteka kompleks Tabela 1. Koncepti infološkog modela govori da je datoteka "dat-voz" glavna datoteka katalog -datoteka kompleksa "vozilo". Veza izmedju elemenata na istom hijerarhijskom nivou opisuje se terminom AND: DIRECTORY-FILE-COMPLEX vozilo WITH (MAIN-FILE dat-voz WITH ------------------) AND (DIRECTORY-FILE k-boja WITH ------------------) AND (DIRECTORY-FILE k-tip WITH ------------------) . Iz prikazanog opisa može se uočiti da katalog datoteka kompleks "vozilo" ima glavnu datoteku "dat-voz" i veći broj kataloga za pretraživanje datoteke. Za označavanje zapisa u glavnoj datoteci i katalozima koristi se termin ENTRY. Termini za opis elemenata iz kojih se sastoji zapis analogni su usvojenoj terminologiji u infološkom pristupu: OBJECT-TERM opisuje objekat na koji se odnosi zapis u datoteci, PROPERTY-TERM definiše odgovarajuće svojstvo objekta, a TIME-TERM definiše vreme u kome naznačeni objekat ima od-redjeno svojstvo. Opis jedne datoteke infološkog modela može tako da ima sledeći oblik: MAIN-FILE dat-voz WITH ENTRY zap-voz WITH ODJECT-TERM reg-br AND PROPERTY-TERMS marka AND boja AND tip AND TIME-TERM dat-reg . Prilikom opisivanja zapisa kataloga mora se voditi računa da je katalog organizovan kao atributna datoteka, odnosno da je objekat o kome zapis informiše Jedno od svojstava iz zapisa glavne datoteke. Za sledeče faze projektovanja značajno je da se u opisu infološkog modela bar približno odredi koliko objekat u zapisu kataloga ima mogućih vrednosti. To se prikazuje na sledeći način: DIRECTORY-FILE k-boja WITH ENTRY i-boja WITH OBJECT-TERM boja WITH VALUE-SET v-boja(lOO) . Iz prikazanog opisa vidi se da objekat "boja" (u stvari atribut) ima 100 različitih vrednosti. Za svaku konkretnu vrednost objekta o kome informiše zapis kataloga, kao svojstvo vezuje se niz objekata iz glavne datoteke. Na primer, ako belu boju imaju vozila BG238-345, BG32-33 i BG31-28, tada će zapis kataloga imati oblik : /boja, bela/, /reg-br,BG238-345/, /reg-br,BG32-33/, /reg-br,BG31-28/, /dat-reg,120382/ 1 ovde je važno odrediti prosečan broj objekata iz glavne datoteke koji su u vezi sa objektima kataloga. Opis kataloga tako dobija sledeći oblik: DIRECTORY-FILE k-boja WITH ENTRY z-boja WITH OBJECT-TERM boja WITH VALUE-SET v-boja(lOO) AND PROPERTY-TERM SEQ reg-br(lOOO) Izraz SEQ reg-br (1000) pokazuje da svakoj vrednosti OBJECT-TERM-a "boja" odgovara niz (SEQ) PROPERTY TERM-ova prosečne dužine 1000. Osim opisa strukture modela podataka važno je opisati i transakcije koje će se nad bazom podataka reallzovati. U infološkom pristupu transakcije su prikazane u formi upita tako da je 1 u jeziku za opis infološkog modela opotrebljena slična terminologija. Svi upiti iste vrste grupisani su u istu klasu upita. Opis svake klase upita sastoji se iz dva dela. U prvom su definisane promeni jive, a u drugom delu su opisane aktivnosti koje su neophodne da bi se realizovao upit. Te aktivnosti su prikazane u obliku Bool-ovog izraza, gde definisane prc-menljive uzimaju odredjene konkretne vrednosti. Opis jedne moguće klase upita ima sledeći oblik: QUERY-CLASS upit-1 WITH dC-PROPERTIES boja AND marka AND /2,-PROPERTlES ime-vl AND adr-vl AND ACTIONS FOR ALL zap-voz FROM dat-voz SUCHTHAT (boja=bela OR boja=žuta ) AND marka=Z101 GET ime-vl AND adr-vl. Kompletan opis infološkog modela ima oblik dat u Tabeli 2. DIRECTORY-FILE-COMPLEX ime-kompleksa WITH (MAIN-FILE ime-gl-dat WITH ENTRY ime-zap WITH OBJECT-TERM ime-obj AND PROPERTY-TERM ime-sv-1 AND ime-sv-2 AND ime-sv-r AND TIME-TERM ime-vrem) AND (DIRECTORY-FILE ime-kat-1 WITH ENTRY ime-k-zap WITH OBJECT-TERM ime-obj-1 WITH VALUE-SET skup-l(br-vred-l) AND PROPERTY-TERM SEQ niz-1 (br-obj-1 ) AND TIME-TERM ime-vrem-1 ) AND (DIRECTORY-FILE ime-kat-k WITH ENTRY ime-k-zap WITH OBJECT-TERM ime-obj-k WITH VALUE-SET skup-k{br-vred-k) AND PROPERTY-TERM SEQ niz-k(br-obj-k) AND TIME-TERM ime-vrem-k) AND (QUERY-CLASS ime-upita-1 WITH jC-PROPERTIES ime-Z-sv-1 AND ime-X-sv-2 ANT) ime-i-sv-m AND /^-PROPERTIES ime-4-sv-l AND ime- out I X -> )( ) zagotavlja, da se bo vhodni proces koniSal prej, ko bo zadel izhodni proces, V occaau zapisan program ima naslednjo obliko; HHILE TRUE VAR x: SE« inp ? X out ! X Tu velja opozoriti, da iaaao v ooc»«u na voljo HHILE stavek za opisovanj« ponavljajolSlh procesov. To js povsea razunljlvo, 6e veao, da 50 TO In podobni stavki ne sodijo v drutlno stavkov B katerimi popisujemo paralalne procese , 3. Paralelni konatrwkt ParilBlnl konstrukt P = (^X.lnp ? X -> aid ! Ci»x) -> X) Q « (jjY.ald ? y -> out ! -> Y) R » P II a /ponazorjen i naslednji« eleaentoa .Inp mid P povezuje sekvenline procese. Vsak procts uporablja svoje spreaenlJivke, aed seboj pa procesa koaunictrata preko koaunikaolJskaga kanala. V occaau zapisan prograa Isa naslednjo obliko: CHAN «idi PAR UHttE TRUE VAR X, a, ri set Inp ? K r 1= at« nid ! r WHILE TRUE VAR y, b,_p. SEQ mid 7 y p 1= bay out ! p Vobtfe sta procesa P in a paralelna, ni pa nujno, da teđeta loöasno. Soöasen prooes uporablja svoje spreaenljivke, katerih ne aore dodeljevati drugeau soSasneau procesu. SoBasna procesa lahko koaunicirata saao preko kanalov. Pa enea kanalu poteka saao ena enosaerna. sinhronizirana koaunikaci ma. V kanalski koaunikac a ned dveaa proceso- ji ne poznalo vitesnlh ponnilnikov (bufferiranja). SoISaanl prae«sl Bodita dana procesa P in Q, ki iaata oblikoi P = C(iX.inp ? * -> outp Q = ()iY.inp ? y -> outp X -> X) y -> Y) . na lastnea procesorju, ki je lahko enostaven zato pa Izredno hiter (RISC). V sekvenCnen procesu W U = <)iX.lnp?x -> out!* -> inp?y -> outly -> X) poiibeao tiste podprocese, ki ee lahko Izvrlu-JeJo sobasno (dekoapozicija). NaJdeao dva para soCasnih procesov p = Pin P2 = (inp ? X -> out ! y -> P) Q = aiM Q2 = (out ! y -> Inp ? X -> fl) in dobino H = inp ? y -> {JIX.P -> Q -> X) S. PrlMr Oglejmo si Iterativna polje (kvadratna areüa transputer jev), ki Je natirtano tako, da z njia lahko izrafiunano a skalarnlh produktov vektorjev v in w, , l^lža. Na prlaeru boao razionili nekatere posebnosti konunikacij aed procesi oilroBs transputerjl v takSnea in podobnih sistenih. Nat priaer zaplSeao z naslednjia izrazoa: n-i s, «E g,, X 1 = 0 'H 'I Priaer torej reSiao z iterativnla poljea transputerJev, ki ga ponazarja slika 1. Vidimo, da gre v bistvu za Izrađun i skalarnlh produktov aed enim vhodnla vektorjea v in a vektorji , katerih koaponente (aatrlka U) so zapisane v posaaeznih transputerjlh. ZapKlao procesov, ki jih izvajajo posaaazni sekvenco transputerjl nuuT 10 Iteratlvnea polju: (>iX.Po-> X) HULT,(j^„ = (MX.P,-> P2-> P3-> P^ -> Ps-> X) (MX.Pe-> P,-> X) Poglejmo Ce obstaja aolnost soCasnega Izvajanja teh dveh procesov. Ta aoZnost je dana, saj lahko vhodni In Izhodni koaunlkacijskl proces teCeta soäasno: lnp7 x In outp! y, ter outp! X In inp? y. Vendar po pravilih o sočasnih procesih obstaja aed soSasnlaa prooetoaa potencialna dead locK stanje, kar poaenl, da bi tudi. procesa P in a zatla v to stanje. Oa prepreCino pojav dead lock stanja, noraao vsaj v enem paru soCasnih procesov en notranji proces zaBetl izvrSevatl pradno se zabne Časovno prekrivanje procesnega para (preaaknitev procesa po levi strani Časovne osi). ZapKlao to Se enkrat: (a -> P)l.l (b -> 8) = (dead-lock) (a -> P) n (C -> d -> 8) » c->((a->P) N(d->a)). Zgornji izrazi naa povedo, da lahko nek proces delimo (Ce je to nogoCe) na podprooese, ki (Ce so med seboj povezani s kanali) tebejo soCasno z ostalimi podprooesi (tudi s tistiai, ki pripadajo drugeau procesu). Teau pravlao tudi dekompozicija procesa. Celiac, da Je dekcmpozlcija hierarhična (varovanje pred dead lock stanji), da oiogoCa uporabo paralelnih ^konstruktov in da so pri delitvi tisti konđnl procesi kar se da preprosti. Tako lahko ustvarimo programe, ki uporabljajo visoko stopnja sočasnosti; vsak enostaven proces pa se Izvaja MU LT 10 mid V 1 Tr. — righi jmld i . T — MULT l(i+1) I jitiid r a MULT m(rH-1 I irigtit slika 1 kjer so Po= "'it'o' ° = left| ? v mld,j ? y P3 = z := («,j . P5 = right, ! v P?" Na sliki 2a Ja podan preprost grafni model prograna za eno transputerskc celico. Postavlja se vprašanje, kako v najboljti aeri izkoristiti prednosti iterativnih polj, tj. «olfno-sti pohitritev pri reSevanJu takSnih in podobnih problemov. Ali povedano drugafie, zagotoviti, da kar največ! celic lahko deluje sočasno. "I y S| slika 2a Z resnejSi« preaislekon ob sliki 2b in zgornjem prograau ugotovilo, da lahko le v n transputerjih teBeJo procesi soSasno in da Je zakasnitev pri izvajanju procesa P5 kriva za to, da procesi v ostalih a-1 verigah transpu-terjEV ne tetejo so&asno (a skalarnlh produktov). Slednje bi bilo notno ob pogoju, da procesa P1 in PS te&eta soBasno, vendar na enea transputerju takSna prooesa n> aorita teCi soCasno. Rešitev Je v fiasovnia zaaiku aed sekvenCniaa procesona vsaj za en obhod zanke. TakSno transloraaciJo bi zapisali v naslednji oblikii 8E8 i=CO FOR SE« P P) II (C2 -> Q) = ((01 -> P) II C2) -> « = C c (C2M (ci -> P)) -> a = ((C2n CD -> p) -> a • (C2I^ CD -> p -> a =• (C1M C2) -> p -> « Ce upo^tevaac zgornjo transformacijo, dobi naS prograa konbno obliko: PROC MULT (CHAM aid, left, right) VAR y, Vi z, a, b SEB left ? V mid ? y SE« i = C1 FOR ■ - 13 SE« PAR 2 1= « » V ♦ y ■ id ! z right ! V PM left ? a aid t b V y PAR z mid ! z right ! V Procesiranje podatkov v zadnjih dveh programih Je pcpolnoaa enako, razlika pa Je v ten, da v zadnjem programu ne more priti do izpisov rezultata Cmid ■ z>, predno se ne izvedeta vhodna soCasna procesa (left ? a, mid ? b). <1. Z«kljue*k Nedvomno Je Jezik occan . v primerjavi s sorodnimi jeziki naJprimernsj 81-84. C31 C.A.R. Hoare, Communicating sequential processes, Prentice-Hall International (1985)-. C43 Jane Curry, Occam solves classical operating system problems, Microprocessors and Microsystems a (6) C1984) 280-283. C5: David May, Richard Taylor, Occam - an overviey. Microprocessors and Microsystems S (2) (1984) 73-79. C6] Richard Taylor, 'Transputer communication link. Microprocessor and Microsystems 10 (4) (1986) 211-215. 1:73 David May, Roger Shepherd, The transputer implementation of occam, Proc. Inf I Conf. Fifth Generation Computer Systems 198A, OHM North-Holland (1984) 533-541. PROGRAMIRANJE Z MODULO - 2 1.del UDK 681.3.06:519.682 MODULO-2 A. Brodnik, M. Špegel, T. Lasbaher Institut »Jožef Stefan«, Ljubljana v eianku opi«uJ««o progr««ski Jazik ■odula-2. Opis je rizdvljan na dva dala. V prvcn obravnavano osnovne podatkovne, ukazne (stavki) In programske (moduli, podprogrami) struktura. Tako Je podrobno opisan pojem mudula in z nJim povezanega modularnega programiranja. Poleg tega opisujemo tudi osnovna na&ala sistemskega oziroma nizkonivojskega programiranja v moduli-2. Nadaljevanje Članka Je namenjeno primerjavi nodule-2 s tremi drugimi sodobnimi Jeziki, in sicer s pascalo», ado in I Jezikom o. ^ Progreasing Uith Hodula-2 In this paper is a description of the Hodula-2 programming language. The description is divided into two"parts. In the first part, ws discuss the essential data, control, and programming structures of the language which separate nodula-2 from other modern languages, concluding wise the notation of a module and modular programming, and some principles of system or low-level programming. In the second part of this contribution, nodula-2 is compared to other three modern programming languagesi Pascal, Ada and C. WVOP V filanku Zellmo v dv«h dellh predstaviti nov, moderen programski jezik. 2a celovit opis jezika pa je okvir tega Članka in njegovega nadaljevanja preozek, poleg tega pa je bralcu na voljo vrsta dobrih knjig C3, 7, 8, lA, 183. Pafi pa je namen naSega prispevka z opisom bistvenih novosti in programirnih možnosti vzpodbuditi bralca k poglobljenemu spoznavanju tega nedvomno zelo sposobnega in morda enega temeljnih jezikov naslednjih let C22. Programski jezik modula-2 je neposredni naslednik module-1, oba pa izvirata iz pascala. Osnovnim pravilom so bili dodani predvsem nekateri elementi paralelnega pascala ("Concurrent Pascal")C53 ter možnost modularnega programiranja. Zato osnovo jezika tvorijo že dobro poznani stavki iz pascala 93, ki pa so v moduli-2 te bolj poenostavljeni. S tem je Jezik postal preglednejši, programi pa bistveno bolj zgoščeni. Modula-2 ni boljSa od pascala samo v pogledu strukturiranosti, ampak omogo&a z dolofieniml ukaznimi strukturami tudi zelo uftinkovito programiranje na sistemskem nivoju. IzkuSeni programerji, ki sicer uporabljajo katero od bolj izpopolnjenih razlifiic pascala C15, 163, bodo dejali, da vse to, kar sicer prinaSa modula-2, oni lahko že precej Casa uporabljajo. To je res, vendar se moramo hkrati zavedati, da so to le dialekti pascala, medtem ko so vsi deli jezika, ki jih bomo tu opisali, že v osnovni definiciji module-2. Opis Jezika Je osnovna tema drugega poglavja. V tretjem poglavju, bomo prikazali nekatera natela modularnega programiranja, Četrto poglavje pa je namenjeno prikazu zmožnosti module-2 za sistemsko ali nizkonivojsko programiranje. V drugem delu tega članka bomo primerjali jezik s pascalom, ado in jezikom c. Pri tem se bomo seznanili z nekaterimi prav zanimivimi spoznanji, Videli bomo na primer, da ima modula-2 pravzaprav skoraj vse bistvene prednosti, ki jih programerji sicer pripisujejo adi in o-ju. V drugam poglavju nadaljevanja so zbrani Se primeri nekaterih prevajalnikov za razliCne operacijske sisteme in zanimiv primer povezave madule-2 s prologom. V dodatku sta priložena kratka primera, ki naj predoCita možnosti modularnega in sistemskega programiranja v moduli-2. _Pot» iailk« ■odula-2 Pri razmišljanju o uporabi kakSnega programskega jezika, moramo vzeti v pretres predvsem tri gradnike) podatkovne strukture, ukazne strukture (stavke) in programske strukture. Opis jezika smo zato razdelili nekako na tri dele. Zaradi smotrne zgradbe jezika so programi napisani v modull-2 C1S3 zelo pregledni. Jezik dobro podpira strukturiranje programov, in sicer tako v pogledu podatkovnih kot ukaznih struktur. Razen tega modula-2 loti med velikimi in malimi Črkami v imenih spremenljivk. Preglednost programov poveCuje le zahteva, da so vse rezervirane besede napisane z velikimi Črkami. Pri opisu Jezika predpostavljamo določeno stopnjo znanja katerega od algolskih jezikov, a najbolje Je poznavanje pascala. 2.1 Podatkovna struktura Vsak programski Jezik pozna nek tipov. Najbolj oblfiajni osnovni ti gor (cela Števila), ra«l (realna boolean (logične spremenljivke) in v veČini Jezikov od fortrana C1 C13, 173. V veČini jezikov algol kamor sodi tudi modula-2, poznamo (Črkovna spremenljivka), sat (množi tar (kazelec). aj osnovnih pi so int«-Stevila) in jih najdemo 23 pa do ade skega tipa, Se tipe ohar ca) in poin- V aadulo-2 so vgrajeni vsi zgoraj navedeni tipi, poleg njih pa pozna jezik Se nekaj tipov, ki so uporabni predvsem pri programiranju na nitjan nivoju. To to tipi CARDINAL (nanagattv-n« «t«vll<>, HORD (bamada), AOORCSt (naalav), BITBET (nnalica bitov) in PROČ (podprograa). Vlogo tah tipov ti boao ogladali v Catrtan poglavju tag< pricpavKa, Ž.SnnttYt.lBnt tiat Podobno kot pascal poma tudi nadula-2 lattavi Jan« podatkovna tipa. To ao zapiai (RECORD), zapili I railiCioami, polja (ARRAY), nattavalni tipi in daini tipi. Oglajao li oblika dafini-oij za omanjana podatkovne tipe na nadednjea primerui vljenega stavka (BEGIN ... END), ampak sa vai njeni stavki razan prirejanja, vrnltvenega In izhodnega konflajo z rezervirano besedo ENO. V prlBerJavi s pasoalon lahko opalino odvefinost besedice bagln na naslednjee priaerui TYPE zapis zapisi polje nasteJ delni RECORD parti, partZi CARDINAL END; RECORD CASE selekti BOOLEAN OF TRUE I Ohl CHAR I FALSEi oat CARDINAL END END) ARRAY CI..103, CI..103 OF INTE6ERI (da, ne, eogooe)) CO..93( Prttv^ir.lin.tt ttPt V iiioduli-2 Je obravnavanje spremenljivk moAno vezano na njihov tip. Ne" «oremo na primer, settevatl celega In realnega itavila kot v pascalu. Prepovedano Je celo settevanja celega In nenegatlvnega Itevlla. Za premostitev teh problemov obstaja cela vrsta funkolj, ki samo na 'IcgiCnem nivoju pretvorijo tip spremenljivke, na velikost izhodne kode pa nimajo vpliva. Imena tah funkcij so enaka inenom tipov. Tako lahko naredimo naslednjo pretvorbo MODULE Primeril VAR et CARDINALI It INTEGER! BEGIN 1 f INTEGER (c)I 0 END Primeri. I- CARDINAL (1) Seveda Je pretvarjanje omejeno le med tipi z enako dolZino, Kot primer pravilne pretvorbe, si oglejmo naslednji podprogrami PROCEDURE Prepisi (izi IzTip) VAR VI vTlpi VAR preplsanoi BOOLEAN)| BEGIN prepisano i- TSIZE(IzTip) - TSIZE(vTip)| IF prepisano THEN v t- vTip (iz) END END Prepisij, Klicani podprogram TSIZE Je eden redkih, ki so definirani v sistemu module-2 in izraöuna velikost tipa, ki Je parameter podprograma, v besedah. 2.2 Ukazne etrukture Hodula-2 pozna naslednje stavkei - prirejanje - klic podprograma - vrnitev iz podprograma (RETURN) - pogojni stavek (IF, ELSIF, ELSE) - libiralni stavek (CASE) - Izhodni stavek (EXIT) - strukturni izbirni stavek (WITH) - zanke - nedoloSna (LOOP) - pogoj na za&etku (WHILE) - pogoj na koncu (REPEAT) - nattevalna zanka (FOR) Modula-2 torej ne uvaja nobenih bistveno novih stavkov, pat pa Je le njihova oblika lepta zapisana. Na primer, modula-2 ne pozna sasta- nODULE Primeri BEGIN IF pogoj THEN stavekl| Stavek2 END END Primer. program Primeri bagln If pogoj than begin stavekl | stavke2 and and. Novo Je tudi loöevanje posameznih motnosti v izbiralnem stavku. Ta ima sedaj oblikoi CASE izraz OF nozncstl i Stavkil I. moznost2 t 8tavki2 ELSE StavkiS ENDi 2.3 Noduli In podprograal Osnovna programska enota v Jeziku ni vefi podprogram, teaveö modul. Ta lahko združuje veS podprogramov in modulov. flodul In podprogram se razlikujeta tudi v svoji zasnovi, saj je modul le logifina, programska enota, ki obstaja takorekoö sano na nivoju izvorne kodo In Je njegova vloga samo povečanje preglednosti programa. Po drugI strani pa podprogram predstavlja osnovno izvajalno enoto in obstaja' tako na nivoju Izvorna kot tudi izvajane kode. 2,3.1 HptfvU Madula-2 poznam tri tipe modulavi - programski modul - definicijski modul (DEFINITION) - delovni modul (IMPLEMENTATION) Prvi sluli kot osnovni uporabnikov program ali kot ga poznamo v pascalu program. Druga dva tipa modulov sta dodana predvsem zaradi zaokrožitve sistema Jezika, s filmar se odpravijo različne uporabnilke knjižnice. Madula-2 ne pozna vefi zunanjih podprogramov (axternal) ali vstavljanja celih kosov programa (inoluda), ampak samo navedeno modul, iz katerega želimo uporabiti dolofieno spremenljivko (ta Je lahke poljubnega tipa, tudi PROČ!). Uporabnost definicijskih in delovnih modulov je najbolj oöitna pri snovanju velikih projektov, pri katerih vedno sodeluje vefi ljudi. Taktno programiranje zahteva razdelitev dela In dolo-aitev nekaterih skupnih tofik - spremenljivk. V primeru razvoja z modulo-2 so spremenljivke opisane z definicijskimi moduli. V definicijskih modulih torej snovalci opKeJo kaj bodo podprogrami delali, kakine bodo posamezne spremenljivke in podobno. Nato se programerji lotijo vsak svojega dela, kar pomeni, da vsak Izdela sva j delovni modul, v katerem se dolcfil kako se bodo izvajali. Opisani postopek izdelave projekta v osnovi omogoSa zelo enostavno popravljanje programov, saj ni potrebno prevesti ozirom popraviti nlfie-sar drugega kot modul, ki Je napafien, seveda nI pa edini možen nafiln uporabe lofienega prevajanja posameznih modulov. Sicer ločeno prevajanje omogo&ajo Zs cblfiajne sistemske knjižnice, ki pri drugih Jezikih obstajajo izven opisa jezika, medtem ko Je pri modull-2 vse vgrajeno v sistem Jezika samega. Podrobneje si bomo ogledali nafiela modularnega programiranja v tretjem poglavju. Naslednja posebnost modulov je ve 1 Javnostyspre-menljivk. Oglejmo si, kake v moduli-2 dostopa-mo do spremenljivk. Osnovno programsko enoto - modul «i l«hko pr«dst«v1 Jana kot zaprt prostor, v katerem nan Je v«e vidno, iato pa ne vidimo nlfieiar zunaj tega proetora. Ce telino videti kakšno «tvar, ki Je zunaj prostora, «i Jo norano posebej dodefiniratii sprejeti Jo norano v modul. V modull-2 to naredimo s stavkom IMPORT. Ne moremo pa sprejemati poljubnih spremenljivk, ampak samo tiste, ki so na voljo v zunanjem svetu. Da lahko neka spremenljivka obstaja v zunanjem svetu, Jo morano Iz modula oddati. Za to sluii stavek EXPORT. Torej si lahko vse oddane spremenljivke predstavljamo kot nekaktno prosto blago, ki ga lahko sprejmi katerikoli modul. To nafielo modulov je tako mofino, da tudi vsebina vsebovanih modulov ni poznana osnovnemu modulu. Da bo stvar JasneJia il poglejmo naslednji prionert MODULE Enaj VAR x, y. Il CARDINAL MODULE Dvall EXPORT a, bi VAR a, b, CI CARDINALI BESIN (• tu so dostopne spremenljivke a, b ali o •) END Dvall MODULE Dva2| IMPORT X, ai VAR r, s, ti CARDINALI BESIN (• dostopne so spremenljivke X ali Ena. X , a ali Dval.a, r, s, t •) END Dva2| BE6IN (• tu pa spremenljivke x, y, z in Dval.a ali a •) END Ena. 2.3.2 Podprogrami Poleg modulov modula-2 le vedno pozna tudi podprograma. Njihov« deflnlolj« je podobna kot pri pascalu, adi ali drugih Jezikih. Parametri podprogramov so lahko klicani po vrednosti ali po naslovu (re(erenoi). V podprogramu nekega modula so vidne tudi vse zunanje spremenljivke, ki pa so definirane v tem modulu. Dostop do ostalih spremenljivk Je molen preko oddajno/vnosnih struktur. Za laljo predstavitev naj sluli naslednji primeri MODULE Slavni I VAf) Ol CARDINALI MODULE Enal I EXPORT ai VAR ai INTESERi END Enal) MODULE Ena2| IMPORT a, o| EXPORT Priredil PROCEDURE Priredil BESIN ai-INTESERCc) END Priredil END Ena2| BEGIN Priredi| END Slavni. V podprogramu lahko nastopa tudi vrnltvenl stavek (RETURN), ki pomeni takojten zakljufiek izvajanja podprograma. Ce tega stavka ni, se vrnitev izvede, ko izvajanje podprogram pride do konca (END). V primeru funkcijskega podprograma sledi vrnltvenemu stavku izraz, ki dolofia vrednost funkcije. Definicija funkcijskih podprogramov je pri mo-dull-2 In pascalu razliöna, saj jih pri pasaalu oznaCuJe rezervirana beseda lunation. V eodu- li-2 funkcijo loeimo od podprograma le po tem, da Je v glavi definicije naveden tip. Primeri PROCEDURE Pravipodprogrami BEGIN END PraviPodprogrami PROCEDURE Funkoijai tip) BEGIN END Funkcijai Pri definiciji tipov podprogramskih parametrov obstajajo nekatere motnosti sprolfianja sicer trdnega sovpadanja tipov. In sicer lahko uporabimo spletne tlpei - UORDi osnovna rafiunalnlika beseda, sicer posplolenje kateregakoli tipa, ki Je dolg eno besedo - ADDRCSSi kazalec na poljuben tip, sicer Je definiran kot ADDRESS - POINTER TO HORD| - BITSETi poljubna mnolioa, sicer «notica 16 bitov - ARRAY OF tipi odprto polje poljubnega tipa, katerega velikost lahko dolo&lmo s funkcijo HIGH Sistem Jezika pozna zelo malo standardnih funkcij in podprogramov. 8 tem se Je jezik izognil odvisnosti od dolofienega operaoiJskega sistema ali rafiunalnika. Vsi standardni podprogrami izvirajo iz definicije jezika in omogo&ajo predvsem bolj parametrizirano pisanje programov. Seznam standardnih podprogramov si lahko bralec ogleda v knjigi CIB]. Na tem mestu naj posebej poudarimo, da podprogrami za branje z razlifinih enot oziroma datotek ostajajo povsem uporabnikova skrb. Vendar prcizvajalol prevajalnikov vedno dodajajo sistemu Jezika nekakino standardno mnotloo modulov, ki omogoSaJo bralne in pisalne operacije na različne enote ter ostalo osnovno delo z operacijskim sistemom. Hkrati se v svetu vedno bolj Cuti potreba po standardizaolJI teh modulov. Dolo&en naj bi bil predvsem vmesnik med modulo-2 in vhodno-1zhodnlmi funkcijami, ki so odvisne od posameznega sistema. Delovno ima tega projekta Je OSSI in pomeni Operating System Standard Interface Cl]. Izvaja se na veCih mestih, njegovo sredlifie pa je v Zuriohu. 2.4 Proaa«! Kot nasledstvo concurrent pascala so procesi. Prooes predstavlja zaporedje ukazov, ki se izvajajo nepreklnjno. Proces je tudi nekako osnovna flzlöno Izvajana enota. Modula-2 o«c-gofia uporabo sorutin (coroutines), kar pomeni, da nima vgrajenega razporejevalnika. Prooes lahko polenemo s podprogramom TRANSFER, ki preda nadzor od trenutnega procesa naslednjemu, ki Je naveden kot parameter. Podrobnejli opis tega mehanizma sledi v äetrtem poglavju. 3Li_Hodulmrno urooriairenJ« Dandanes, ko cena strojne opreme vztrajno pada in se oena programske opreme dviguje, postajajo nafiela ufiinkovitega programiranja vse bolj pomembna. Prav modularno programiranje se Je Izkazalo za eno od temeljnih na&el. V ZDA so v sedemdesetih letih sestavili celo ekipo strokovnjakov, ki naj predlotila nov jezik, ki bo omcgoCal hitro in u&lnkovlto, torej modularno programiranje. Nastala je ada. Vendar se je kmalu izkazalo, da je Jezik prevelik, zaradi fiesar nikakor ni mogel dobiti tlrlega pcdro&Ja uporabe. Hkrati z njim se je pojavil manjtl, vendar te vedno zelo uOlnkovit jezik - modula-2. \ 3.1 Dalltav n« aodula Sedaj, ko tBO dobili notnoat uporcba loöanih nodulov, Jih aoniino 1000) VAR skladi ARRAY Cl..VelIkostSkladal OF CARDINAL) m CARDINAL) PROCEDURE Vstavi (eli CARDINAL)) BEGIN IF n < VelikostSklada THEN ni-n+l) skladCn3 i- el END END Vstavi) PROCEDURE Vzemi (VAR eli CARDINAL)) BE6IN IF n > Q THEN el i> skladCn^) ni-n-1 END END Vzemi) PROCEDURE Prazen Ol BOOLEAN) BEGIN RETURN n - 0 END Prazen) PROCEDURE Poln ()i BOOLEAN) BEGIN RETURN n • Val1kostSk1 ada END Poln) BEGIN (« iniolallzaoiJa modula •) n I • O END NadzornlkSklada. Motnost sistaaskaga ali nizkonivoJskega programiranja (low lavai progranaing) Ja ana bistvenih postavk, kl Jih mora omogofiati sodoben programski Jezik. Vsekakor mora biti moten dostop do poljubnih naslovov v pomnilniku in pisanje prekInltvenlh podprogramov. Prav slednja zahteva Je moCno povezana s pojmom prooesa in 4e bolj « pojmom paralelnih procesov. Modula-2 Ja v pogledu zmotnosti opisovanja paralelnih procesov zalo mofian Jezik. Za v osnovi pozna pojem prooesa. Proossl se izvajajo kot sorutlne Cooroutlnas), vendar lahko uporabnik ob ustrezni zunanji prekinitvi napite razpore-Jevalnik (scheduler), kl omogoöa navidezno so-fiasno izvajanje vefilh procesov. V drugem delu filanka bomo med primeri prikazali prav takten razporeJevalnlk. 3.3 Loöano pravaJanJa S tem, da smo razbili program na module, nismo le zatfiitlli posameznih podatkovnih struktur ali dostopov do razllfinlh enot, ampak smo pridobili tudi motnost, da lahko vsak modul prevajamo povsem neodvisno od ostalih. Kot dokaj preprost a zelo pomemben primer uporabnosti lofienega prevajanja Je vzdrtevanje programske opreme. Recimo, da se v obdobju izkoritfianja nekega programskega paketa izka-te, da Je sklad, ki ga uporabljamo preko aodula NadzornlkSklada premajhen. Vse kar Je treba spremeniti, Je delovni modul, ga prevesti in ponovno vse skupaj povezati. Ostali moduli se pri tem prav nifi ne spremenijo! Naj na koncu poglavja navedemo te delovni modul A.l Ooatop Ito poanllnika Modula-2 omogofia dostop do poljubnega mesta v pomnilniku na dinamlfinl ali statlfinl nafiln. Statifini nafiin (podobno kot pri OMSI pasoalu CIO]) pomeni, da ob definiciji spremenljivke navedemo tudi mesto, kjer se nahaja. VAR .NaNaslovuia ClG^i CARDINAL) Dlnamifien dostop pa Je moten preko spletnega tipa ADDRESS, ki Je definiran v modulu SYSTEM in ima oblikoi TYPE ADDRESS - POINTER TO HORD) Tako lahko uporabljamo opisano mesto v pomnilniku tudi na sledeG nafiini MODULE Prin«r2i FROH SYSTEM IMPORT ADĐRESS| CONST xxx - 0| VAR 11 ADDRESS) BEGIN a <• ADDRESS <10>| a* I- KXHi (« N«N«slovulO •) END PrliMr2. SlQ>r pa lahko dsfinlramo tudl oalotan, raolmo 16-blten poanllnlk kat polj* na na«ladnjl na-eini CONST MaxNaslov - l77777Bl VAR Poanilnlk COBli ARRAY CO..naxNaslov3 OF UORDi 4.2 Prcoasl In praklnitvani podprograai Za lalja raiunavanja noinoatl pisanja praklni-tvanih podprograaov v aodull-Z «i najpraj o-glajao, kako Jazlk uporablja prooasa. Proo«» Ja daflntran kot osnovna liva Jalna anota, kl ta Izvaja zaporadno (sakvanCno). Savada lahko nak prooa« proli in ustvarja druga prooasa, V iiioduli-2 Ja procas posaban tip, kl ga oddaja aodul SYSTEM. V dodatku k daflnloljan Jezika Cia3 Je ta tip sioar opulfian, vendar ga boao v nallh prlnarlh zaradi preglednosti ta uporabljali. Naaosto tipa PROCESS se sedaj uporablja enostaven tip ADDRESS. Prooes se izvaja zaporadno in naprakinjano, dokler ne potane nekega drugega prooesa. To izvede s podprogranon PROCEDURE TRANSFER . NOVICE IN ZANIMIVOSTI All bo rizika izrinila matematiko s prvega mesta med znanostmi? Razgovor Tony Durhamsa z dr. Davidom Deutschem o možnosti, da matematiko prezenemo z njenega platonicnega oblaka in da rizika zavzame njeno mesto prve med znanostmi. Matematika je kot prva med znanostmi izzvana. Ce bo prevrat uspel, tvega izgubo statusa tudi računalniška znanost, ki ta staus uziva kot veja matematike, čeprav je pri tem tveganje majhno. Izid je lahko povsem drugačen, ce bi se pokazalo, da racunalnisk znanost (kot običajno Imenujemo znanost o računanju) sploh ni del ma t ema tike. Izzivalec Je fizika. In Ce fizika postane nova kraljica znanosti, bi lahko, kar je presenetljivo, računalniško znanost priznali za prvega ministra. Poseben namišljen računalnik namreč Igra pomembno vlogo- v miselnih poskusih, s katerimi poskušajo fiziki utemeljiti svoj naskok. Kdo Je komu potrebnejsi? Fizika se je zaupala matematiki kot jeziku, v katerem je Izrazila svoje najgloblje In najsplošnejše trditve. In vendar so matematični zakoni v nekem smislu zelo Slbki. S splošnimi Izrazi opisujejo, kako se obnašajo veliki fizikalni sistemi, ne rešujejo pa problemov podrobnega simuliranja poljubnega fizikalnega sistema, ki Je v bistvu problem računanja. Na drugi strani se Je matematika vedno videla zlveCo v platonskem svetu, na nek nacin presegajoco manjvredne posebnosti In Izjemnosti fizikalnega sveta. Toda ta pogled Je v nasprotju z materialistično komponento v znanosti, ki kot se zdi, puSCa vse manj prostora za koncepte Čistega, od materije neodvisnega umevanja. Za materialiste je tudi matematika le rezultat dela možganov, računalnika ali kakega drugega fizičnega sistema. Potemtakem fizika postavlja meje dosežkom matematike. Lahko bi (In verjetno tudi bodo) napisali obsežne knjlge,_ ki bi razlagale argumente ene in druga strani'. Nobena stran pa si ne more • privoščiti osabnostl, saj je 20. stoletje pokazalo, da obstajajo stvari oziroma pojavi, ki jih ne more poznati niti matematika niti fizika. Teorija kvantne fizike dokazuje, da načeloma ne moremo ,poljubno natančno izmeriti vrednosti vseh spremenljivk nekega fizičnega sistema. Ce Izmeriš natančno vrednost ené spremenljivke, se ti bo vrednost druge, po He isenbergovem principu nedoloCenosti, neizbežno Izmuznila. Goedlov Izrek ,In številni sorodni rezultati v matematiki dokazujejo, da obstajajo trditve, ki so resnične, ne moremo pa jih dokazati. Nekateri domnevajo, da med obema rezultatoma obstaja globoka povezava, ki postavlja meje tako matematičnemu kot fizikalnemu znanju^ Kje ob vsem tem stoji računalniška znanost? Alan Turing je prvi poskušal določiti, kaj je mogoče Izračunati s strojem. V ta namen je moral najprej ustrezno definirati stroj. Njegova definicija v določenem smislu velja za vse poznane računalnike. Logik Alonzo Church je razmišljal v podobni smeri. Oba pa sta svoje rezultate oblikovala znotraj okvirov, ki so v bistvu matematični In, v nasprotju s splošnim prepričanjem, jima nI uspelo dokazati, da meje, ki sta jih upoštevala, res veljajo za vsak računalnik. Domneva v obliki ti. Turlngove-Churchove hipoteze je se vedno le domneva. Ker je omenjena hipoteza oblikovana matematično (se pravi s sredstvi matematike), upravičeno pričakujemo, da bo tak tudi izziv oziroma ugovor proti njej. Čeprav je presenetljivo, se dozdeva, da to hlpoteto lahko ovrže fizika. Pri tem velja Se vedno neizrečena pa vendar upostevna domneva, da nas matematična definicija računalnika osvobaja nepotrebnih fizikalnih omejitev. A nekateri pomembnejši zagovorniki fizikalnega pogleda menijo, da je matematika tista, ki trpi zaradi nepotrebnih omejitev. Domnevajo, da imajo fizikalni sistemi morda sposobnost ra-Cunanja, ki presegajo tiste, ki jih lahko dosežemo z golo matematično manipulacijo simbolov. Dr. David Deutsch Iz Oxfordske univerze je eden vodilnih med zagovorniki pogleda, v katerem Ima fizika prvo mesto. Ukvarja se s teoretičnimi raziskavami računalnikov, ki se pokoravajo zakonom kvantne fizike. Med vsemi teorijami, ki razlagajo fizični svet, ponuja najboljšo razlago kvantna teorija skupaj z relativnostno teorijo Alberta Einsteina. Za veČino ljudi so pojavi, ki jih napoveduje, nenavadni In v nasprotju z Intuicijo, vendar so napovedi potrjene s poskusi. Kvantni uClnki običajno ostajajo prikriti, razen kadar je sistem, v katerem jih opazujemo, zelo mrzel ali zelo majhen. Zato se zdi, da v običajno velikih toplih sistemi, veljajo zakoni klasične fizike. Eden najbolj nenavadnih vidikov kvantne fizike je, da na potek dogajanja poleg dogodkov, ki se dejansko zgodijo, vplivajo tudi dogodki, ki bi se lahko zgodili (pa se niso). Elektroni, usmerjeni eden za drugim proti oviri z dvema rezama, oblikujejo na zaslonu za oviro vzorec, ki je drugačen, kot Ce bi bila reža le ena (oziroma ce bi Izmenično zapirali po eno režo). Ce lahko gre elektron samo skozi eno režo, kako že sama prisotnost druge reže, vpliva na njegovo gibanje? Deutsch je svoj Cas menil, da nalaga kvantna mehanika nove omejitve zmogljivostim Turlngovega stroja. K sreCl pa Je ugotovil, da se moti. Stroj, ki bi ustrezal Turlngovemu stroju, vendar bi bil zgrajen iz abstraktnih kvantno-mehansklh komponent, bi Imel zmogljivosti, ki Jih navaden Turingov nima. Tak- stroj ne more izračunati funkcij, ki niso Izracunljlve s Turlngovim strojem, niti nI pokazano, da kakSno funkcijo Izračuna hitreje. Kadar na vprašanja obstaja le en odgovor, ga vsaj kolikor nam Je do danes znanega, kvantni računalnik ne bo naSel hitreje kot kak drug. Vznemirljiva razlika pa nastopi kadar rešujemo probleme. Problem Ima namreC lahko vec odgovorov, od katerih vsak ustreza eni od rešitev. Deutsch Je dokazal, da lahko kvantni računalnik pospesi reševanje problemov. Probleme, ki Imajo pri reševanju s Turlngovlra strojem eksponentno Časovno zahtevnost (tj. Cas potreben za IzraCun raste eksponentno z naraščanjem velikosti problema), Je s kvantnim Oracunalnlkom mogoče resiti v Casu, ki Je pollnomsko odvisen od velikosti problema. Na žalost Je Deutsch dokazal svoje rezultate le za skonstruirane probleme, ki oCltno nimajo praktične uporabe. Kljub temu imajo njegova dognanja vsaj simboličen pomen; k uporabneJSIm rezultatom nas bodo pripeljala pozneje. Kvantni računalnik sam seveda obstaja le teoretično. Deutsch trdi, da Je njegov model v skladu s fizikalno teorijo. Čeprav Je abstrakten In ne doloCa, kakšni so v nJem sodelujoči sistemi: so to molekule, superprevodne zanke, ali elektroni ujeti v "kvantne vodnjake"? Tehnologija bo morda tudi temu problemu nekoC kos. Morda najbolj nenavaden pri tem teoretičnem računalniku je naCln, s katerim dosega hitrost. Deutsch ga imenuje "kvantni paralelIzem". Povedano enostavno; stroj obstaja hkrati v veC vzporednih svetovih. V vsakem od njih Izvaja rahlo drugačno računanje. Na koncu se rezultati združijo in uskladijo. Deutsch verjame "Everettovl interpretaciji" kvantne mehanike, ki so. Jo popularizirale knjige, kot je npr. Ostali svetovi (Paul Davies, Other Worlds). Za običajne interpretacije Je obstoj vzporednih svetov le možnost ali celo izmislek fizikov, ki naj pomaga pri določenih Izračunih. Everettova interpretacija pa pravi, da so vzporedni svetovi resničnost. Sprva so menili, da Je razlika v interpretaciji bolj filozofske kot fizikalne narave. "Veljalo Je mnenje, da gre le za različne Interpretacije istega formalizma, saj so vse Interpretacije predvidevale enake eksperimentalne rezultate", pravi Deutsch, "toda menim, da Je bila Everettova interpretacija celo tedaj neizogibna, saj so po mojem ostale interpretacije pomanjkljive s filozofskega stališča. Seveda pa to ne more biti argument za fizika." To so np-kompletl oziroma npc-probleml. Pomembni so zato, ker bi hiter algoritem za reševanje kateregakoli npc-problema avtomatično zagotovil reSltev vrste drugih, domnevno nerešljivih problemov. "To Je", kot pravi Deutsch, "zelo vznemirljiva možnost, ki je ne smemo izključiti. Ne vemo. Toda odkritje vsaj enega qp-problema, ki bi bil hkrati tudi npc-problem, bi popolnoma spremenilo računalniško znanost in nas celoten pogled na svet, saj bi pomenilo, da obstaja naCln za reSevanJe doslej nerešljivih problemov." A žalostno dodaja: "Imam zanesljiv občutek, da stvar ne bo delovala". Naj bo kakor koli. Delo Deutscha Je 2e prispevalo svojo tezo Ideji, naj računalniška znanost sloni bolj na fiziki kot na matematiki. In danes je računalniška znanost pomemben del Intelektualne sfere. Matematiki bodo morali zbrati svoje Intelektualne sile, Ce želijo ostati na vrhu drevesa znanosti. Computing, December 11, 1986 Prevedel Ivo SCavnlCar "Toda v zadnjih letih" nadaljuje Deutsch, "se je pokazalo, da je Ime interpretacija napačno. Everettova verzija kvantne teorije se rahlo razlikuje od običajne, njeno različnost pa lahko, vsaj v nacelu, pokažemo s poskusi. Domnevam, da sem prvi, ki je objavil možnost takega poskusa". Deutsch smatra, da njegov miselni poskus s kvantnimi računalniki zahteva odločnejši odgovor, kot znani poskus z dvema režama. "Pri računanju nastane nekaj novega", pravi. "V vsaki veji nastane novo znanje, nova, koristna informacija. In težje kot v primeru poskusa z elektronom filozofsko rečemo, da gre za različne možnosti, ki so kombinirane ena z drugo, dale konCni rezultat. V določenem smislu gre res le za različne stopnje, v drugem pa se teže Izmikamo, saj nastane nova informacija. Od kod je prlSla? Kdo Jo je oblikoval?" Zares težko sveta, ki računanje. bi bi zanikali obstoj vzporednega za nas opravljal koristno Obstaja domneva, da vsebuje množica problemov, ki jih obvladamo s kvantnim računalnikom (Deutsch jih je imenoval qp-probleml), kot svojo podmnožico eno od posebnih skupin problemov, neobvladljivih s Turlngovim strojem. FACUir-Y fìFf-LECTIÌ .Au ctjCmtCHlNC, UNI VERb' n OF ^AGRt'B ^^ Cq^RUTE^^IDED^. ^'WlDED MANUFACTURING %tNFOmATIKÀ'«>' CAD hai become the initiol module of Compuler ln!e-groted Manufacturing - GM, wide ipreod in a great number oF industries. The Sympoilum CAD/CAM 1987 once agom provide oil engineen, doctors, researchers arid scientists inlerested in theoretical and oppli«d work on CAD and CAM or whose work involves application of computers in reseorch and education, with good opportunity 4o exchange experience arrd knowledge fhrovgh talks, diicvisions end meetings. SUBJEa OF THE SYMPOSIUM A. CAD/CAM irstem componenti Al. System softwore, computer architecture Al Automoiic, robotic, flexible monufocturing systems A3. Analysis, synthesis and optimiiction techniques A4, informotion itrucJures, business systems ft. CAD/CAM duplication oreos BI. Archifecfure and civH engineering BJ Shipbuilding ond mechonicot engineering B.3 Ecology, meteorology, oceonology B4. Elecfric-pow«r ond electro-mechomcol engineering 95. Electronics B6. Medicine, medical information systems 87. Forestry, wood industry SU&MISSION OF PAPERS AND DEADUNES iUgistration formi, duly filled in, with »ummorles up to 500 words, which illuslrote the content and purpose ol fh* pòper, should be submitted by Febrwory U, 1917, to the address of lechr^icol orgoniier - ATLAS, -Congreii Deportmenf. The selecfed popers, written in accoiäonc« wi