34 Informatlca št.4 letnik 1978 nazmnožujofii se program v pascalu v.batagelj UDK 519.682 Univerza v Ljubljani, FNT - VTO Matematlka in mehanlka V sestavku je opisan razmnožujoči se program v pascalu. 8ELF-REPR0DUCING PROGRAM IH PASCAL: in the note an example of self-reproducing program in paacal ie given. Eno izmed pomembnih poglavij kibernetike ali eplošne teorije avtomatov, kakor jo je v svojih delih imenoval J, von Neumann, je teorija raz- množujočih se avtomatov £ll . Tu ima avoja ko- renine tudi naslednja naloga: V izbranem programirnem jeziku sestavi "razmnožujoči se" program, ki bo ob izvedbi izpisal na neko datoteko svojo natančno (izvorno) kopijo. lej nalogo je posvečen eeetavek £2 3 » v kate- rem so opisani razmnožujoči se programi v fortranu, algolu 60, liepu in snobolu; poleg tega pa tudi idajna zamisel takih programov<> Vendar zaradi poaebnosti posameznih programir- nih Jezikov, vprašanje: Eako izgledajo razmnožujoči se programi, č« sploh obatajajo, v drugib programirnib. jezi- kih ? kljub temu ni postalo povsem nezanimivo. Ta ob- čutek sem dobil, ko sem poskušal eestaviti tak program v pasoalu. No, kakor vidite spodaj, oreh ni bil pretrd. Llteratura: J. von Neumann: Theory of Self-reproducing Automata,(Ed.A.W.Burke); Univereity of Illinoie Preaa, Urbana, 1966 C2J Po Bratley, J. Millo: Self-reproducing Pro- grama; Softwara - Practice and Experience, vol. 2(1972), p. 397-^00 PROGRAM SELfrREP(OUTfUTfX) I CONST N=20i K=50» U=*»#! VAR BEGIN AC AC- AC AC AC AC AC AC AC ARRAYCI..KDOF CHARJ XiTEXT» IJINTEGER) BJTJ AJARRAVC1..N30F T! 13!=*PROGRAM SELFREP < OUTPUT.X)» 23J=*CONST N=20J K=50i 33i-* Ž= i L= AC i R» 3!= i U= 43i=*TYPE T=PACKED ARRAYT1,.K3OF CHARJ 53!=#VAR XJTEXTJ IJINTEGERJ 63!=* B!T! ASARRAYC1..N3OF T> 73t=*Ef AC163!=* FOR Ii=l TO N DO URITELN(XfL»I!2fR»ZfACI3>ZtW)! FOR I!=9 TO N CiO WRITELN(X. ACI3 > AC183!=*END. AC33C 9]!=Z( AC33C103i=7.( AC33C11]!=ZJ AC33C123!=Z( AC33C173J=ZJ AC33C231!=Z» AC33C293!=Z! AC33C323 J-ZP AT3K373 '. =7! AC3]C393.'=Zi FOR 11=1 TO 7 DO WRlTELN(XrAri3)) AC33!=Bf FOR i:=l TO N DO WftITELN(X.L.l:2»ft»ZtAri3»Z.U)i FOR I!=8 TO N DO URITELN(XfAC13) *i *) t) *l *! *i ti *i *i *i *) *i *; t> *! t; t; *>