Knowledge (XXG)

Burroughs Large Systems

Source πŸ“

2159:
instruction (value call) that loaded an operand onto the stack. This op-code was two bits long and the rest of the byte's bits were concatenated with the following byte to give a fourteen-bit addressing field. The code being executed would be at some lexical level, say six: this meant that only lexical levels zero to six were valid, and so just three bits were needed to specify the lexical level desired. The address part of the VALC operation thus reserved just three bits for that purpose, with the remainder being available for referring to entities at that and lower levels. A deeply nested procedure (thus at a high lexical level) would have fewer bits available to identify entities: for level sixteen upwards five bits would be needed to specify the choice of levels 0–31 thus leaving nine bits to identify no more than the first 512 entities of any lexical level. This is much more compact than addressing entities by their literal memory address in a 32-bit addressing space. Further, only the VALC opcode loaded data: opcodes for ADD, MULT and so forth did no addressing, working entirely on the top elements of the stack.
1606:
Edit) which was developed as the online program development environment. The University of Otago in New Zealand developed a skinny program development environment equivalent to CANDE which they called SCREAM/6700 in the same time that IBM was offering a remote time-sharing/program development service known as CALL/360 which ran on IBM 360 series systems. Another MCS named COMS was introduced around 1984 and developed as a high performance transaction processing control system. There were predecessor transaction processing environments which included GEMCOS (GEneralized Message COntrol System), and an Australian Burroughs subsidiary developed MCS called TPMCS (Transaction Processing MCS). The transaction processing MCS's supported the delivery of application data to online production environments and the return of responses to remote users/devices/systems.
2172:
and use it as the offset into the array's address space, with bound checking provided by the hardware. By default, should an array's length exceed 1,024 words, the array would be segmented, and the index be converted into a segment index and an offset into the indexed segment. There was, however, the option to prevent segmentation by specifying the array as LONG in the declaration. In ALGOL's case, a multidimensional array would employ multiple levels of such addressing. For a reference to A, the first index would be into an array of descriptors, one descriptor for each of the rows of A, which row would then be indexed with j as for a single-dimensional array, and so on for higher dimensions. Hardware checking against the known bounds of all the array's indices would prevent erroneous indexing.
1951:
access to the enclosing environment and this is a very efficient IPC (Inter Process Communication) mechanism. Since two or more tasks now have access to common variables, the tasks must be synchronized to prevent race conditions, which is handled by the EVENT data type, where processes can WAIT on one, or more, events until it is caused by another cooperating process. EVENTs also allow for mutual exclusion synchronization through the PROCURE and LIBERATE functions. If for any reason the child task dies, the calling task can continue – however, if the parent process dies, then all child processes are automatically terminated. On a machine with more than one processor, the processes may run simultaneously. This EVENT mechanism is a basic enabler for multiprocessing in addition to multitasking.
1378:, handled the larger B7x00 line. All machines from both lines were fully object-compatible, meaning a program compiled on one could be executed on another. Newer and larger models had instructions which were not supported on older and slower models, but the hardware, when encountering an unrecognized instruction, invoked an operating system function which interpreted it. Other differences include how process switching and I/O were handled, and maintenance and cold-starting functionality. Larger systems included hardware process scheduling and more capable input/output modules, and more highly functional maintenance processors. When the Bxx00 models were replaced by the A Series models, the differences were retained but no longer readily identifiable by model number. 1589:(Network Definition Language) compiler generated the DCP code and NDF (network definition file). Ultimately, a further update resulted in the development of the NDLII language and compiler which were used in conjunction with the model 4 and 5 DCPs. There was one ALGOL function for each kind of DCP instruction, and if you called that function, then the corresponding DCP instruction bits would be emitted to the output. A DCP program was an ALGOL program comprising nothing but a long list of calls on these functions, one for each assembly language statement. Essentially ALGOL acted like the macro pass of a macro assembler. The first pass was the ALGOL compiler; the second pass was running the resulting program (on the B6500) which would then emit the binary for the DCP. 2163:
Offsets from a specified D-register would be checked by the hardware against the stack frame bound: rogue values would be trapped. Similarly, within a task, an array descriptor contained information on the array's bounds, and so any indexing operation was checked by the hardware: put another way, each array formed its own address space. In any case, the tagging of all memory words provided a second level of protection: a misdirected assignment of a value could only go to a data-holding location, not to one holding a pointer or an array descriptor, etc. and certainly not to a location holding machine code.
2142:
program could call another program's code, creating a D stack frame pointing to another process' D environment on top of its own process stack. At an instant the whole address space from the code's execution environment changes, making the D environment on the own process stack not directly addressable and instead make the D environment in another process stack directly addressable. This is how library calls are implemented. At such a cross-stack call, the calling code and called code could even originate from programs written in different source languages and be compiled by different compilers.
2554:, four to a word. The architecture has two modes, Word Mode and Character Mode, and each has a separate repertoire of syllables. A processor may be either Control State or Normal State, and certain syllables are only permissible in Control State. The architecture does not provide for addressing registers or storage directly; all references are through the 1024 word Program Reference Table, current code segment, marked locations within the stack or to the A and B registers holding the top two locations on the stack. Burroughs numbers bits in a syllable from 0 (high bit) to 11 (low bit) 1568:." Another story is that circa 1976, John McClintock of Burroughs (the software engineer developing NEWP) named the language "NEWP" after being asked, yet again, "does it have a name yet": answering "nyoooop", he adopted that as a name. NEWP, too, was a subset ALGOL extension, but it was more secure than ESPOL, and dropped some little-used complexities of ALGOL. In fact, all unsafe constructs are rejected by the NEWP compiler unless a block is specifically marked to allow those instructions. Such marking of blocks provide a multi-level protection mechanism. 757:. Early computers did not have enough memory to store the source code, so compilers (and even assemblers) usually needed to read the source code more than once. The Burroughs ALGOL syntax, unlike the official language, requires that each variable (or other object) be declared before it is used, so it is feasible to write an ALGOL compiler that reads the data only once. This concept has profound theoretical implications, but it also permits very fast compiling. Burroughs large systems could compile as fast as they could read the source code from the 2243:
they had the reverse problem, how to stop programs from being recursive. In the end they didn't bother. The Burroughs FORTRAN compiler allowed recursive calls (just as every other FORTRAN compiler does), but unlike many other computers, on a stack-based system the returns from such calls succeeded as well. This could have odd effects, as with a system for the formal manipulation of mathematical expressions whose central subroutines repeatedly invoked each other without ever returning: large jobs were ended by stack overflow!
2016:
D frame, which points to the frame containing the D environment. We then look at the control word at the base of this environment to find the D environment, and continue in this fashion until we have followed all the links back to the required lexical level. This is not the same path as the return path back through the procedures which have been called in order to get to this point. (The architecture keeps both the data stack and the call stack in the same structure, but uses control words to tell them apart.)
1593:
CP2000s were designed to provide network node support in a distributed network wherein the nodes were connected using the BNAV2 (Burroughs Network Architecture Version 2) networking technology. BNAV2 was a Burroughs functional equivalent of the IBM SNA product and did support interoperation with IBM environments in both PUT2 and PUT5 transport modes. The change in external datacommunications hardware did not require any change to existing MCS (Message Control System (discussed below)) software.
1610:
30 users per stack, in which case if you have 31 to 60 users, you have two stacks, 61 to 90 users, three stacks, etc. This gives B5000 machines a great performance advantage in a server since you don't need to start up another user process and thus create a new stack each time a user attaches to the system. Thus you can efficiently service users (whether they require state or not) with MCSs. MCSs also provide the backbone of large-scale transaction processing.
1623:
descriptions to generate DMALGOL code tailored for the tables and indexes specified. Administrators never need to write DMALGOL themselves. Normal user-level programs obtain database access by using code written in application languages, mainly ALGOL and COBOL, extended with database instructions and transaction processing directives. The most notable feature of DMALGOL is its preprocessing mechanisms to generate code for handling tables and indices.
881: 2180:
the development of "ragged" arrays, rather than the usual fixed rectangular (or higher dimension) arrays. Thus in two dimensions, a ragged array would have rows that were of different sizes. For instance, given a large array A of mostly-zero values, a sparse array representation that was declared as SA could have each row resized to have exactly enough elements to hold only the non-zero values of A along that row.
959:, followed by the B5500 and B5700. The first machines to replace the B5000 architecture were the B6500 and B7500. The successor machines to the B6500 and B7500 followed the hardware development trends to re-implement the architectures in new logic over the next 25 years, with the B6500, B7500, B6700, B7700, B6800, B7800, B5900, B7900 and finally the Burroughs A series. After a merger in which Burroughs acquired 4014: 1687:
the user stack. It turns off user process timers. The current process is placed in the appropriate queue for the resource being requested, or the ready queue waiting for the processor if this is a preemptive context switch. The operating system determines the first process in the ready queue and invokes the instruction move_stack, which makes the process at the head of the ready queue active.
2926: 2176:
array, possibly segmented if large enough, would then be accessed in the same manner as a single-dimensional array in ALGOL. Although accessing outside this array would be prevented, a wrong value for one index combined with a suitably wrong value for another index might not result in a bounds violation of the single sequence array; in other words, the indices were not checked individually.
1635:
database-specific if/then/else code at run-time. In the 1970s, this "tailoring" was used very extensively to reduce the code footprint and execution time. It became much less used in later years, partly because low-level fine tuning for memory and speed became less critical, and partly because eliminating the preprocessing made coding simpler and thus enabled more important optimizations.
917: 1725:β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” This is lexical level 2 (level zero is reserved for the operating system and level 1 for code segments). β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” At level 2 we place global variables for our program. 1699:. One way to increase system speed is to keep data as close to the processor as possible. In the B5000 stack, this was done by assigning the top two positions of the stack to two registers A and B. Most operations are performed on those two top of stack positions. On faster machines past the B5000, more of the stack may be kept in registers or cache near the processor. 2632:β€” Low-level semaphore operator: Load the A register with the memory location given by the A register and place the value in the B register at that memory location in a single uninterruptible cycle. The Algol compiler produced code to invoke this operator via a special function that enabled a "swap" operation on single-word data without an explicit temporary value. 944:, and the central concepts of descriptors and tagged architecture appeared in the design of the Rice Institute Computer in the late 1950s. However, even if those designs had a direct influence on Burroughs, the architectures of the B5000, B6500 and B8500 were very different from those of the Atlas and the Rice machine; they are also very different from each other. 2778:-based machines to the extent that MCP was the one and only control program, but the support provided by those machines is still inferior to that provided on the machines where the B6500 instruction set is the native instruction set. A little-known Intel processor architecture that actually preceded 32-bit implementations of the x86 instruction set, the 2184:
smaller individual segments in use were needed in memory. Actual storage for an array segment would be allocated at run time only if an element in that segment were accessed, and all elements of a created segment would be initialised to zero. Not initialising an array to zero at the start therefore was encouraged by this, normally an unwise omission.
977:. These machines were the Libra 100 through the Libra 500, with the Libra 590 being announced in 2005. Later Libras, including the 590, also incorporate Intel Xeon processors and can run the Burroughs large systems architecture in emulation as well as on the MCP CMOS processors. It is unclear if Unisys will continue development of new MCP CMOS ASICs. 1614:
functionality improvements. In the same general time frame an implementation of the OSI protocol stacks was made, principally on the CP2000, but a large supporting infrastructure was implemented on the main system. All of the OSI standard defined applications were implemented including X.400 mail hosting and X.500 directory services.
1597:
identified to handle traffic from the particular source device and return any response to the DCP for delivery to the destination device. From a processing perspective no changes were required to the MCS software to handle different types of gateway hardware, be it any of the 5 styles of DCP or the ICP or ICP/CP2000 combinations.
1912:
before the current position are visible at that part of the code, thus the requirement for forward declarations. All variables declared in enclosing blocks are visible. Another case is that variables of the same name may be declared in inner blocks and these effectively hide the outer variables which become inaccessible.
2496: 1884:β€” The declaration of a variable makes this a block, which will invoke some β€” stack building code. Normally you won't declare variables here, in which β€” case this would be a compound statement, not a block. ... <== sample stack is executing somewhere here. 2154:
to the wrong address could damage anything. Instead, the two-part address scheme was implemented by the hardware. At each lexical level, variables were placed at displacements up from the base of the level's stack, typically occupying one word - double precision or complex variables would occupy two. Arrays were
2247:
common causes of crashes. Similarly with the array-bound checking: programs that had been used for years on other systems embarrassingly often would fail when run on a Burroughs system. In fact, Burroughs became known for its superior compilers and implementation of languages, including the object-oriented
1585:
remote terminals. The DCP and the B6500 communicated by messages in memory, essentially packets in today's terms, and the MCS did the B6500-side processing of those messages. In the early years the DCP did have an assembler (Dacoma), an application program called DCPProgen written in B6500 ALGOL. Later the
2489:
call (VALC). Global routines are stored in the D environment as SIRWs that point to a PCW stored in the code segment dictionary in the D environment. The D environment is not stored on the current stack because it can be referenced by all processes sharing this code. Thus code is reentrant and shared.
3712:
Waychoff, Richard; Turner, Lloyd; Rosin, Robert F.; Pearson, Ralph W.; Oliphint, G. Clark; MacKenzie, F. Brad; MacDonald, Ray W.; MacDonald, Duncan N.; Lonergan, William D.; Kreuder, Norman L.; King, Paul D.; Hootman, Joseph T.; Hauck, Erwin A.; Hale, John E.; Galler, Bernard A.; Ford, James; Eppert,
2488:
Tag 7 is the program control word which describes a procedure entry point. When hardware operators hit a PCW, the procedure is entered. The ENTR operator explicitly enters a procedure (non-value-returning routine). Functions (value-returning routines) are implicitly entered by operators such as value
2242:
Another thing about the stack structure is that programs are implicitly recursive. FORTRAN was not expected to support recursion and perhaps one stumbling block to people's understanding of how ALGOL was to be implemented was how to implement recursion. On the B5000, this was not a problem – in fact,
2015:
Consider how we would access a lexical level 2 (D) global variable from lexical level 5 (D). Suppose the variable is 6 words away from the base of lexical level 2. It is thus represented by the address couple (2, 6). If we don't have D registers, we have to look at the control word at the base of the
1911:
Each stack frame corresponds to a lexical level in the current execution environment. As you can see, lexical level is the static textual nesting of a program, not the dynamic call nesting. The visibility rules of ALGOL, a language designed for single pass compilers, mean that only variables declared
1702:
Thus the designers of the current successors to the B5000 systems can optimize in whatever is the latest technique, and programmers do not have to adjust their code for it to run faster – they do not even need to recompile, thus protecting software investment. Some programs have been known to run for
1682:
Each stack and associated Program Reference Table (PRT) represents a process (task or thread) and tasks can become blocked waiting on resource requests (which includes waiting for a processor to run on if the task has been interrupted because of preemptive multitasking). User programs cannot issue an
1638:
An applications version of ALGOL to support the accessing of databases from application programs is called BDMSALGOL and included verbs like "FIND", "LOCK", "STORE", "GET", and "PUT" for database access and record manipulation. Additionally, the verbs "BEGINTRANSACTION" and "ENDTRANSACTION" were also
1609:
MCSs are items of software worth noting – they control user sessions and provide keeping track of user state without having to run per-user processes since a single MCS stack can be shared by many users. Load balancing can also be achieved at the MCS level. For example, saying that you want to handle
291:
The B5000 was unusual at the time in that the architecture and instruction set were designed with the needs of software taken into consideration. This was a large departure from the computer system design of the time, where a processor and its instruction set would be designed and then handed over to
2580:
depending on the kind of data being acted on as given by the tag. If we ignore the powerful string scanning, transfer, and edit operators, the basic set is only about 120 operators. If we remove the operators reserved for the operating system such as MVST and HALT, the set of operators commonly used
2183:
Because arrays larger than 1024 words were generally segmented but smaller arrays were not, on a system that was short of real memory, increasing the declared size of a collection of scratchpad arrays from 1,000 to say 1,050 could mean that the program would run with far less "thrashing" as only the
2175:
FORTRAN however regards all multidimensional arrays as being equivalent to a single-dimensional array of the same size, and for a multidimensional array simple integer arithmetic is used to calculate the offset where element A would be found in that single sequence. The single-dimensional equivalent
2171:
Arrays were not stored contiguous in memory with other variables, they were each granted their own address space, which was located via the descriptor. The access mechanism was to calculate on the stack the index variable (which therefore had the full integer range potential, not just fourteen bits)
2149:
Stack frames actually don't even have to exist in a process stack. This feature was used early on for file I/O optimization, the FIB (file information block) was linked into the display registers at D during I/O operations. In the early nineties, this ability was implemented as a language feature as
2019:
As you can see, this is quite inefficient just to access a variable. With D registers, the D register points at the base of the lexical level 2 environment, and all we need to do to generate the address of the variable is to add its offset from the stack frame base to the frame base address in the D
2011:
A stack hardware optimization is the provision of D (or "display") registers. These are registers that point to the start of each called stack frame. These registers are updated automatically as procedures are entered and exited and are not accessible by any software other than the MCP. There are 32
1706:
Another point for speed as promoted by the RISC designers was that processor speed is considerably faster if everything is on a single chip. It was a valid point in the 1970s when more complex architectures such as the B5000 required too many transistors to fit on a single chip. However, this is not
1686:
So a process switch proceeds something like this – a process requests a resource that is not immediately available, maybe a read of a record of a file from a block which is not currently in memory, or the system timer has triggered an interrupt. The operating system code is entered and run on top of
1658:
In many early systems and languages, programmers were often told not to make their routines too small. Procedure calls and returns were expensive, because a number of operations had to be performed to maintain the stack. The B5000 was designed as a stack machine – all program data except for arrays
1571:
NEWP programs that contain unsafe constructs are initially non-executable. The security administrator of a system is able to "bless" such programs and make them executable, but normal users are not able to do this. (Even "privileged users", who normally have essentially root privilege, may be unable
741:
on an earlier Burroughs machine during the three months of his summer break, and he was peripherally involved in the B5000 design as a consultant. Many wrote ALGOL off, mistakenly believing that high-level languages could not have the same power as assembler, and thus not realizing ALGOL's potential
625:
For Operand Call (OPDC) and Descriptor Call (DESC) syllables, the relative address is bits 0-9 (T register) of the syllable. For Store operators (CID, CND, ISD, ISN, STD, STN), the A register (top of stack) contains an absolute address if the Flag bit is set and a relative address if the Flag bit is
158:
as one of the architectures that he admires the most. "I always thought it was one of the most innovative examples of combined hardware/software design I've seen, and far ahead of its time." The B5000 was succeeded by the B5500, which used disks rather than drum storage, and the B5700, which allowed
2770:
Another facet of the B5000 architecture was that it was a secure architecture that runs directly on hardware. This technique has descendants in the virtual machines of today in their attempts to provide secure environments. One notable such product is the Java JVM which provides a secure sandbox in
2660:
The direct influence of the B5000 can be seen in the current Unisys ClearPath range of mainframes which are the direct descendants of the B6500, which was influenced by the B5000, and still have the MCP operating system after 40 years of consistent development. This architecture is now called emode
2223:
The Data Descriptor generated at compilation time indicated the data type usage for which the array was intended. If an array equivalence declaration was made a copy descriptor indicating that particular usage type was generated but pointed back to the original, or MOM, descriptor. Thus, indexing
2179:
Because an array's storage was not bounded on each side by storage for other items, it was easy for the system to "resize" an array - though changing the number of dimensions was precluded because compilers required all references to have the same number of dimensions. In ALGOL's case, this enabled
2162:
Much more important is that this method meant that many errors possible on systems employing flat addressing could not occur because they were simply unspeakable even at the machine code level. A task had no way to corrupt memory in use by another task, because it had no way to develop its address.
2153:
On other systems, the compiler might build its symbol table in a similar manner, but eventually the storage requirements would be collated and the machine code would be written to use flat memory addresses of 16-bits or 32-bits or even 64-bits. These addresses might contain anything so that a write
2141:
If we had invoked the procedure p as a coroutine, or a process instruction, the D environment would have become a separate D-based stack. This means that asynchronous processes still have access to the D environment as implied in ALGOL program code. Taking this one step further, a totally different
1915:
Lexical nesting is static, unrelated to execution nesting with recursion, etc. so it is very rare to find a procedure nested more than five levels deep, and it could be argued that such programs would be poorly structured. B5000 machines allow nesting of up to 32 levels. This could cause difficulty
1613:
Around 1988 an implementation of TCP/IP was developed principally for a U.S. government customer utilizing the CP2000 distributed communications processor as the protocol host. Two to three years later, the TCP/IP implementation was rewritten to be host/server based with significant performance and
1584:
In the original implementation, the system used an attached specialized data communications processor (DCP) to handle the input and output of messages from/to remote devices. This was a 24-bit minicomputer with a conventional register architecture and hardware I/O capability to handle thousands of
1547:
The user level of ALGOL does not include many of the insecure constructs needed by the operating system and other system software. Two levels of language extensions provide the additional constructs: ESPOL and NEWP for writing the MCP and closely related software, and DCALGOL and DMALGOL to provide
769: 2751:
in the late 1970s and early 1980s were also 16-bit stack machines, influenced by the B5000 indirectly through the HP 3000 connection, as several of the early Tandem engineers were formerly with HP. Around 1990, these systems migrated to MIPS RISC architecture but continued to support execution of
2473:
Tag 1 words represent on-stack data addresses. The normal IRW simply stores an address couple to data on the current stack. The SIRW references data on any stack by including a stack number in the address. Amongst other things, SIRW's are used to provide addressing between discrete process stacks
1950:
mechanism invokes a procedure as an asynchronous task with a separate stack set up starting at the lexical level of the processed procedure. As an asynchronous task, there is no control over exactly when control will be passed between the tasks, unlike coroutines. The processed procedure still has
1605:
program and is written in DCALGOL (Data Communications ALGOL). As stated above, the MCS received messages from queues maintained by the Datacom Control Stack (DCC) and forwarded these messages to the appropriate application/function for processing. One of the original MCS's was CANDE (Command AND
1592:
Starting in the early 1980's, the DCP technology was replaced by the ICP (Integrated Communications Processor) which provided LAN based connectivity for the mainframe system. Remote devices, and remote servers/mainframes, were connected to the network via freestanding devices called CP2000s. The
1575:
NEWP has a number of facilities to enable large-scale software projects, such as the operating system, including named interfaces (functions and data), groups of interfaces, modules, and super-modules. Modules group data and functions together, allowing easy access to the data as global within the
295:
The B5000, B5500 and B5700 in Word Mode has two different addressing modes, depending on whether it is executing a main program (SALF off) or a subroutine (SALF on). For a main program, the T field of an Operand Call or Descriptor Call syllable is relative to the Program Reference Table (PRT). For
2469:
Even-tagged words are user data which can be modified by a user program as user state. Odd-tagged words are created and used directly by the hardware and represent a program's execution state. Since these words are created and consumed by specific instructions or the hardware, the exact format of
2246:
Thus Burroughs FORTRAN had better error checking than other contemporary implementation of FORTRAN. For instance, for subroutines and functions it checked that they were invoked with the correct number of parameters, as is normal for ALGOL-style compilers. On other computers, such mismatches were
113:
Burroughs' first internally developed machine, the B5000, was designed in 1961 and Burroughs sought to address its late entry in the market with the strategy of a completely different design based on the most advanced computing ideas available at the time. While the B5000 architecture is dead, it
2293:
Later, when the B6500 was designed, it was realized that the 1-bit control word/numeric distinction was a powerful idea and this was extended to three bits outside of the 48 bit word into a tag. The data bits are bits 0–47 and the tag is in bits 48–50. Bit 48 was the read-only bit, thus odd tags
2158:
stored in this area, only a one word descriptor for the array was. Thus, at each lexical level the total storage requirement was not great: dozens, hundreds or a few thousand in extreme cases, certainly not a count requiring 32-bits or more. And indeed, this was reflected in the form of the VALC
61:
was organized into three divisions with very different product line architectures for high-end, mid-range, and entry-level business computer systems. Each division's product line grew from a different concept for how to optimize a computer's instruction set for particular programming languages.
1622:
Another variant of ALGOL is DMALGOL (Data Management ALGOL). DMALGOL is ALGOL extended for compiling the DMSII database software from database description files created by the DASDL (Data Access and Structure Definition Language) compiler. Database designers and administrators compile database
1596:
On input, messages were passed from the DCP via an internal bus to the relevant MCP Datacom Control (DCC) DCP process stack. One DCC process was initiated for each DCP configured on the system. The DCP Process stack would then ensure that the inbound message was queued for delivery to the MCS
2020:
register. (There is an efficient linked list search operator LLLU, which could search the stack in the above fashion, but the D register approach is still going to be faster.) With D registers, access to entities in outer and global environments is just as efficient as local variable access.
1634:
databases. After a database is defined using the Data Access and Structure Definition Language (DASDL), the schema is translated by the preprocessor into tailored DMALGOL access routines and then compiled. This means that, unlike in other DBMS implementations, there is often no need for
1938:
mechanism invokes a procedure as a coroutine. Coroutines are partner tasks established as synchronous entities operating in their own stack at the same lexical level as the initiating process. Control is explicitly passed between the initiating process and the coroutine by means of a
2150:
STRUCTURE BLOCKs and – combined with library technology - as CONNECTION BLOCKs. The ability to link a data structure into the display register address scope implemented object orientation. Thus, the B6500 actually used a form of object orientation long before the term was ever used.
53:
programs extremely well, using single-pass compilers. The B5000 evolved into the B5500 (disk rather than drum) and the B5700 (up to four systems running as a cluster). Subsequent major redesigns include the B6500/B6700 line and its successors, as well as the separate B8500 line.
2593:
The B5000 line also were pioneers in having two processors connected together on a high-speed bus as master and slave. In the B6000, B7000 and B8000 lines the processors were symmetric. The B7000 line could have up to eight processors, as long as at least one was an I/O module.
1600:
Apart from being a message delivery service, an MCS is an intermediate level of security between operating system code (in NEWP) and user programs (in ALGOL, or other application languages including COBOL, FORTRAN, and, in later days, JAVA). An MCS may be considered to be a
2187:
Array equivalencing is also supported. The ARRAY declaration requested allocation of 48-bit data words which could be used to store any bit pattern but the general operational practice was that each allocated word was considered to be a REAL operand. The declaration of:
1963:. This runs a procedure as an independent task which can continue on after the originating process terminates. For this reason, the child process cannot access variables in the parent's environment, and all parameters passed to the invoked procedure must be call-by-value. 2238:
One nice thing about the stack structure is that if a program does happen to fail, a stack dump is taken and it is very easy for a programmer to find out exactly what the state of a running program was. Compare that to core dumps and exchange packages of other systems.
868:. The architecture employed a 48-bit word, stack, and descriptors like the B5500, but was not advertised as being upward-compatible. The B8500 could never be gotten to work reliably, and the project was canceled after 1970, never having delivered a completed system. 2731:
business system had used a B5500 and were greatly impressed by its hardware and software; they aimed to build a 16-bit minicomputer with similar software. Several other HP divisions created similar minicomputer or microprocessor stack machines. Bob Barton's work on
1534:
While B5000 was specifically designed to support ALGOL, this was only a starting point. Other business-oriented languages such as COBOL were also well supported, most notably by the powerful string operators which were included for the development of fast compilers.
1649:
In later years, with compiler code size being less of a concern, most of the preprocessing constructs were made available in the user level of ALGOL. Only the unsafe constructs and the direct processing of the database description file remain restricted to DMALGOL.
764:
The powerful Burroughs COBOL compiler was also a one-pass compiler and equally fast. A 4000-card COBOL program compiled as fast as the 1000-card/minute readers could read the code. The program was ready to use as soon as the cards went through the reader.
793:
The B6500 (delivery in 1969) and B7500 were the first computers in the only line of Burroughs systems to survive to the present day. While they were inspired by the B5000, they had a totally new architecture. Among the most important differences were
2289:
In the original B5000, a flag bit in each control or numeric word was set aside to identify the word as a control word or numeric word. This was partially a security mechanism to stop programs from being able to corrupt control words on the stack.
2145:
The D and D environments do not occur in the current process's stack. The D environment is the code segment dictionary, which is shared by all processes running the same code. The D environment represents entities exported by the operating system.
2002:
In the example program only normal calls are used, so all the information will be on a single stack. For asynchronous calls, a separate stack is initiated for each asynchronous process so that the processes share data but run asynchronously.
1710:
In fact, the A Series line of B5000 successors included the first single chip mainframe, the Micro-A of the late 1980s. This "mainframe" chip (named SCAMP for Single-Chip A-series Mainframe Processor) sat on an Intel-based plug-in PC board.
1538:
The ALGOL used on the B5000 is an extended ALGOL subset. It includes powerful string manipulation instructions but excludes certain ALGOL constructs, notably unspecified formal parameters. A DEFINE mechanism serves a similar purpose to the
1572:
to do this depending on the configuration chosen by the site.) While NEWP can be used to write general programs and has a number of features designed for large software projects, it does not support everything ALGOL does.
924:
In the following discussion, the machine designations, B5000, A Series, and ClearPath/MCP are used interchangeably although this needlessly conflates the features and concepts of the B5000 and B8500 lines with the B6500
3596: 2194:
requested the allocation of 100 words of type REAL data space in memory. The programmer could also specify that the memory might be referred to as character oriented data by the following equivalence declaration:
2219:
requested that the system allocated a 100 character array. Given that the architecture is word based, the actual space allocated is the requested number of characters rounded up to the next whole word boundary.
1875:β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” A variable declared here makes this lexical level 4 β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” 2470:
these words can change between hardware implementation and user programs do not need to be recompiled, since the same code stream will produce the same results, even though system word format may have changed.
1626:
DMALGOL preprocessing includes variables and loops, and can generate names based on compile-time variables. This enables tailoring far beyond what can be done by preprocessing facilities which lack loops.
1543:
found in C, but is fully integrated into the language rather than being a preprocessor. The EVENT data type facilitates coordination between processes, and ON FAULT blocks enable handling program faults.
1659:(which include strings and objects) was kept on the stack. This meant that stack operations were optimized for efficiency. As a stack-oriented machine, there are no programmer addressable registers. 2270:
The storage required for the multiple processes came from the system's memory pool as needed. There was no need to do SYSGENs on Burroughs systems as with competing systems in order to preconfigure
2610:
data type did have some system overhead. To avoid this overhead, a special locking technique called Dahm locks (named after a Burroughs software guru, Dave Dahm) can be used. Dahm locks used the
2466:
The current incarnation of these machines, the Unisys ClearPath has extended tags further into a four bit tag. The microcode level that specified four bit tags was referred to as level Gamma.
749:
when he submitted a program to be compiled at the B5000 Pasadena plant. His deck of cards was compiled almost immediately and he immediately wanted several machines for his university,
3727: 2267:
disagreed, since LISP was based on modifiable code, he did not like the unmodifiable code of the B5000, but most LISP implementations would run in an interpretive environment anyway.
2669:
instruction set as the native instruction set, with code running on those processors emulating the B5000 instruction set. In those machines, there was also going to be an nmode (
1564:. Though NEWP probably just meant "New Programming language", legends surround the name. A common (perhaps apocryphal) story within Burroughs at the time suggested it came from " 159:
multiple CPUs to be clustered around shared disk. While there was no successor to the B5700, the B5000 line heavily influenced the design of the B6500, and Burroughs ported the
142:
operating systems on their Libra servers; the use of custom chips was gradually eliminated, and by 2018 the Libra servers had been strictly commodity Intel for some years.
4181: 3726:
The Burroughs 5000 computer series is discussed by individuals responsible for its development and marketing from 1957 through the 1960s in a 1985 conference sponsored by
3600: 3907: 3825: 2230:
The immediately preceding discussion uses the ALGOL syntax implementation to describe ARRAY declarations, but the same functionality is supported in COBOL and FORTRAN.
86:
was founded before Burroughs, but did not make computing devices in the 19th century). By the late 1950s its computing equipment was still limited to electromechanical
1916:
for some systems that generated Algol source as output (tailored to solve some special problem) if the generation method frequently nested procedure within procedure.
2763:. Kay was also impressed by the data-driven tagged architecture of the B5000 and this influenced his thinking in his developments in object-oriented programming and 4201: 2704:. The first two generations of the series featured tagged memory and stack-based CPUs that were programmed only in high-level languages. There existed a kind of an 2282:
The most defining aspect of the B5000 is that it is a stack machine as treated above. However, two other very important features of the architecture is that it is
1707:
the case today and every B5000 successor machine now fits on a single chip as well as the performance support techniques such as caches and instruction pipelines.
1695:
Stack performance was considered to be slow compared to register-based architectures, for example, such an architecture had been considered and rejected for the
3760: 3094: 3739: 710:. FORTRAN and COBOL were considered weaker languages by some, when it comes to modern software techniques, so a newer, mostly untried language was adopted, 1858:
be a β€” coding mistake. Some few of ALGOL's successors therefore insist that β€” value parameters be read only – but most do not.
1557: 1511: 200: 1931:
invocation invokes a procedure in the normal way any language invokes a routine, by suspending the calling routine until the invoked procedure returns.
242:: programmers don't have to do anything more to have any code in any language spread across processors than to use just the two shown simple primitives. 2294:
indicated control words that could not be written by a user-level program. Code words were given tag 3. Here is a list of the tags and their function:
2713: 2712:
and supported structured programming and first-class procedures. Later generations of the series, though, switched away from this architecture to the
726:. This was a practical extension of ALGOL with I/O instructions (which ALGOL had ignored) and powerful string processing instructions. Hoare's famous 3366:
Anderson, James P.; Hoffman, Samuel A.; Shifman, Joseph; Williams, Robert J. (1962), "D825 - a multiple-computer system for command & control",
2943: 3996: 974: 3854: 122:
operating system first introduced with the B6700. The third and largest line, the B8500, had no commercial success. In addition to a proprietary
4176: 702:
The B5000 was designed to exclusively support high-level languages. This was at a time when such languages were just coming to prominence with
3278: 2271: 1160:
B6000 class, First pipelined processor in the mid-range, single CPU (dual on A10), First to support eMode Beta (expanded Memory Addressing)
2693:, Moore described the influence, noting that Forth's DUP, DROP and SWAP came from the corresponding B5500 instructions (DUPL, DLET, EXCH). 2563: 788: 3157: 3565:"Unisys Accelerates Mainframe Rebirth with New ClearPath Enterprise Servers, Aggressive New Pricing. - Business Wire - HighBeam Research" 2492:
Tag 3 represents code words themselves, which won't occur on the stack. Tag 3 is also used for the stack control words MSCW, RCW, TOSCW.
3630: 2572:, which may be Name Call, Value Call, or form an operator, which may be from one to twelve syllables in length. There are less than 200 2522: 1403: 211: 83: 3433: 2990: 2260: 1787:β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” This block is at lexical level 3 β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” β€” 750: 3713:
Ray R.; Dent, Benjamin A.; Dahm, David M.; Creech, Bobby A.; Collins, George A.; Berce, Henri; Barton, Robert S. (6 September 1985).
3180: 3121: 4191: 3638: 3383: 3328: 3009: 2962: 3344: 4096: 3951: 3201: 2485:
Tag 5 words are descriptors, which are more fully described in the next section. Tag 5 words represent off-stack data addresses.
3223: 296:
subroutines, the type of addressing is dependent on the high three bits of T and on the Mark Stack FlipFlop (MSFF), as shown in
3892: 2969: 2577: 2573: 2138:| (2, 0) The Mark Stack Control Word containing the link to the previous stack frame. |=======================| β€” Stack bottom 1146:
1-2 HDUs (I/O), 1-2 APs, 1-4 CPUs, Soft implementation of NUMA memory allowed CPUs to float from memory space to memory space.
180: 3979: 3406: 2947: 3924: 3564: 3839: 2976: 2684: 1359: 3245: 2752:
stack machine binaries by object code translation or direct emulation. Sometime after 2000, these systems migrated to
2514:
The figure to the left shows how the Burroughs Large System architecture was fundamentally a hardware architecture for
860:
The B8500 was designed in the 1960s as an attempt to merge the B5500 and the D825 designs. The system used monolithic
114:
inspired the B6500 (and subsequent B6700 and B7700). Computers using that architecture were still in production as the
4216: 4211: 4206: 3897: 2810: 2649: 2515: 1986:
to save the overhead of a procedure call; this is best done for small pieces of code. Inline functions are similar to
1586: 1576:
module. Interfaces allow a module to import and export functions and data. Super-modules allow modules to be grouped.
276: 3772: 3106: 2459:
Internally, some of the machines had 60 bit words, with the extra bits being used for engineering purposes such as a
1966:
Thus, Burroughs Extended ALGOL had some of the multi-processing and synchronization features of later languages like
3751: 3289:(film), Nigel Williams (published 2015-08-08), Timecode: 1969 status - 0:00-0:52, 6:04-7:01, 8:14; date - 3:40, 4:21 2958: 2648:
Two processors could infrequently simultaneously send each other a 'HEYU' command resulting in a lockup known as 'a
3492: 3065: 2673:), but this was dropped, so you may often hear the B6500 successor machines being referred to as "emode machines". 2256: 1967: 257: 2936: 1665:
is also very efficient on the B5000 and B6500 lines. There are specific instruction to perform process switches:
150:
The first member of the first series, the B5000, was designed beginning in 1961 by a team under the leadership of
4221: 3719: 3497: 2774:
The value of the hardware-architecture binding that existed before emode would be substantially preserved in the
2688: 1560:(Executive Systems Programming Oriented Language). This was replaced in the mid-to-late 70s by a language called 1363: 1347: 1141: 1124: 1107: 1077: 816: 4071: 2795: 1991: 1375: 223:
where all operations use the stack rather than explicit operands. This approach has by now fallen out of favor.
67: 1639:
implemented to solve the deadlock situation when multiple processes accessed and updated the same structures.
4186: 4124: 4040: 3986: 2800: 2733: 1371: 1063:
faster processor, cache for stack, up to 8 requestors (I/O or Central processors) in one or two partitions.
941: 107: 71: 687:(current instruction word)-relative forced to R (PRT)-relative for Store, Program and I/O Release operators 62:"Burroughs Large Systems" referred to all of these large-system product lines together, in contrast to the 3901: 3262: 2227:
BOOLEAN arrays are also supported and may be used as a bit vector. INTEGER arrays may also be requested.
1415: 1411: 1407: 1346:
Hardware and software design, development, and manufacturing were split between two primary locations, in
239: 3799: 3582: 3974: 3731: 2696:
B5000 machines with their stack-based architecture and tagged memory also heavily influenced the Soviet
2545: 2532:
There are three distinct instruction sets for the Burroughs large systems. All three are based on short
1662: 1447: 1174: 753:
in the Netherlands. The compiler was fast for several reasons, but the primary reason was that it was a
266:
An attempt at a secure architecture prohibiting unauthorized access of data or disruptions to operations
58: 2786:
have provided an equivalent physical basis, as it too was essentially an object-oriented architecture.
1093:
semiconductor memory, faster, up to 8 requestors (I/O or Central processors) in one or two partitions.
3301: 2082:| (3, 0) The Mark Stack Control Word containing the link to D. |=======================| | 1 | 2038:| (4, 0) The Mark Stack Control Word containing the link to D. |=======================| | 0 | 4106: 3944: 2983: 2822: 2551: 1398: 1355: 956: 91: 46: 2585:; the Operator syllables either use no addresses or use control words and descriptors on the stack. 3153: 2283: 1987: 952: 948: 810: 207: 151: 2602:
operates in a single cycle. The higher level mechanism generally employed by user programs is the
2213:
The capability to request data type specific arrays without equivalencing is also supported, e.g.
3991: 3389: 3274: 3141: 2816: 2252: 1528: 1472: 1442: 1367: 960: 861: 838: 87: 38: 3544: 1556:
Originally, the B5000 MCP operating system was written in an extension of extended ALGOL called
4150: 3634: 3410: 3379: 3324: 2876:
Despite the model number, the B5900 had a B6500 architecture rather than a B5000 architecture.
2705: 2697: 2661:(for emulation mode) since the B6500 architecture has been implemented on machines built from 754: 192: 135: 3039: 1127:
architecture. Max of 4 B5900 CPUs bound to a local memory and a common Global Memory II (tm)
849:
Among other customers of the B6700 and B7700 were all five New Zealand universities in 1971.
4145: 3821: 3807: 3785: 3700: 3667: 3371: 3145: 2748: 2680: 1983: 1482: 865: 842: 246: 82:
Founded in the 1880s, Burroughs was the oldest continuously operating company in computing (
35: 3695:
Barton, Robert S. (1961). "A New Approach to the Functional Design of a Digital Computer".
2676:
B5000 machines were programmed exclusively in high-level languages; there is no assembler.
1970:. It made use of the support for asynchronous processes that was built into the hardware. 1362:, where it developed the B6500. The Orange County location, which was based in a plant in 49:. The first machine in the family was the B5000 in 1961, which was optimized for compiling 4196: 4129: 4061: 3937: 3622: 2842: 2724: 2501: 1683:
IP1, IP2 or MVST, and there is only one place in the operating system where this is done.
1432: 857:
The B8500 line derives from the D825, a military computer that was inspired by the B5000.
822: 803: 774: 746: 261: 186: 99: 3913: 1703:
years over many processor upgrades. Such speed up is limited on register-based machines.
1110:
architecture. Max of 4 B6900 CPUs bound to a local memory and a common Global Memory(tm)
2581:
by user-level programs is less than 100. The Name Call and Value Call syllables contain
1994:#defines, except you don't get the problems with parameters that you can with macros. 1374:, was responsible for the smaller B6x00 line, while the East Coast operations, based in 4001: 3871:, Society for the History of Technology Annual Meeting, 20 Sep-3 Oct 2010, Tacoma, USA. 3044: 2846: 2779: 2737: 2569: 2034:(declared on entry to a block, not a procedure) |-----------------------| | D==>3 | 1540: 1354:. The initial Large Systems Plant, which developed the B5000 and B5500, was located in 937: 933: 799: 719: 17: 880: 745:
The Burroughs ALGOL compiler was very fast — this impressed the Dutch scientist
4170: 4155: 4066: 4035: 3655: 3450: 2701: 1515: 1487: 715: 250: 220: 160: 131: 119: 42: 3869:"'Too far ahead of its time': Britain, Burroughs and real-time banking in the 1960s" 3471: 3393: 3209:. Systems Documentation. Burroughs Corporation. May 1967. p. 5-4. 1021326. 2460: 1643: 1631: 1351: 947:
The first of the Burroughs large systems was the B5000. Designed in 1961, it was a
758: 734: 727: 3417: 3921:
Project to create a functional emulator for the Burroughs B5500 computer system.
3861:"The Burroughs B5900 and E-Mode A bridge to 21st Century Computing Revised 2018" 3568: 2925: 2717: 2670: 723: 155: 154:. It had an unusual architecture. It has been listed by the computing scientist 4013: 3846: 3149: 4022: 3284: 2662: 2598:(ReaD with LocK) is a very low-level way of synchronizing between processors. 2012:
D registers, which is what limits operations to 32 levels of lexical nesting.
1696: 1602: 1178: 203:. However, ESPOL had statements for each of the syllables in the architecture. 102:, who had started to produce larger-scale computers, or with recently founded 3886: 3860: 3812: 3790: 3704: 3375: 2764: 2533: 3881: 2317:
All kinds of user and system data (text data and single precision numbers)
118:
ClearPath Libra servers which run an evolved but compatible version of the
3520: 2259:
declared that the Burroughs implementation of APL was the best he'd seen.
4091: 4086: 3123:
The Operational Characteristics of the Processors for the Burroughs B5000
2760: 2709: 1924:
Procedures can be invoked in four ways – normal, call, process, and run.
1499: 738: 711: 273: 196: 50: 4045: 3671: 2753: 2728: 703: 2495: 2134:| (2, 1) A return control word |-----------------------| | D==>3 | 2078:| (3, 1) A return control word |-----------------------| | D==>3 | 809:
The B6500 had a 51-bit instead of a 48-bit word, and used 3 bits as a
4116: 4081: 3960: 3368:
Proceedings of the December 4–6, 1962, Fall Joint Computer Conference
2756:
architecture and continued to run the legacy stack machine binaries.
2576:, all of which fit into 8-bit syllables. Many of these operators are 2248: 1783:; β€” p1 passed by value, p2 implicitly passed by reference. 964: 115: 103: 3918: 2518:, something that still doesn't exist in conventional architectures. 269:
Early error-detection supporting development and testing of software
195:
or assembler; all system software written in an extended variety of
3545:"Unisys Clears the Path Ahead for A & OS 2200 Series Customers" 979: 4076: 3887:
The Burroughs B5900 and E-Mode: A bridge to 21st Century Computing
3246:"Historical Narrative The 1960s; US vs IBM, Exhibit 14971, Part 2" 2805: 2741: 2708:
for them, called El-76, but it was more or less a modification of
2494: 2463:
error-correction field, but these were never seen by programmers.
1425: 1387: 1024:
3rd generation computer (integrated circuits), up to 4 processors
767: 707: 230: 139: 63: 3868: 1978:
One last possibility is that in NEWP a procedure may be declared
272:
A commercial implementation virtual memory, preceded only by the
4101: 3893:(web archive of:) Ralph Klimek on the B7800 at Monash University 3303:
burroughs :: B6500 6700 :: CUBE XVI B6500 Status Apr70
2908:
There was no flag bit in words containing character data or code
2264: 1561: 1548:
more specific extensions for specific kinds of system software.
1519: 1241: 970: 834:
to allow nested subroutines to access variables in outer blocks.
768: 127: 123: 3933: 3203:
Burroughs B5500 Information Processing Systems Reference Manual
3370:, AFIPS Conference Proceedings, vol. 24, pp. 86–96, 3225:
Burroughs B6500 Information Processing System Reference Manual
3182:
Burroughs B5500 Information Processing System Reference Manual
2919: 2775: 2666: 2023:
D Tag Data β€” Address couple, Comments register
1719:
Here is an example of how programs map to the stack structure
910: 875: 95: 3714: 967:, the company continued to develop new machines based on the 3929: 761:, and they had the fastest card readers in the industry. 2201:
or as hexadecimal data via the equivalence declaration:
1642:
Roy Guck of Burroughs was one of the main developers of
1630:
DMALGOL is used to provide tailored access routines for
1173:
B7000 class, Re-implemented in custom-designed Motorola
94:. It had nothing to compete with its traditional rivals 3654:
G. M. Amdahl; G. A. Blaauw; F. P. Brooks (April 1964).
892: 70:(B2000, B3000, and B4000) or the flexible-architecture 3784:. Spring Joint Computer Conference. pp. 245–251. 2224:
the correct location in memory was always guaranteed.
1240:
Implements Burroughs Large systems in emulation only (
1201:
desktop "mainframe" with single-chip SCAMP processor.
1140:
semiconductor memory, faster, code & data caches,
733:
Thus the B5000 was based on a very powerful language.
176:
Hardware was designed to support software requirements
3043:
B5500, B6500, B6700, B6800, B6900, B7700 manuals at:
2499:
Figure 9.2 From the ACM Monograph in the References.
1181:, single CPU single HDU (A12) 1–4 CPU, 1–2 HDU (A15) 998:
initial system, 2nd generation (transistor) computer
772:
Figure 4.5 From the ACM Monograph in the References.
3806:. Fall Joint Computer Conference. pp. 413–417. 3697:
Proceedings of the Western Joint Computer Conference
2550:
Programs on a B5000, B5500 and B5700 are made up of
1527:
The Burroughs large systems implement ALGOL-derived
4138: 4115: 4054: 4021: 3967: 3827:
Computer System Organization The B5700/B6700 series
2950:. Unsourced material may be challenged and removed. 2359:Software Control Word (used to cut back the stack) 1982:, that is when the compiler sees a reference to it 1505: 1493: 1481: 1471: 1453: 1441: 1431: 1421: 1397: 798:The B6500 had variable length instructions with an 2207:or as ASCII data via the equivalence declaration: 2090:======> |-----------------------| | 0 | 3252:. US Government. July 22, 1980. p. 648 (409) 27:Range of mainframe computers in the 1960s and 70s 3840:"Stories of the B5000 and People Who Were There" 2062:at (2,6) |-----------------------| | 0 | 226:All interrupts and procedure calls use the stack 1984:the code for the procedure is generated inline 1846:β€” Since this overwrites the original value of 1531:. The B5000 was the first stack-based system. 3945: 3567:(Press release). June 8, 1998. Archived from 3515: 3513: 3088: 3086: 3084: 3082: 3030:Computer Architecture: A Structured Approach, 2687:, who encountered the B5500 while at MIT. In 714:. The ALGOL dialect chosen for the B5000 was 8: 3240: 3238: 1392: 802:instead of fixed length instructions with a 3539: 3537: 3493:"Unisys Ready To Offer A Desktop Mainframe" 3218: 3216: 2683:, the designer of the programming language 2614:ALGOL language statement which generated a 2474:such as those generated in response to the 1366:but at times included facilities in nearby 4012: 3952: 3938: 3930: 3411:"Chapter 2 Early Descriptor Architectures" 3345:"Computing History Displays: Fourth Floor" 3174: 3172: 2740:beginning with the 9100A, and notably the 1391: 4182:High-level language computer architecture 3811: 3789: 3010:Learn how and when to remove this message 1580:DCALGOL and Message Control Systems (MCS) 179:Hardware designed to exclusively support 126:processor design, Unisys also uses Intel 3838:Waychoff, Richard (September 27, 1979). 3059: 3057: 3055: 2886: 2884: 2882: 2759:Bob Barton was also very influential on 2627:β€” send an interrupt to another processor 2296: 302: 3925:"Burroughs B6500 film & transcript" 3660:IBM Journal of Research and Development 3472:"SCAMP picture at dave's Old computers" 3200:"Table 5-1 Relative Addressing Table". 3051: 2834: 2130:|-----------------------| | 3 | 2122:|-----------------------| | 0 | 2114:|-----------------------| | 0 | 2106:|-----------------------| | 0 | 2098:|-----------------------| | 0 | 2074:|-----------------------| | 3 | 2054:|-----------------------| | 1 | 2046:|-----------------------| | 0 | 1672:Initiate P1 (IP1) and Initiate P2 (IP2) 653: 651: 649: 647: 594: 297: 4202:Computer-related introductions in 1961 3761:"Burroughs Third-Generation Computers" 3599:. Unisys. 24 June 2021. Archived from 3451:"Daves Old Computers - Other Machines" 3321:Computer Architecture and Organization 3095:"Burroughs Third-Generation Computers" 2679:The B5000 stack architecture inspired 2645:β€” Idle until an interrupt is received 668: 666: 634: 632: 588: 110:and rebranded its design as the B205. 3782:Burroughs B6500/B7500 Stack Mechanism 3740:"Some Burroughs Transistor Computers" 3491:Reitman, Valerie (January 18, 1989), 539:Address of last RCW or MSCW on stack 437:Address of last RCW or MSCW on stack 7: 3656:"Architecture of the IBM System/360" 3299:Shipments rate, first 16 computers: 3231:, Burroughs, September 1969, 1043676 3142:"Admired designs / designs to study" 2948:adding citations to reliable sources 2899:Only for B6500, B7500 and successors 2564:Burroughs B6x00-7x00 instruction set 789:Burroughs B6x00-7x00 instruction set 718:, first designed and implemented by 505:Address of current instruction word 229:Support for other languages such as 3997:Eckert–Mauchly Computer Corporation 3026:(Three Volumes), Donald J. Gregory. 2523:Burroughs large systems descriptors 742:as a systems programming language. 217:Few programmer accessible registers 4102:New Executive Programming Language 3780:Hauck, E.A.; Dent, Ben A. (1968). 2582: 783:B6500, B6700/B7700, and successors 751:Eindhoven University of Technology 25: 3804:Language Directed Computer Design 3715:"The Burroughs B 5000 Conference" 3419:Capability-Based Computer Systems 3038:Philip J. Koopman, available at: 3032:R. Doran, Academic Press (1979). 2924: 2747:The NonStop systems designed by 2380:Stuffed Indirect Reference Word 2339:Step Index word (used in loops) 1566:No Executive Washroom Privileges 915: 879: 181:high-level programming languages 2935:needs additional citations for 2890:Only for B5000, B5500 and B5700 936:appeared in the designs of the 817:Symmetric Multiprocessing (SMP) 3980:System Development Corporation 3908:"Computer System Organization" 3283:Burroughs Corporation (1969), 3036:Stack Computers: The New Wave, 2736:(RPN) also found its way into 832:Display Registers, D1 thru D32 573:F register from MSCW at PRT+7 471:F register from MSCW at PRT+7 1: 4177:Burroughs mainframe computers 3759:Gray, George (October 1999). 3439:. Burroughs. August 11, 1964. 3286:Burroughs B6500 Status Report 3064:John T. Lynch (August 1965), 2510:Descriptor-based architecture 2058:| (3, 3) A SIRW reference to 1715:How programs map to the stack 730:lecture was on this subject. 32:Burroughs Large Systems Group 3627:Computer System Organization 3093:George Gray (October 1999), 2744:and subsequent calculators. 2618:operator at the code level. 2536:that fit evenly into words. 1959:The last invocation type is 1360:City of Industry, California 282:First segmented memory model 235:Powerful string manipulation 45:instruction sets with dense 3882:Ian Joyner's Burroughs page 3738:Gray, George (March 1999). 2867:Not counting error controls 2811:Network Definition Language 2516:object-oriented programming 2263:, the language designer of 2251:(a superset of ALGOL), and 1691:Stack speed and performance 1675:B6500, B7500 and successors 1459:; 62 years ago 1050:new name/bug fix for B6500 737:had previously implemented 675:register from MSCW at PRT+7 34:produced a family of large 4238: 3898:"Early Burroughs Machines" 3140:John Mashey (2006-08-15). 2858:There were security issues 2640:β€” Processor identification 2561: 2543: 2520: 2421:Top of Stack Control Word 2234:Stack structure advantages 1385: 949:second-generation computer 837:The B6500 used monolithic 827:The B6500 had paged arrays 786: 641:  Return Control Word 304:B5x00 Relative Addressing 106:. In 1956, they purchased 4072:Burroughs B2500 and B4900 4010: 3765:Unisys History Newsletter 3744:Unisys History Newsletter 3722:, University of Minnesota 3720:Charles Babbage Institute 3680:– via ResearchGate. 3498:The Philadelphia Inquirer 3306:. Apr 1970. pp. 1–2. 3099:Unisys History Newsletter 3024:The Extended ALGOL Primer 2959:"Burroughs Large Systems" 2700:series of mainframes and 1510: 1498: 1364:Mission Viejo, California 1348:Orange County, California 1342:Primary lines of hardware 1185: 982: 604:Subroutine Level Flipflop 343: 338: 335: 332: 329: 326: 321: 316: 311: 308: 298:B5x00 Relative Addressing 4192:Transistorized computers 3347:. University of Auckland 3129:, Revision A, 5000-21005 2796:Burroughs Medium Systems 2771:which applications run. 2568:Programs are made up of 2401:Mark Stack Control Word 2370:Indirect Reference Word 1376:Tredyffrin, Pennsylvania 963:and changed its name to 4125:List of UNIVAC products 4041:UNIVAC 1100/2200 series 4031:Burroughs Large Systems 3987:Convergent Technologies 3919:B5500 Emulation Project 3910:, ACM Monograph Series. 3813:10.1145/1465611.1465665 3791:10.1145/1468075.1468111 3705:10.1145/1460690.1460736 3376:10.1145/1461518.1461527 3319:Hayes, John P. (1978). 2801:Burroughs Small Systems 2734:reverse Polish notation 2690:Forth - The Early Years 2665:processors running the 2621:Notable operators are: 2442:Data block descriptors 2274:in which to run tasks. 2198:EBCDIC ARRAY EA = A ; 2066:| (3, 2) The parameter 1477:Burroughs large systems 1437:John McClintock, others 1350:, and the outskirts of 942:Rice Institute Computer 932:The central concept of 660:Mark Stack Control Word 238:All code automatically 146:B5000, B5500, and B5700 108:ElectroData Corporation 18:Burroughs large systems 3914:Index of B8500 manuals 3902:University of Virginia 3775:on September 26, 2017. 3179:Burroughs (May 1967), 2656:Influence of the B5000 2540:B5000, B5500 and B5700 2506: 2328:Double Precision data 2286:and descriptor-based. 1123:semiconductor memory, 1106:semiconductor memory, 1076:semiconductor memory, 779: 251:Master Control Program 206:Partially data-driven 161:Master Control Program 3975:Burroughs Corporation 3732:Burroughs Corporation 3109:on September 26, 2017 3066:"The Burroughs B8500" 2546:B5000 instruction set 2498: 2453:Program Control Word 2210:ASCII ARRAY AA = A; 2126:| (2, 2) The integer 2118:| (2, 3) The integer 2110:| (2, 4) The integer 2030:| (4, 1) The integer 1618:DMALGOL and databases 1448:Burroughs Corporation 1233:Clearpath HMP LX 5000 1220:Clearpath HMP NX 5000 1207:Clearpath HMP NX 4000 1187:Unisys (1986–present) 1011:3x speed improvement 984:Burroughs (1961–1986) 771: 292:the software people. 59:Burroughs Corporation 3800:McKeeman, William M. 3633:. pp. 115–117. 3434:"B5500 Announcement" 3323:. pp. 148–149. 2944:improve this article 2823:Octal floating point 2558:B6500 and successors 2411:Return Control Word 2216:EBCDIC ARRAY MY_EA 2204:HEX ARRAY HA = A ; 1988:parameterized macros 1356:Pasadena, California 957:magnetic-core memory 130:processors and runs 3904:'s Computer Museum. 3822:Organick, Elliot I. 3771:(5). Archived from 3754:on October 1, 2016. 3750:(1). Archived from 3105:(5), archived from 2589:Multiple processors 2431:Segment Descriptor 2349:Uninitialized data 2278:Tagged architecture 2086:| (2, 7) The array 1955:Run invocation type 1669:B5000, B5500, B5700 1529:stack architectures 1454:First appeared 1394: 1037:new name for B5500 953:discrete transistor 862:integrated circuits 839:integrated circuits 616:Mark Stack FlipFlop 305: 167:) to that machine. 152:Robert (Bob) Barton 88:accounting machines 4217:1980s in computing 4212:1970s in computing 4207:1960s in computing 3992:Sperry Corporation 3672:10.1147/rd.82.0087 3120:Burroughs (1963), 2817:Work Flow Language 2507: 2391:Program code word 2255:, the designer of 2102:| (2, 5) The real 2094:| (2, 6) The real 2050:| (3, 4) The real 2042:| (3, 5) The real 1998:Asynchronous calls 1678:MVST (move stack). 1654:Stack architecture 961:Sperry Corporation 891:. You can help by 780: 303: 57:In the 1970s, the 4164: 4163: 4151:J. Presper Eckert 3852:on March 4, 2016. 3833:. Academic Press. 3521:"Company History" 3020: 3019: 3012: 2994: 2727:designers of the 2706:assembly language 2457: 2456: 2272:memory partitions 2007:Display registers 1974:Inline procedures 1525: 1524: 1339: 1338: 930: 929: 909: 908: 755:one-pass compiler 695: 694: 193:Assembly language 136:Microsoft Windows 16:(Redirected from 4229: 4222:48-bit computers 4146:Robert S. Barton 4077:Command AND Edit 4016: 3954: 3947: 3940: 3931: 3864: 3859:Allweiss, Jack. 3853: 3851: 3845:. Archived from 3844: 3834: 3832: 3817: 3815: 3795: 3793: 3776: 3755: 3725: 3708: 3682: 3681: 3679: 3678: 3651: 3645: 3644: 3623:Organick, Elliot 3619: 3613: 3612: 3610: 3608: 3603:on 11 March 2020 3593: 3587: 3586: 3579: 3573: 3572: 3571:on May 16, 2011. 3561: 3555: 3554: 3552: 3551: 3541: 3532: 3531: 3529: 3528: 3517: 3508: 3507: 3506: 3505: 3488: 3482: 3481: 3479: 3478: 3468: 3462: 3461: 3459: 3458: 3447: 3441: 3440: 3438: 3430: 3424: 3423: 3415: 3403: 3397: 3396: 3363: 3357: 3356: 3354: 3352: 3341: 3335: 3334: 3316: 3310: 3307: 3296: 3295: 3294: 3271: 3265: 3261: 3259: 3257: 3242: 3233: 3232: 3230: 3220: 3211: 3210: 3208: 3196: 3190: 3189: 3187: 3176: 3167: 3166: 3164: 3163: 3137: 3131: 3130: 3128: 3117: 3111: 3110: 3090: 3077: 3076: 3070: 3061: 3015: 3008: 3004: 3001: 2995: 2993: 2952: 2928: 2920: 2909: 2906: 2900: 2897: 2891: 2888: 2877: 2874: 2868: 2865: 2859: 2856: 2850: 2843:12-bit syllables 2839: 2749:Tandem Computers 2635: 2552:12-bit syllables 2528:Instruction sets 2297: 1823:to the value of 1467: 1465: 1460: 1433:Designed by 1395: 1188: 1177:MCA1, then MCA2 985: 980: 919: 918: 911: 904: 901: 883: 876: 866:thin-film memory 843:thin-film memory 821:The B6500 had a 698:Language support 688: 682: 676: 670: 661: 655: 642: 636: 627: 623: 617: 611: 605: 599: 306: 247:operating system 84:Elliott Brothers 21: 4237: 4236: 4232: 4231: 4230: 4228: 4227: 4226: 4167: 4166: 4165: 4160: 4134: 4130:UNIVAC FASTRAND 4111: 4062:Burroughs B1700 4050: 4017: 4008: 3963: 3958: 3889:- Jack Allweiss 3878: 3858: 3849: 3842: 3837: 3830: 3820: 3798: 3779: 3758: 3737: 3711: 3694: 3691: 3689:Further reading 3686: 3685: 3676: 3674: 3653: 3652: 3648: 3641: 3621: 3620: 3616: 3606: 3604: 3595: 3594: 3590: 3581: 3580: 3576: 3563: 3562: 3558: 3549: 3547: 3543: 3542: 3535: 3526: 3524: 3519: 3518: 3511: 3503: 3501: 3490: 3489: 3485: 3476: 3474: 3470: 3469: 3465: 3456: 3454: 3453:. Unisys A7-311 3449: 3448: 3444: 3436: 3432: 3431: 3427: 3422:, Digital Press 3413: 3405: 3404: 3400: 3386: 3365: 3364: 3360: 3350: 3348: 3343: 3342: 3338: 3331: 3318: 3317: 3313: 3300: 3292: 3290: 3282: 3279:Wayback Machine 3272: 3268: 3255: 3253: 3244: 3243: 3236: 3228: 3222: 3221: 3214: 3206: 3199: 3197: 3193: 3185: 3178: 3177: 3170: 3161: 3159: 3139: 3138: 3134: 3126: 3119: 3118: 3114: 3092: 3091: 3080: 3068: 3063: 3062: 3053: 3016: 3005: 2999: 2996: 2953: 2951: 2941: 2929: 2918: 2913: 2912: 2907: 2903: 2898: 2894: 2889: 2880: 2875: 2871: 2866: 2862: 2857: 2853: 2847:8-bit syllables 2840: 2836: 2831: 2792: 2725:Hewlett-Packard 2658: 2641: 2636: 2633: 2628: 2606:data type. The 2591: 2583:address couples 2570:8-bit syllables 2566: 2560: 2548: 2542: 2530: 2525: 2512: 2502:Elliot Organick 2280: 2236: 2217: 2211: 2205: 2199: 2192: 2169: 2139: 2024: 2009: 2000: 1976: 1957: 1922: 1909: 1883: 1834:; β€” This sets 1819:; β€” This sets 1799: 1717: 1693: 1656: 1620: 1582: 1554: 1463: 1461: 1458: 1393:Burroughs ALGOL 1390: 1384: 1344: 1335:e.g. Libra 750 1309:e.g. Libra 595 1186: 983: 926: 920: 916: 905: 899: 896: 889:needs expansion 874: 855: 804:12-bit syllable 791: 785: 775:Elliot Organick 747:Edsger Dijkstra 700: 691: 683: 679: 671: 664: 656: 645: 637: 630: 624: 620: 612: 608: 600: 596: 592: 580: 546: 512: 478: 444: 410: 403:Address of PRT 376: 369:Address of PRT 345: 340: 323: 318: 313: 289: 262:multiprocessing 260:(master/slave) 245:Support for an 187:instruction set 173: 148: 80: 28: 23: 22: 15: 12: 11: 5: 4235: 4233: 4225: 4224: 4219: 4214: 4209: 4204: 4199: 4194: 4189: 4187:Stack machines 4184: 4179: 4169: 4168: 4162: 4161: 4159: 4158: 4153: 4148: 4142: 4140: 4136: 4135: 4133: 4132: 4127: 4121: 4119: 4113: 4112: 4110: 4109: 4104: 4099: 4094: 4089: 4084: 4079: 4074: 4069: 4064: 4058: 4056: 4052: 4051: 4049: 4048: 4043: 4038: 4033: 4027: 4025: 4019: 4018: 4011: 4009: 4007: 4006: 4005: 4004: 4002:Remington Rand 3999: 3989: 3984: 3983: 3982: 3971: 3969: 3965: 3964: 3959: 3957: 3956: 3949: 3942: 3934: 3928: 3927: 3922: 3916: 3911: 3905: 3895: 3890: 3884: 3877: 3876:External links 3874: 3873: 3872: 3865: 3856: 3835: 3818: 3796: 3777: 3756: 3735: 3709: 3690: 3687: 3684: 3683: 3646: 3639: 3614: 3588: 3574: 3556: 3533: 3509: 3483: 3463: 3442: 3425: 3398: 3384: 3358: 3336: 3329: 3311: 3309: 3308: 3266: 3234: 3212: 3191: 3168: 3132: 3112: 3078: 3050: 3049: 3048: 3047: 3041: 3033: 3027: 3018: 3017: 2932: 2930: 2923: 2917: 2914: 2911: 2910: 2901: 2892: 2878: 2869: 2860: 2851: 2833: 2832: 2830: 2827: 2826: 2825: 2820: 2814: 2808: 2803: 2798: 2791: 2788: 2780:Intel iAPX 432 2738:HP calculators 2702:supercomputers 2657: 2654: 2650:deadly embrace 2590: 2587: 2562:Main article: 2559: 2556: 2544:Main article: 2541: 2538: 2529: 2526: 2521:Main article: 2511: 2508: 2455: 2454: 2451: 2448: 2444: 2443: 2440: 2437: 2433: 2432: 2429: 2426: 2423: 2422: 2419: 2416: 2413: 2412: 2409: 2406: 2403: 2402: 2399: 2396: 2393: 2392: 2389: 2386: 2382: 2381: 2378: 2375: 2372: 2371: 2368: 2365: 2361: 2360: 2357: 2354: 2351: 2350: 2347: 2345: 2341: 2340: 2337: 2334: 2330: 2329: 2326: 2323: 2319: 2318: 2315: 2312: 2308: 2307: 2304: 2301: 2279: 2276: 2235: 2232: 2215: 2209: 2203: 2197: 2190: 2168: 2165: 2070:from value of 2025: 2022: 2008: 2005: 1999: 1996: 1975: 1972: 1956: 1953: 1943:instruction. 1921: 1918: 1892:; ..... 1721: 1716: 1713: 1692: 1689: 1680: 1679: 1676: 1673: 1670: 1655: 1652: 1619: 1616: 1581: 1578: 1553: 1552:ESPOL and NEWP 1550: 1523: 1522: 1508: 1507: 1503: 1502: 1496: 1495: 1491: 1490: 1485: 1479: 1478: 1475: 1469: 1468: 1455: 1451: 1450: 1445: 1439: 1438: 1435: 1429: 1428: 1423: 1419: 1418: 1404:Multi-paradigm 1401: 1386:Main article: 1383: 1380: 1343: 1340: 1337: 1336: 1333: 1330: 1324: 1323: 1320: 1317: 1311: 1310: 1307: 1304: 1298: 1297: 1294: 1291: 1285: 1284: 1281: 1278: 1272: 1271: 1268: 1265: 1259: 1258: 1255: 1252: 1246: 1245: 1238: 1235: 1229: 1228: 1225: 1222: 1216: 1215: 1212: 1209: 1203: 1202: 1199: 1196: 1190: 1189: 1183: 1182: 1171: 1168: 1162: 1161: 1158: 1155: 1149: 1148: 1144:architecture, 1138: 1135: 1129: 1128: 1121: 1118: 1112: 1111: 1104: 1101: 1095: 1094: 1091: 1088: 1082: 1081: 1074: 1071: 1065: 1064: 1061: 1058: 1052: 1051: 1048: 1045: 1039: 1038: 1035: 1032: 1026: 1025: 1022: 1019: 1013: 1012: 1009: 1006: 1000: 999: 996: 993: 987: 986: 938:Ferranti Atlas 934:virtual memory 928: 927: 923: 921: 914: 907: 906: 886: 884: 873: 870: 864:with magnetic 854: 851: 847: 846: 841:with magnetic 835: 830:The B6500 had 828: 825: 819: 815:The B6500 had 813: 807: 800:8-bit syllable 784: 781: 720:C. A. R. Hoare 699: 696: 693: 692: 690: 689: 677: 662: 643: 628: 618: 606: 593: 586: 585: 582: 577: 574: 571: 568: 565: 562: 559: 556: 552: 551: 548: 543: 540: 537: 534: 531: 528: 525: 522: 518: 517: 514: 509: 506: 503: 500: 497: 494: 491: 488: 484: 483: 480: 475: 472: 469: 466: 463: 460: 457: 454: 450: 449: 446: 441: 438: 435: 432: 429: 426: 423: 420: 416: 415: 412: 407: 404: 401: 398: 395: 392: 389: 386: 382: 381: 378: 373: 370: 367: 364: 361: 358: 355: 352: 348: 347: 342: 337: 334: 331: 328: 325: 320: 315: 310: 288: 285: 284: 283: 280: 270: 267: 264: 254: 243: 236: 233: 227: 224: 218: 215: 204: 189: 183: 177: 172: 169: 147: 144: 79: 76: 68:Medium Systems 26: 24: 14: 13: 10: 9: 6: 4: 3: 2: 4234: 4223: 4220: 4218: 4215: 4213: 4210: 4208: 4205: 4203: 4200: 4198: 4195: 4193: 4190: 4188: 4185: 4183: 4180: 4178: 4175: 4174: 4172: 4157: 4156:Peter Altabef 4154: 4152: 4149: 4147: 4144: 4143: 4141: 4137: 4131: 4128: 4126: 4123: 4122: 4120: 4118: 4114: 4108: 4105: 4103: 4100: 4098: 4095: 4093: 4090: 4088: 4085: 4083: 4080: 4078: 4075: 4073: 4070: 4068: 4067:Burroughs B20 4065: 4063: 4060: 4059: 4057: 4053: 4047: 4044: 4042: 4039: 4037: 4034: 4032: 4029: 4028: 4026: 4024: 4020: 4015: 4003: 4000: 3998: 3995: 3994: 3993: 3990: 3988: 3985: 3981: 3978: 3977: 3976: 3973: 3972: 3970: 3966: 3962: 3955: 3950: 3948: 3943: 3941: 3936: 3935: 3932: 3926: 3923: 3920: 3917: 3915: 3912: 3909: 3906: 3903: 3899: 3896: 3894: 3891: 3888: 3885: 3883: 3880: 3879: 3875: 3870: 3867:Martin, Ian. 3866: 3862: 3857: 3855: 3848: 3841: 3836: 3829: 3828: 3823: 3819: 3814: 3809: 3805: 3801: 3797: 3792: 3787: 3783: 3778: 3774: 3770: 3766: 3762: 3757: 3753: 3749: 3745: 3741: 3736: 3733: 3729: 3723: 3721: 3716: 3710: 3706: 3702: 3698: 3693: 3692: 3688: 3673: 3669: 3666:(2): 87–101. 3665: 3661: 3657: 3650: 3647: 3642: 3640:0-12-528250-8 3636: 3632: 3628: 3624: 3618: 3615: 3602: 3598: 3592: 3589: 3584: 3578: 3575: 3570: 3566: 3560: 3557: 3546: 3540: 3538: 3534: 3523:. 9 July 2021 3522: 3516: 3514: 3510: 3500: 3499: 3494: 3487: 3484: 3473: 3467: 3464: 3452: 3446: 3443: 3435: 3429: 3426: 3421: 3420: 3412: 3408: 3407:Henry M. Levy 3402: 3399: 3395: 3391: 3387: 3385:9781450378796 3381: 3377: 3373: 3369: 3362: 3359: 3346: 3340: 3337: 3332: 3330:0-07-027363-4 3326: 3322: 3315: 3312: 3305: 3304: 3298: 3297: 3288: 3287: 3280: 3276: 3270: 3267: 3264: 3251: 3250:ed-thelen.org 3247: 3241: 3239: 3235: 3227: 3226: 3219: 3217: 3213: 3205: 3204: 3195: 3192: 3184: 3183: 3175: 3173: 3169: 3158: 3155: 3151: 3147: 3143: 3136: 3133: 3125: 3124: 3116: 3113: 3108: 3104: 3100: 3096: 3089: 3087: 3085: 3083: 3079: 3074: 3067: 3060: 3058: 3056: 3052: 3046: 3045:bitsavers.org 3042: 3040: 3037: 3034: 3031: 3028: 3025: 3022: 3021: 3014: 3011: 3003: 3000:November 2009 2992: 2989: 2985: 2982: 2978: 2975: 2971: 2968: 2964: 2961: β€“  2960: 2956: 2955:Find sources: 2949: 2945: 2939: 2938: 2933:This article 2931: 2927: 2922: 2921: 2915: 2905: 2902: 2896: 2893: 2887: 2885: 2883: 2879: 2873: 2870: 2864: 2861: 2855: 2852: 2848: 2844: 2838: 2835: 2828: 2824: 2821: 2818: 2815: 2812: 2809: 2807: 2804: 2802: 2799: 2797: 2794: 2793: 2789: 2787: 2785: 2781: 2777: 2772: 2768: 2766: 2762: 2757: 2755: 2750: 2745: 2743: 2739: 2735: 2730: 2726: 2721: 2719: 2715: 2711: 2707: 2703: 2699: 2694: 2692: 2691: 2686: 2682: 2677: 2674: 2672: 2668: 2664: 2655: 2653: 2651: 2646: 2644: 2639: 2634:x:=RDLK(x,y); 2631: 2626: 2622: 2619: 2617: 2613: 2609: 2605: 2601: 2597: 2588: 2586: 2584: 2579: 2575: 2571: 2565: 2557: 2555: 2553: 2547: 2539: 2537: 2535: 2527: 2524: 2519: 2517: 2509: 2505: 2503: 2497: 2493: 2490: 2486: 2483: 2481: 2477: 2471: 2467: 2464: 2462: 2452: 2449: 2446: 2445: 2441: 2438: 2435: 2434: 2430: 2427: 2425: 2424: 2420: 2417: 2415: 2414: 2410: 2407: 2405: 2404: 2400: 2397: 2395: 2394: 2390: 2387: 2384: 2383: 2379: 2376: 2374: 2373: 2369: 2366: 2363: 2362: 2358: 2355: 2353: 2352: 2348: 2346: 2343: 2342: 2338: 2335: 2332: 2331: 2327: 2324: 2321: 2320: 2316: 2313: 2310: 2309: 2305: 2302: 2299: 2298: 2295: 2291: 2287: 2285: 2277: 2275: 2273: 2268: 2266: 2262: 2261:John McCarthy 2258: 2254: 2250: 2244: 2240: 2233: 2231: 2228: 2225: 2221: 2214: 2208: 2202: 2196: 2189: 2185: 2181: 2177: 2173: 2167:Array storage 2166: 2164: 2160: 2157: 2151: 2147: 2143: 2137: 2133: 2129: 2125: 2121: 2117: 2113: 2109: 2105: 2101: 2097: 2093: 2089: 2085: 2081: 2077: 2073: 2069: 2065: 2061: 2057: 2053: 2049: 2045: 2041: 2037: 2033: 2029: 2026:| 0 | 2021: 2017: 2013: 2006: 2004: 1997: 1995: 1993: 1989: 1985: 1981: 1973: 1971: 1969: 1964: 1962: 1954: 1952: 1949: 1944: 1942: 1937: 1932: 1930: 1925: 1919: 1917: 1913: 1907: 1903: 1899: 1895: 1891: 1887: 1881: 1878: 1874: 1871: 1868: 1864: 1861: 1857: 1853: 1849: 1845: 1841: 1837: 1833: 1829: 1826: 1822: 1818: 1814: 1810: 1806: 1802: 1797: 1793: 1790: 1786: 1782: 1779: 1775: 1771: 1768: 1764: 1761: 1757: 1754: 1750: 1746: 1743: 1739: 1735: 1731: 1728: 1724: 1720: 1714: 1712: 1708: 1704: 1700: 1698: 1690: 1688: 1684: 1677: 1674: 1671: 1668: 1667: 1666: 1664: 1660: 1653: 1651: 1647: 1645: 1640: 1636: 1633: 1628: 1624: 1617: 1615: 1611: 1607: 1604: 1598: 1594: 1590: 1588: 1579: 1577: 1573: 1569: 1567: 1563: 1559: 1551: 1549: 1545: 1542: 1536: 1532: 1530: 1521: 1517: 1513: 1509: 1504: 1501: 1497: 1494:Influenced by 1492: 1489: 1488:Burroughs MCP 1486: 1484: 1480: 1476: 1474: 1470: 1456: 1452: 1449: 1446: 1444: 1440: 1436: 1434: 1430: 1427: 1424: 1420: 1417: 1413: 1409: 1405: 1402: 1400: 1396: 1389: 1381: 1379: 1377: 1373: 1369: 1365: 1361: 1358:but moved to 1357: 1353: 1349: 1341: 1334: 1331: 1329: 1326: 1325: 1321: 1318: 1316: 1313: 1312: 1308: 1305: 1303: 1300: 1299: 1295: 1292: 1290: 1287: 1286: 1282: 1279: 1277: 1274: 1273: 1269: 1266: 1264: 1261: 1260: 1256: 1253: 1251: 1248: 1247: 1243: 1239: 1236: 1234: 1231: 1230: 1226: 1223: 1221: 1218: 1217: 1213: 1210: 1208: 1205: 1204: 1200: 1197: 1195: 1192: 1191: 1184: 1180: 1176: 1172: 1169: 1167: 1164: 1163: 1159: 1156: 1154: 1151: 1150: 1147: 1143: 1139: 1136: 1134: 1131: 1130: 1126: 1122: 1119: 1117: 1114: 1113: 1109: 1105: 1102: 1100: 1097: 1096: 1092: 1089: 1087: 1084: 1083: 1080:architecture 1079: 1075: 1072: 1070: 1067: 1066: 1062: 1059: 1057: 1054: 1053: 1049: 1046: 1044: 1041: 1040: 1036: 1033: 1031: 1028: 1027: 1023: 1020: 1018: 1015: 1014: 1010: 1007: 1005: 1002: 1001: 997: 994: 992: 989: 988: 981: 978: 976: 973: 972: 966: 962: 958: 954: 950: 945: 943: 939: 935: 922: 913: 912: 903: 894: 890: 887:This section 885: 882: 878: 877: 871: 869: 867: 863: 858: 852: 850: 844: 840: 836: 833: 829: 826: 824: 823:Saguaro stack 820: 818: 814: 812: 808: 805: 801: 797: 796: 795: 790: 782: 778: 776: 770: 766: 762: 760: 759:punched cards 756: 752: 748: 743: 740: 736: 731: 729: 725: 721: 717: 716:Elliott ALGOL 713: 709: 705: 697: 686: 681: 678: 674: 669: 667: 663: 659: 654: 652: 650: 648: 644: 640: 635: 633: 629: 622: 619: 615: 610: 607: 603: 598: 595: 591: 587: 583: 578: 575: 572: 569: 566: 563: 560: 557: 554: 553: 549: 544: 541: 538: 535: 532: 529: 526: 523: 520: 519: 515: 510: 507: 504: 501: 498: 495: 492: 489: 486: 485: 481: 476: 473: 470: 467: 464: 461: 458: 455: 452: 451: 447: 442: 439: 436: 433: 430: 427: 424: 421: 418: 417: 413: 408: 405: 402: 399: 396: 393: 390: 387: 384: 383: 379: 374: 371: 368: 365: 362: 359: 356: 353: 350: 349: 307: 301: 299: 293: 287:System design 286: 281: 278: 275: 271: 268: 265: 263: 259: 255: 252: 248: 244: 241: 237: 234: 232: 228: 225: 222: 221:Stack machine 219: 216: 214:-based design 213: 209: 205: 202: 198: 194: 190: 188: 184: 182: 178: 175: 174: 170: 168: 166: 162: 157: 153: 145: 143: 141: 137: 133: 129: 125: 121: 117: 111: 109: 105: 101: 97: 93: 89: 85: 77: 75: 73: 72:Small Systems 69: 65: 60: 55: 52: 48: 44: 43:stack machine 40: 37: 33: 19: 4097:MCP Compiler 4030: 3847:the original 3826: 3803: 3781: 3773:the original 3768: 3764: 3752:the original 3747: 3743: 3718: 3696: 3675:. Retrieved 3663: 3659: 3649: 3626: 3617: 3605:. Retrieved 3601:the original 3591: 3577: 3569:the original 3559: 3548:. Retrieved 3525:. Retrieved 3502:, retrieved 3496: 3486: 3475:. Retrieved 3466: 3455:. Retrieved 3445: 3428: 3418: 3401: 3367: 3361: 3349:. Retrieved 3339: 3320: 3314: 3302: 3291:, retrieved 3285: 3275:Ghostarchive 3273:Archived at 3269: 3256:February 21, 3254:. Retrieved 3249: 3224: 3202: 3194: 3181: 3160:. Retrieved 3135: 3122: 3115: 3107:the original 3102: 3098: 3072: 3035: 3029: 3023: 3006: 2997: 2987: 2980: 2973: 2966: 2954: 2942:Please help 2937:verification 2934: 2904: 2895: 2872: 2863: 2854: 2837: 2783: 2773: 2769: 2758: 2746: 2722: 2695: 2689: 2678: 2675: 2659: 2647: 2642: 2637: 2629: 2624: 2623: 2620: 2615: 2611: 2607: 2603: 2599: 2595: 2592: 2567: 2549: 2531: 2513: 2500: 2491: 2487: 2484: 2482:statements. 2479: 2475: 2472: 2468: 2465: 2461:Hamming code 2458: 2306:Description 2292: 2288: 2281: 2269: 2245: 2241: 2237: 2229: 2226: 2222: 2218: 2212: 2206: 2200: 2193: 2186: 2182: 2178: 2174: 2170: 2161: 2155: 2152: 2148: 2144: 2140: 2135: 2131: 2127: 2123: 2119: 2115: 2111: 2107: 2103: 2099: 2095: 2091: 2087: 2083: 2079: 2075: 2071: 2067: 2063: 2059: 2055: 2051: 2047: 2043: 2039: 2035: 2031: 2027: 2018: 2014: 2010: 2001: 1979: 1977: 1965: 1960: 1958: 1947: 1945: 1940: 1935: 1933: 1928: 1926: 1923: 1914: 1910: 1905: 1901: 1897: 1893: 1889: 1885: 1879: 1876: 1872: 1869: 1866: 1862: 1859: 1855: 1851: 1847: 1843: 1839: 1835: 1831: 1827: 1824: 1820: 1816: 1812: 1808: 1804: 1800: 1795: 1791: 1788: 1784: 1780: 1777: 1773: 1769: 1766: 1762: 1759: 1755: 1752: 1748: 1744: 1741: 1737: 1733: 1729: 1726: 1722: 1718: 1709: 1705: 1701: 1694: 1685: 1681: 1663:Multitasking 1661: 1657: 1648: 1641: 1637: 1629: 1625: 1621: 1612: 1608: 1599: 1595: 1591: 1583: 1574: 1570: 1565: 1555: 1546: 1537: 1533: 1526: 1352:Philadelphia 1345: 1327: 1314: 1301: 1288: 1275: 1262: 1249: 1244:processors) 1232: 1219: 1206: 1193: 1165: 1152: 1145: 1132: 1115: 1098: 1085: 1068: 1055: 1042: 1029: 1016: 1003: 990: 968: 946: 931: 897: 893:adding to it 888: 859: 856: 848: 831: 792: 773: 763: 744: 735:Donald Knuth 732: 728:Turing Award 701: 684: 680: 672: 657: 638: 621: 613: 609: 601: 597: 589: 294: 290: 256:Support for 164: 149: 112: 90:such as the 81: 56: 31: 29: 4107:Unisys Icon 3597:"Libra 750" 3583:"Libra 595" 3198:Taken from 2845:for B5000, 2681:Chuck Moore 2671:native mode 2578:polymorphic 1811:; 1372:Lake Forest 1179:gate arrays 724:Elliott 503 336:Index Sign 185:Simplified 156:John Mashey 66:-optimized 4171:Categories 4023:Mainframes 3677:2021-09-10 3550:2021-08-28 3527:2021-08-28 3504:2011-04-16 3477:2023-03-30 3457:2023-03-30 3293:2019-03-04 3162:2007-12-15 3073:Datamation 2970:newspapers 2916:References 2663:Intel Xeon 2439:Descriptor 1920:Procedures 1842:, but not 1697:System/360 1603:middleware 1506:Influenced 1416:structured 1412:imperative 1408:procedural 955:logic and 787:See also: 258:asymmetric 212:descriptor 92:Sensimatic 78:Background 39:mainframes 3585:. Unisys. 3188:, 1021326 3150:comp.arch 3146:Newsgroup 2849:for B6500 2765:Smalltalk 2718:VLIW CPUs 2574:operators 2534:syllables 2303:Word kind 2284:tag-based 2191:ARRAY A 1830: := 1815: := 1803: := 1776:); 1760:procedure 1443:Developer 1399:Paradigms 1328:Libra 700 1315:Libra 600 1302:Libra 500 1289:Libra 400 1276:Libra 300 1263:Libra 200 1250:Libra 100 900:June 2008 706:and then 333:Contents 240:reentrant 74:(B1000). 47:syllables 4092:LINC 4GL 4087:HOLMES 2 4055:Products 3824:(1973). 3802:(1967). 3625:(1973). 3277:and the 2790:See also 2761:Alan Kay 2710:ALGOL 68 2612:READLOCK 1990:such as 1941:CONTINUE 1888:; 1541:#defines 1500:ALGOL 60 1473:Platform 940:and the 739:ALGOL 58 712:ALGOL-60 581:A 41-47 547:A 41-47 513:A 41-47 479:A 40-47 445:A 40-47 411:A 39-47 377:A 38-47 274:Ferranti 197:ALGOL 60 171:Features 51:ALGOL 60 4046:OS 2200 3968:History 3699:. ACM. 3394:1186864 3263:Alt URL 3154:Usenet: 3148::  3075:: 49–50 2984:scholar 2754:Itanium 2729:HP 3000 2480:PROCESS 2253:Iverson 1948:process 1877:integer 1727:integer 1462: ( 1194:Micro A 1166:A12/A15 872:History 704:FORTRAN 4197:Unisys 4139:People 4117:UNIVAC 4082:ES7000 3961:Unisys 3637:  3607:16 May 3392:  3382:  3351:18 May 3327:  3156:  2986:  2979:  2972:  2965:  2957:  2841:E.g., 2716:-like 2698:Elbrus 2325:Double 2249:Simula 1980:INLINE 1929:normal 1422:Family 1368:Irvine 1153:A9/A10 965:Unisys 951:using 722:on an 590:Notes: 570:(R+7) 468:(R+7) 346:Index 249:(MCP, 208:tagged 199:named 116:Unisys 104:Univac 41:using 36:48-bit 3850:(PDF) 3843:(PDF) 3831:(PDF) 3728:AFIPS 3437:(PDF) 3414:(PDF) 3390:S2CID 3229:(PDF) 3207:(PDF) 3186:(PDF) 3127:(PDF) 3069:(PDF) 2991:JSTOR 2977:books 2829:Notes 2819:(WFL) 2813:(NDL) 2806:CANDE 2784:would 2742:HP-35 2685:Forth 2608:EVENT 2604:EVENT 2504:1973. 2418:TOSCW 1873:begin 1865:> 1856:might 1785:begin 1778:value 1758:; 1753:array 1751:; 1740:; 1723:begin 1644:DMSII 1632:DMSII 1558:ESPOL 1512:ESPOL 1426:ALGOL 1388:ALGOL 1382:ALGOL 1319:2006? 1306:2005? 1254:2002? 1224:1996? 1211:1996? 1137:1982? 1133:B7900 1116:B5900 1103:1979? 1099:B6900 1090:1977? 1086:B7800 1073:1977? 1069:B6800 1056:B7700 1043:B6700 1030:B5700 1017:B6500 1004:B5500 991:B5000 925:line. 853:B8500 777:1973. 708:COBOL 579:T 3-9 545:T 3-9 511:T 3-9 477:T 2-9 443:T 2-9 409:T 1-9 380:1023 375:T 0-9 341:Bits 339:Index 330:Base 327:MSFF 309:SALF 277:Atlas 231:COBOL 201:ESPOL 140:Linux 64:COBOL 3730:and 3635:ISBN 3609:2018 3380:ISBN 3353:2020 3325:ISBN 3258:2019 2963:news 2723:The 2714:EPIC 2643:IDLE 2638:WHOI 2630:RDLK 2625:HEYU 2616:RDLK 2600:RDLK 2596:RDLK 2478:and 2476:CALL 2398:MSCW 2388:Code 2377:SIRW 2314:Data 2265:LISP 2136:MSCW 2080:MSCW 2036:MSCW 1946:The 1936:call 1934:The 1927:The 1870:then 1789:real 1767:real 1742:real 1562:NEWP 1520:NEWP 1464:1962 1457:1962 1370:and 1332:2010 1293:200? 1280:200? 1267:200? 1242:Xeon 1237:1998 1198:1989 1170:1985 1157:1984 1142:NUMA 1125:NUMA 1120:1981 1108:NUMA 1078:NUMA 1060:1972 1047:1971 1034:1971 1021:1969 1008:1964 995:1961 975:ASIC 971:CMOS 969:MCP 658:MSCW 626:off. 614:MSFF 602:SALF 584:127 550:127 533:OFF 516:127 496:OFF 482:255 459:OFF 448:255 431:OFF 425:OFF 414:511 388:OFF 351:OFF 324:A40 319:A39 314:A38 210:and 138:and 128:Xeon 124:CMOS 98:and 30:The 4036:MCP 3808:doi 3786:doi 3701:doi 3668:doi 3631:ACM 3372:doi 2946:by 2776:x86 2667:x86 2652:'. 2450:PCW 2408:RCW 2367:IRW 2356:SCW 2336:SIW 2300:Tag 2257:APL 2156:not 2132:RCW 2076:RCW 1968:Ada 1961:run 1906:end 1904:); 1890:end 1886:end 1854:it 1850:in 1838:to 1587:NDL 1516:MCP 1322:?? 1296:?? 1283:?? 1270:?? 1257:?? 1175:ECL 895:. 811:tag 639:RCW 567:ON 564:ON 561:ON 558:ON 555:ON 530:ON 527:ON 524:ON 521:ON 493:ON 490:ON 487:ON 465:ON 456:ON 453:ON 422:ON 419:ON 385:ON 344:Max 191:No 165:MCP 132:MCP 120:MCP 100:NCR 96:IBM 4173:: 3900:, 3767:. 3763:. 3746:. 3742:. 3717:. 3662:. 3658:. 3629:. 3536:^ 3512:^ 3495:, 3416:, 3409:, 3388:, 3378:, 3281:: 3248:. 3237:^ 3215:^ 3171:^ 3152:. 3144:. 3101:, 3097:, 3081:^ 3071:, 3054:^ 2881:^ 2782:, 2767:. 2720:. 2428:SD 2068:p1 2064:p1 2056:p2 2052:r1 2048:r1 2044:r2 2040:r2 1908:. 1900:, 1867:10 1863:r2 1860:if 1852:p1 1840:r2 1836:p1 1832:r2 1828:p1 1825:r2 1817:r2 1813:p2 1807:* 1805:p1 1801:r2 1796:r2 1794:, 1792:r1 1781:p1 1774:p2 1772:, 1770:p1 1747:, 1736:, 1732:, 1646:. 1518:, 1514:, 1483:OS 1414:, 1410:, 1406:: 1227:? 1214:? 665:^ 646:^ 631:^ 576:- 542:- 536:F 508:+ 502:C 499:- 474:+ 462:- 440:+ 434:F 428:- 406:+ 400:R 397:- 394:- 391:- 372:+ 366:R 363:- 360:- 357:- 354:- 322:T2 317:T1 312:T0 300:. 134:, 3953:e 3946:t 3939:v 3863:. 3816:. 3810:: 3794:. 3788:: 3769:3 3748:3 3734:. 3724:. 3707:. 3703:: 3670:: 3664:8 3643:. 3611:. 3553:. 3530:. 3480:. 3460:. 3374:: 3355:. 3333:. 3260:. 3165:. 3103:3 3013:) 3007:( 3002:) 2998:( 2988:Β· 2981:Β· 2974:Β· 2967:Β· 2940:. 2447:7 2436:5 2385:3 2364:1 2344:6 2333:4 2322:2 2311:0 2128:i 2124:i 2120:j 2116:j 2112:k 2108:k 2104:f 2100:f 2096:g 2092:g 2088:a 2084:a 2072:f 2060:g 2032:n 2028:n 1992:C 1902:g 1898:f 1896:( 1894:p 1882:; 1880:n 1848:f 1844:f 1821:g 1809:5 1798:; 1765:( 1763:p 1756:a 1749:g 1745:f 1738:k 1734:j 1730:i 1466:) 902:) 898:( 845:. 806:. 685:C 673:F 279:. 253:) 163:( 20:)

Index

Burroughs large systems
48-bit
mainframes
stack machine
syllables
ALGOL 60
Burroughs Corporation
COBOL
Medium Systems
Small Systems
Elliott Brothers
accounting machines
Sensimatic
IBM
NCR
Univac
ElectroData Corporation
Unisys
MCP
CMOS
Xeon
MCP
Microsoft Windows
Linux
Robert (Bob) Barton
John Mashey
Master Control Program
high-level programming languages
instruction set
Assembly language

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑