[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::languages

Title:Languages
Notice:Speaking In Tongues
Moderator:TLE::TOKLAS::FELDMAN
Created:Sat Jan 25 1986
Last Modified:Wed May 21 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:394
Total number of notes:2683

79.0. "Simulation Languages?" by MMO03::SANDERS () Tue Jan 21 1986 09:13

Does anyone know of any "simulation languages" for VAXen such as SIMULA or
GPSS?

(This is about all I know about it, a customer has asked me this question.)

Jim
T.RTitleUserPersonal
Name
DateLines
79.1PISA::BRETTTue Jan 21 1986 11:114
	Ada provides all the multi-tasking, etc., that you need to build
	simulations...

/Bevin
79.2PIPER::REILLYTue Jan 21 1986 11:3325
I have a copy of a SIMULA compiler for VAX/VMS (I ran it last under V3).
I can't remember where I got it, though I believe the folks at NCC
wrote it.  (So, your customer should be able to get a tape through
the Norweigan Computing Center.)

Alas, the compiler does not support call by name, so NONE of the 
whizzy SIMIO stuff works, but all the other features are supported.

The generated code is not well optimized either, so if your customer
is into simulating the history of the U.S. Postal Service, one transaction
at a time, a model compiled by this compiler might be a real pig.  

From what I can tell SIMULA is in its death throes as a language, especially
now that all the features of SIMULA (classes, objects, processes, "type-monitor"
concepts) have been incorporated in ADA.  Your customer might be better
off writing his simulations in ADA if he is capable.  (If he could 
master SIMULA, he can learn enough ADA to get by.)


Finally, if the customer owns a DECSYSTEM20, there is a SIMULA compiler 
available from DECUS that runs under TOPS10 and TOPS20.  

Hope this is helpfull.....
						matt

79.3R2ME2::MAILMANTue Jan 21 1986 19:435
Its been 8 years since I used SIMULA, care to refreash my memory...
What is a class?

thanks
/steve
79.4PIPER::REILLYWed Jan 22 1986 11:4982
A Class is a description of an object.  It can be a data structure
declaration, or a combination of a structure declaration and a
set of procedures for manipulating the data contained in an object
of this class.

The class description may be parameterized.  These parameters are
used to initialize the data structure, or in the code called when
an object of this class is created.

An object is created by a statement of the form:

	NEW classname (parameter-list)

The following code is a description of a processor (memory reference generator)
that I used in a simulation of a multiprocessor memory interconnect.
It has no private procedures.  It is a class with characteristics of a SIMULA 
Process.


	Process CLASS processor (min, mean, hitrat, writrat, modnum, procnum);
	INTEGER min, mean, modnum, procnum;
	REAL hitrat, writrat;
		
	BEGIN
	    INTEGER reqtime;
	    INTEGER bank, quarter;
	    INTEGER pass;
	    INTEGER accesses, acctime, cyctime;
	    BOOLEAN hit, writec;

	    accesses := acctime := cyctime := 0;

	    WHILE NOT end_of_simulation DO
	    BEGIN
	!	generate a memory request at some time in the future.
	! 	wait until then.
		Hold(Poisson(mean, seed));
		reqtime := Time;

	! 	pick a bank/quarter for the request
		bank := Randint(0,7,seed);
		quarter := Mod(bank,4);

	!	is the access a hit or miss?  write or read?
		hit := Draw(hitrat,seed);
		writec := Draw(writrat,seed);

	!	put a request into a cache object service queue
		Into(cache(modnum,quarter).pqueue);

	! 	if the cache service queue is empty, activate the
	! 	cache server process.
		IF cache(modnum,quarter).Idle THEN
		ACTIVATE cache(modnum,quarter);

	!	Wait for a response from the cache
		Passivate;

		IF collect_statistics THEN accesses := accesses + 1;

		! was this a double cycle ? ;
		IF double_all AND NOT (writec AND double_write) THEN Hold(100);
			
	    ! now wait until it is time for READY to
	    				be asserted;
		pass := Time - reqtime - 200;
		IF pass < 0 THEN Hold(-pass)
		ELSE Hold(200 - Mod(pass,200));

		IF collect_statistics THEN
			acctime := acctime + Time - reqtime;

		! wait for the logic to settle out;
		Hold(min);
			
		IF collect_statistics THEN
			cyctime := cyctime + Time - reqtime;
			
	    END;

	END *** of processor ***;
 
79.5PISA::WINALSKIPaul S. WinalskiSun Jan 26 1986 12:563
GASP runs on VAXen.

--PSW
79.6Thanks for the info.MMO01::SANDERSJim SandersWed Jan 29 1986 10:4510
  RE: .5,
  
  Paul,  what's GASP?  (Did you mean GPSS?)
  
  RE: .1,
  
  Tell me more about NCC.  Do you have any info, address, etc.
  
  Thanks,
  Jim
79.7where to send for VAX/SIMULA infoPIPER::REILLYWed Jan 29 1986 20:0315
    I looked through the (meager) documentation that I have on the
    SIMULA compiler here.  Evidently some folks in Stockholm did the
    port of the "Portable SIMULA Front End" written at NCC (according
    to some compiler error messages).  The address for info is
    
    QZ, Stockholm University Computing Center
    Box 27322
    S-102 54 Stockholm
    Sweden
    
    (That's the way the address appears in the documentation I have.)
    
    							Good luck,
    							matt
    
79.8TLE::WINALSKIPaul S. WinalskiThu Jan 30 1986 21:3215
No, I meant GASP (the SP means Simulation Package, don't know what the GA is).

GASP is a library of FORTRAN subroutines to assist in writing simulation
programs.  The routines include random number generators, statistical routines,
report formatters, queue and event management routines, etc.  You can treat
the calls to these routines almost like a higher-level language, but the
entirety of FORTRAN is there if you need it or wish to use it.

It's a pretty powerful package.  It's written in ANSI Standard FORTRAN-66,
and it runs absolutely everywhere.  It is the most portable non-trivial
piece of software I've ever seen.  I took the DEC-10 version and it compiled
and ran on a IBM System/370 and on a VAX without changing a single line of
code!

--PSW
79.9VHDLBLITZN::PALORik @(oo)@ PaloSat Mar 08 1986 22:4917
	VHDL  is the VHSIC H/W Description Language and is a project sponsored
	by USAF at Write Patterson AFB.  It's used to describe H/W circuits
	and their interconnections, then bundle it all up and simulate it
	in a workbench type situation.  The VHDL language is based on Ada
	and has neat things like program libraries and packages and such.
	I'm working on the Independent Verification & Validation of that
	compiler/simulation system (UTMC is the prime) and Intermetrics
	out of Bethesda, Md. is the developer of the first system which
	is being written in VAX Ada for, of course, the VAX.  It will also
	be targetted to the IBM/370.

	VHDL has recently been "grabbed" by IEEE and is in the process of
	being drafted as a Standard.  There will be an IEEE conference on
	VHDL 20th-21st Mar in North Carolina.

		\rik
79.10 New infos on SIMULA? PAULUS::THIMMAndreas Thimm, SAM Frankfurt, @FROMon Nov 02 1987 06:2615
    
    Hi all, hi Matt,
    
    nearly two years have passed since the last entry on SIMULA in this
    note / conference / DECnote-world had been typed.
    
    Does anybody know about any actual dates of the compiler? (Version,
    where_to_get_it_from, price (if not DEC internal), ...)

    
    Thanks very much
    
    
    
    Andreas