Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!mcvax!ukc!stc!inset!dave From: dave@inset.UUCP (Dave Lukes) Newsgroups: net.lang.c,net.arch Subject: Re: pointers to freshly minted functions. Message-ID: <868@inset.UUCP> Date: Mon, 17-Mar-86 16:06:11 EST Article-I.D.: inset.868 Posted: Mon Mar 17 16:06:11 1986 Date-Received: Fri, 21-Mar-86 04:31:07 EST References: <1700003@umn-cs.UUCP> <1700004@umn-cs.UUCP> <6449@utzoo.UUCP> <204@dg_rtp.UUCP> <2277@phri.UUCP> Reply-To: dave@inset.UUCP (Dave Lukes) Organization: The Instruction Set Ltd., London, UK. Lines: 53 Keywords: tagged architectures Burroughs, B6700, B5700 Xref: watmath net.lang.c:8198 net.arch:2869 In article <2277@phri.UUCP> roy@phri.UUCP (Roy Smith) writes: >In article <204@dg_rtp.UUCP> throopw@dg_rtp.UUCP writes: >[In an ongoing discussion about self-modifying code] >> Consider a C >> function which creates an instruction stream, and returns a pointer to a >> function which when invoked will execute this instruction stream. [...] >> It must *always* be possible to implement this function, otherwise >> compilers would not be possible, since compilers are simply programs that >> treat code as data ... WHAAAATTT??? Uh-uh: you mean LOAD-AND-GO compilers aren't possible: most compilers generate a file of code which is read into the I space by the OS. ^^^^ > The Buroughs B5700 had (in addition to the strangest subroutine >linkage I've ever seen) a tagged architecture. Each memory word had a >(3-bit?) tag which defined the value stored there as integer, real, >pointer, instruction, etc. This tag was not directly accessible by a ^^^ ^^^^^^^^ ^^^^^^^^^^ ^^ ^ >programmer which made it kind of hard to implement a compiler. Presumably ^^^^^^^^^^ Wrong: there is/was (at least on the B6700) a ``set tag'' instruction (I don't rememeber what it was called) which overwrote the tags in the operand. Anyways: there are plenty other reasons why implementing a compiler on those beasts is strange: the major one being the total lack of protection. >(I never actually used a B5700) there was some magic way the OS used to >convert data into code, but I never ran accross any reference to it. Again (see above), the code was generated in a file usually, then run by the OS. > One of the other oddities about the 5700 was a lack of conventional >assembler -- you did systems programming in an Algol derivitive. Sure, it was an Algol derivative (ESPOL: Executive Systems PrOgraming Language it was called), but totally machine oriented. BTW: tou HAD to program in a high level language: assembler was forbidden due to the lack of protection (which was all provided by the compilers ...) >-- >Roy Smith, {allegra,philabs}!phri!roy >System Administrator, Public Health Research Institute >455 First Avenue, New York, NY 10016 P.S. BTW: Burroughs called their OS MCP (Master Contol Program) long before Disney did TRON. Does anyone know if Burroughs sued? -- Dave Lukes. (...!inset!dave) All opinions, philosophies, dogmas and idiosyncrasies expressed in this article INCLUDING THIS DISCLAIMER, are solely those of the author.