ORIGIN '~beta/basiclib/systemenv'; --- program: Descriptor --- (*Italautomata modellje. A machine a System egy parhuzamos egyedi mintaja. A drink_ready dinamikus referencia, hiszen erteke coffe_ready ill. soup_ready lehet.*) systemenv (# machine: @|System (# activate: @port; coffee_ready, soup_ready: @port; drink_ready: ^port; make_coffee: activate.entry (# do 'Fo a kave' -> putline; coffee_ready[]->drink_ready[] (*Atallitja a drink_ready -t coffee_ready -re.*) #); make_soup: activate.entry (# do 'Fo a leves' -> putline; soup_ready[]->drink_ready[] (*Atallitja a drink_ready -t soup_ready -re.*) #); get_coffee: coffee_ready.entry (# do 'Kesz a kave' -> putline; #); get_soup: soup_ready.entry (# do 'Kesz a leves' -> putline; #); do cycle(# do activate.accept; drink_ready.accept; #) (*ez a cycle indul el elsonek, de az activate.accept miatt rogton be is fagy, var egy activate.entry-re, majd ha megjon, a drink_ready.accept var a drink_ready.entry-re.*) #); do machine[]->fork; (*A fork elinditja a machine-t parhuzamosan*) cycle(# do machine.make_coffee; (*activate.entry-t ad*) machine.get_coffee; (*activate.entry-t ad*) machine.make_soup; (*drink_ready.entry-t ad*) machine.get_soup; (*drink_ready.entry-t ad*) #) #)