In computer science , an interpreter is a computer program that directly executes instructions written in a programming or scripting language , without requiring them previously to have been compiled into a machine language program. An interpreter generally uses one of the following strategies for program execution:
145-677: BBC BASIC is an interpreted version of the BASIC programming language. It was developed by Acorn Computers Ltd when they were selected by the BBC to supply the computer for their BBC Literacy Project in 1981. It was originally supplied on an installed ROM for the BBC Microcomputer which used a 6502 microprocessor . When Acorn produced the Archimedes computer which used their ARM processor, further versions of BBC BASIC were produced. Acorn included
290-481: A garbage collector and debugger . Programs written in a high-level language are either directly executed by some kind of interpreter or converted into machine code by a compiler (and assembler and linker ) for the CPU to execute. While compilers (and assemblers) generally produce machine code directly executable by computer hardware, they can often (optionally) produce an intermediate form called object code . This
435-576: A microcomputer capable of performing various tasks which they could then demonstrate in the TV series The Computer Programme . The list of topics included programming , graphics , sound and music, teletext , controlling external hardware, and artificial intelligence . It developed an ambitious specification for a BBC computer, and discussed the project with several companies including Acorn Computers , Sinclair Research , Newbury Laboratories, Tangerine Computer Systems , and Dragon Data . The introduction of
580-468: A variable-length code requiring 3, 6, 10, or 18 bits, and address operands include a "bit offset". Many BASIC interpreters can store and read back their own tokenized internal representation. An interpreter might well use the same lexical analyzer and parser as the compiler and then interpret the resulting abstract syntax tree . Example data type definitions for the latter, and a toy interpreter for syntax trees obtained from C expressions are shown in
725-466: A virtual machine , which is implemented not in hardware, but in the bytecode interpreter. Such compiling interpreters are sometimes also called compreters . In a bytecode interpreter each instruction starts with a byte, and therefore bytecode interpreters have up to 256 instructions, although not all may be used. Some bytecodes may take multiple bytes, and may be arbitrarily complicated. Control tables - that do not necessarily ever need to pass through
870-474: A "Bitstik" [1] . The Model A and the Model B were built on the same printed circuit board (PCB), and a Model A can be upgraded to a Model B. Users wishing to operate Model B software need to add the extra RAM and the user/printer MOS Technology 6522 VIA (which many games use for timers) and snip a link, a task that can be achieved without soldering. To do a full upgrade with all the external ports requires soldering
1015-549: A "low-cost development" of an existing machine, the Transam Tuscan, which included dual floppy drives and cost £1,700. This proposal was voted down by the ITV companies, citing a possible contravention of the companies' obligations under broadcasting regulations prohibiting sponsorship, along with concerns about a conflict of interest with advertisers of computer products. Despite denials of involvement with ITV from Prism Microproducts,
1160-544: A 30% speed increase over the version included in the rest of the Master series. HI-BASIC was available in two versions, the first based on BASIC III, and the second based on BASIC IV. Both were built to run from a higher address (&B800) on the second processor, rather than the usual &8000 address on the BBC ;B. This allowed more program space to be available on either the external or internal 6502 second processors. A version
1305-677: A BBC BASIC V interpreter. The source code to the RISC OS 5 version of BBC BASIC V has been released under the Apache 2.0 license by RISC OS Open . Amongst the new commands and features supported were: The graphics commands were entirely backwards compatible , the sound less so; for example, the ENVELOPE keyword from BASIC V onwards is a command that takes fourteen numeric parameters and effectively does nothing— as in older versions, it calls OS_Word 8, but that does nothing on RISC OS. The in-line 6502 assembler
1450-588: A BBC Micro clone called the Dolphin. Unlike the original BBC Micro, the Dolphin featured blue function keys. Production agreements were made with both SCL in India and distributor Harry Mazal in Mexico for the assembly of BBC Micro units from kits of parts, leading to full-scale manufacturing, with SCL also planning to fabricate the 6502 CPU under licence from Rockwell. According to reporting from early 1985, "several thousand Beebs
1595-681: A Z80 board and hard disk drive from Torch that allowed the BBC machine to run CP/M programs. Separate pages, each with a codename, are used to control the access to the I/O: The Tube interface allowed Acorn to use BBC Micros with ARM CPUs as software development machines when creating the Acorn Archimedes . This resulted in the ARM development kit for the BBC Micro in 1986, priced at around £4000. From 2006,
SECTION 10
#17328446282161740-590: A broadcast quality signal for use within television programming; it was used on episodes of The Computer Programme and Making the Most of the Micro . The computer included several input/output (I/O) interfaces: serial and parallel printer ports, an 8-bit general purpose digital I/O port, a port offering four analogue inputs, a light pen input, and an expansion connector (the "1 MHz bus") which enabled other hardware to be connected. An Econet network interface and
1885-476: A built in assembler , first for the 6502 and later for the ARM2 processor. Initially the BBC specified compatibility with Microsoft BASIC . Acorn were already extending their earlier Atom BASIC to include structured programming constructs. Particularly on the later Archimedes computers as the memory constraints reduced, BBC BASIC incorporated a more complete set of structured programming constructs commonly found in
2030-441: A bytecode interpreter, because of nodes related to syntax performing no useful work, of a less sequential representation (requiring traversal of more pointers) and of overhead visiting the tree. Further blurring the distinction between interpreters, bytecode interpreters and compilation is just-in-time (JIT) compilation, a technique in which the intermediate representation is compiled to native machine code at runtime. This confers
2175-413: A compiler works. However, a compiled program still runs much faster, under most circumstances, in part because compilers are designed to optimize code, and may be given ample time for this. This is especially true for simpler high-level languages without (many) dynamic data structures, checks, or type checking . In traditional compilation, the executable output of the linkers (.exe files or .dll files or
2320-439: A compiling phase - dictate appropriate algorithmic control flow via customized interpreters in similar fashion to bytecode interpreters. Threaded code interpreters are similar to bytecode interpreters but instead of bytes they use pointers. Each "instruction" is a word that points to a function or an instruction sequence, possibly followed by a parameter. The threaded code interpreter either loops fetching instructions and calling
2465-585: A computer language anyone could use. Having a formula based syntactic structure it is a simplified FORTRAN. Together, Paul Allen and Bill Gates developed BASIC for the Altair 8800 . Development continued to become IBM 's BASIC A and Microsoft BASIC . During the 1970s, the BBC Continuing Education Department was considering how advancements in computer related technology would impact British society. Their Microelectronics Report in 1979 to
2610-413: A computer language is usually done in relation to an abstract machine (so-called operational semantics ) or as a mathematical function ( denotational semantics ). A language may also be defined by an interpreter in which the semantics of the host language is given. The definition of a language by a self-interpreter is not well-founded (it cannot define a language), but a self-interpreter tells a reader about
2755-580: A computer retailing strategy. A key feature of the BBC Micro's design is the high-performance random-access memory (RAM) it is equipped with. A common design note in 6502 -based computers of the era was to run the RAM at twice the clock rate as the CPU. This allowed a separate video display controller to access memory while the CPU was busy processing the data just read. In this way, the CPU and graphics driver could share access to RAM through careful timing. This technique
2900-400: A disk drive interface were available as options. All motherboards had space for the electronic components, but Econet was rarely installed. Additionally, an Acorn proprietary interface named the " Tube " allowed a second processor to be added. Three models of second processor were offered by Acorn, based on the 6502 , Z80 and 32016 CPUs. The Tube was used for third-party add-ons, including
3045-441: A finger on a certain place on the motherboard caused the prototype to work. Acorn put a resistor pack across the data bus, which Furber described as " 'the engineer's finger' and again, we have no idea why it's necessary, and a million and a half machines later it's still working, so nobody asked any questions". The Model A shipped with 16 KB of user RAM, while the Model B had 32 KB. Extra ROMs could be fitted (four on
SECTION 20
#17328446282163190-403: A given price, none of them surpass the BBC ... in terms of versatility and expansion capability". As with Sinclair Research 's ZX Spectrum and Commodore International 's Commodore 64 , both released the next year, in 1982, demand greatly exceeded supply. For some months, there were long delays before customers received the machines they had ordered. Efforts were made to market the machine in
3335-503: A kit with an ARM7TDMI CPU running at 64 MHz, with as much as 64 MB of RAM, was released for the BBC Micro and Master, using the Tube interface to upgrade the 8-bit micros to 32-bit RISC machines. Among the software that operated on the Tube are an enhanced version of the Elite video game and a computer-aided design system that required a second 6502 CPU and a 3-dimensional joystick named
3480-418: A library, see picture) is typically relocatable when run under a general operating system, much like the object code modules are but with the difference that this relocation is done dynamically at run time, i.e. when the program is loaded for execution. On the other hand, compiled and linked programs for small embedded systems are typically statically allocated, often hard coded in a NOR flash memory, as there
3625-710: A list of these commands in the order a programmer wishes to execute them. Each command (also known as an Instruction ) contains the data the programmer wants to mutate, and information on how to mutate the data. For example, an interpreter might read ADD Books, 5 and interpret it as a request to add five to the Books variable . Interpreters have a wide variety of instructions which are specialized to perform different tasks, but you will commonly find interpreter instructions for basic mathematical operations , branching , and memory management , making most interpreters Turing complete . Many interpreters are also closely integrated with
3770-557: A microcomputer needed to be robust, have expansion capabilities and an implementation of BASIC compatible with Microsoft BASIC VN5 . Jointly the government and the BBC established a public awareness and education campaign. This Computer Literacy Project (1980-1989) used the BBC's choice of the BBC Microcomputer produced by Acorn Computers Ltd . BBC BASIC was central to the user programming experience. Acorn first developed System BASIC and Atom BASIC for their early 6502 microprocessor computers that were sold to kit-build customers. With
3915-451: A month" were being produced in India. Meanwhile, the eventual production arrangement in Mexico involved local manufacturer Datum (a company founded by Harry Mazal and others, initially to act as ICL's Mexican distributor ), aiming to assemble 2000 units per month by May 1985, with the initial assembly intended to lead to the manufacture of all aspects of the machines apart from Acorn's proprietary ULA components. Such machines were intended for
4060-439: A parse tree, and both may generate immediate instructions (for a stack machine , quadruple code , or by other means). The basic difference is that a compiler system, including a (built in or separate) linker, generates a stand-alone machine code program, while an interpreter system instead performs the actions described by the high-level program. A compiler can thus make almost all the conversions from source code semantics to
4205-405: A similar effect to obfuscation, but bytecode could be decoded with a decompiler or disassembler . The main disadvantage of interpreters is that an interpreted program typically runs more slowly than if it had been compiled . The difference in speeds could be tiny or great; often an order of magnitude and sometimes more. It generally takes longer to run a program under an interpreter than to run
4350-597: A slightly less precise floating-point numeric format. For a while it was bundled with a special academic package of the Amiga 500 , in the hope that schools would replace their ageing BBC Bs with Amiga 500s. A version of BBC BASIC V (Z80) has also been made for the TI-83/84+ Texas Instruments calculator families by Benjamin Ryves. A Commodore 64 version Shado was produced by a small software house Aztec Software in
4495-499: A specific microcomputer to a more general computer literacy initiative was a topic of controversy, however, with criticism aimed at the BBC for promoting a specific commercial product and for going beyond the "traditional BBC pattern" of promoting existing information networks of training and education providers. Accusations were even levelled at the Department of Industry for making the BBC "an arm of Government industrial policy" and using
BBC BASIC - Misplaced Pages Continue
4640-784: A standalone application bundle which will run without BBC BASIC having to be installed (.exe file in Windows, .dmg file in MacOS, .zip file in Linux or Raspberry Pi OS and .apk file in Android). A high degree of compatibility with the BBC Microcomputer is also retained, including emulation of the SOUND and ENVELOPE statements, and the MODE 7 (teletext) screen mode. BBC BASIC for SDL 2.0 incorporates an assembler which depends on
4785-481: A stop gap", and others criticising the elevated price of £500 (compared to the £400 of the original Model B) in the face of significantly cheaper competition providing as much or even twice as much memory. The extra RAM in the Model B+ is assigned as two blocks, a block of 20 KB dedicated solely for screen display (so-called shadow RAM ) and a block of 12 KB of special sideways RAM . The B+128, introduced towards
4930-494: A suitable interpreter. If the interpreter needs to be supplied along with the source, the overall installation process is more complex than delivery of a monolithic executable, since the interpreter itself is part of what needs to be installed. The fact that interpreted code can easily be read and copied by humans can be of concern from the point of view of copyright . However, various systems of encryption and obfuscation exist. Delivery of intermediate code, such as bytecode, has
5075-472: A template interpreter. Rather than implement the execution of code by virtue of a large switch statement containing every possible bytecode, while operating on a software stack or a tree walk, a template interpreter maintains a large array of bytecode (or any efficient intermediate representation) mapped directly to corresponding native machine instructions that can be executed on the host hardware as key value pairs (or in more efficient designs, direct addresses to
5220-415: A wide range of computational tasks, including binary emulation and internet applications. Interpreter performance is still a worry despite their adaptability, particularly on systems with limited hardware resources. Advanced instrumentation and tracing approaches provide insights into interpreter implementations and processor resource utilization during execution through evaluations of interpreters tailored for
5365-432: Is a few decades old, appearing in languages such as Smalltalk in the 1980s. Just-in-time compilation has gained mainstream attention amongst language implementers in recent years, with Java , the .NET Framework , most modern JavaScript implementations, and Matlab now including JIT compilers. Making the distinction between compilers and interpreters yet again even more vague is a special interpreter design known as
5510-688: Is a layer of hardware-level instructions that implement higher-level machine code instructions or internal state machine sequencing in many digital processing elements. Microcode is used in general-purpose central processing units , as well as in more specialized processors such as microcontrollers , digital signal processors , channel controllers , disk controllers , network interface controllers , network processors , graphics processing units , and in other hardware. Microcode typically resides in special high-speed memory and translates machine instructions, state machine data or other input into sequences of detailed circuit-level operations. It separates
5655-532: Is a relatively simple way to achieve software compatibility between different products in a processor family. Even a non microcoding computer processor itself can be considered to be a parsing immediate execution interpreter that is written in a general purpose hardware description language such as VHDL to create a system that parses the machine code instructions and immediately executes them. Interpreters, such as those written in Java, Perl, and Tcl, are now necessary for
5800-524: Is a series of microcomputers designed and built by Acorn Computers Limited in the 1980s for the Computer Literacy Project of the BBC . The machine was the focus of a number of educational BBC TV programmes on computer literacy, starting with The Computer Programme in 1982, followed by Making the Most of the Micro , Computers in Control in 1983, and finally Micro Live in 1985. After
5945-567: Is also a long-running problem late in the B/B+'s commercial life infamous amongst B+ owners, when Superior Software released Repton Infinity , which did not run on the B+. A series of unsuccessful replacements were issued before one compatible with both was finally released. During 1986, Acorn followed up with the BBC Master , which offers memory sizes from 128 KB and many other refinements which improved upon
BBC BASIC - Misplaced Pages Continue
6090-604: Is also available. A fork of this, Matrix Brandy , remains under active development. An emulator of the BBC Micro for the Commodore Amiga was produced by Ariadne Software for CBM (UK). While extremely fast, it did not emulate the 6502 at full speed, so assembly code would run slower than a real BBC while BASIC programs would run much faster. Due to the way the optimised BASIC and the 6502 emulation interacted, almost no commercial games would run but well-behaved code and educational software generally worked. Additionally, it used
6235-583: Is basically the same machine specific code but augmented with a symbol table with names and tags to make executable blocks (or modules) identifiable and relocatable. Compiled programs will typically use building blocks (functions) kept in a library of such object code modules. A linker is used to combine (pre-made) library files with the object file(s) of the application to form a single executable file. The object files that are used to generate an executable file are thus often produced at different times, and sometimes even by different languages (capable of generating
6380-439: Is compiled into "F code" (a bytecode), which is then interpreted by a virtual machine . In the spectrum between interpreting and compiling, another approach is to transform the source code into an optimized abstract syntax tree (AST), then execute the program following this tree structure, or use it to generate native code just-in-time . In this approach, each sentence needs to be parsed just once. As an advantage over bytecode,
6525-432: Is executed and then perform the desired action, whereas the compiled code just performs the action within a fixed context determined by the compilation. This run-time analysis is known as "interpretive overhead". Access to variables is also slower in an interpreter because the mapping of identifiers to storage locations must be done repeatedly at run-time rather than at compile time . There are various compromises between
6670-406: Is fundamentally incompatible, and the 8271 emulators that existed were necessarily imperfect for all but basic operation. Software that use copy protection techniques involving direct access to the controller do not operate on the new system. Acorn attempted to alleviate this, starting with version 2.20 of the 1770 DFS, via an 8271-backward- compatible Ctrl + Z + Break option. There
6815-430: Is implemented using closures in the interpreter language or implemented "manually" with a data structure explicitly storing the environment. The more features implemented by the same feature in the host language, the less control the programmer of the interpreter has; for example, a different behavior for dealing with number overflows cannot be realized if the arithmetic operations are delegated to corresponding operations in
6960-543: Is more difficult to maintain due to the interpreter having to support translation to multiple different architectures instead of a platform independent virtual machine/stack. To date, the only template interpreter implementations of widely known languages to exist are the interpreter within Java's official reference implementation, the Sun HotSpot Java Virtual Machine, and the Ignition Interpreter in
7105-449: Is often no secondary storage and no operating system in this sense. Historically, most interpreter systems have had a self-contained editor built in. This is becoming more common also for compilers (then often called an IDE ), although some programmers prefer to use an editor of their choice and run the compiler, linker and other tools manually. Historically, compilers predate interpreters because hardware at that time could not support both
7250-487: Is such a language, because XSLT programs are written in XML. A sub-domain of metaprogramming is the writing of domain-specific languages (DSLs). Clive Gifford introduced a measure quality of self-interpreter (the eigenratio), the limit of the ratio between computer time spent running a stack of N self-interpreters and time spent to run a stack of N − 1 self-interpreters as N goes to infinity. This value does not depend on
7395-616: The COLOUR command could also be spelled COLOR : regardless of which was input, the UK version always listed it as COLOUR , the US version as COLOR . The main place that BASIC III can be found is as the HI-BASIC version for the external second processor. BASIC IV, also known as CMOS BASIC, available on the BBC Master machines, was changed to use the new instructions available in the 65SC12 processor, reducing
SECTION 50
#17328446282167540-537: The Manpower Services Commission describes formally their concerns about increasing polarisation and alienation in the workplace that 43 years earlier Charles Chaplin had shown to comic effect in Modern Times . The BBC required a microcomputer usable for demonstrations in their programming that could be purchased by the general public to enable the viewer to themselves experiment. They decided that such
7685-514: The ALGOL 60 group of computer languages. Alongside Acorn's version of BBC BASIC on the Archimedes, third party companies produced compiled versions of the language. Development and support has continued after the demise of Acorn Computers Ltd for newer ARM based computers. BBC BASIC is now available on other platforms either for emulators such as on MS Windows or natively. Prior to 1957 programming
7830-471: The Acorn Business Computer (ABC)/Acorn Cambridge Workstation range of machines was announced, based primarily on BBC hardware. In mid-1985, Acorn introduced the Model B+ which increased the total RAM to 64 KB. This had a modest market impact and received a rather unsympathetic reception, with one reviewer's assessment being that the machine was "18 months too late" and that it "must be seen as
7975-520: The BeebWiki . In almost all cases you shouldn't need to be testing for what BASIC or platform your program is running on, just make the call and read whatever returned data are returned and deal with it. With the move to the 32-bit ARM CPU and the removal of the 16 KB limit on the BASIC code size many new features were added. BASIC V version 1.04 was 61 KB long. Current versions of RISC OS still contain
8120-639: The ITV network to introduce their own initiative and rival computing system, with a CP/M-based system proposed by Transam Computers under consideration for such an initiative by the Independent Television Companies Association at a late 1983 meeting. The proposed machine would have been priced at £399, matching that of the BBC Model B, and was reported as offering 64 KB of RAM, a disc interface, and serial and parallel interfaces, itself being
8265-753: The RiscPC . A version of BBC BASIC V was also available to run on the ARM second processor for the BBC Micro. A compiler for BBC BASIC V was produced by Paul Fellows, team leader of the Arthur OS development, called the Archimedes BASIC Compiler and published initially by DABS Press. ABC was able to implement almost all of the language, with the obvious exception of the EVAL function, which inevitably required run-time programmatic interpretation. As evidence of its completeness, it
8410-557: The TI-83 Plus and TI-84 Plus series graphing calculators . Due to efforts of J. G. Harston (also responsible for a PDP-11 version) a version of BBC BASIC for the ZX Spectrum was released in January 2002, with many improvements made in subsequent releases. For PC -based systems, BBC BASIC was also implemented for DOS as BBCBASIC (86) , which aimed for maximum compatibility with
8555-486: The Tube interface was incorporated into the design, enabling a Z80 second processor to be added. A new contract between Acorn and BBC Enterprises was agreed in 1984 for another four-year term, with other manufacturers having tendered for the deal. An Acorn representative admitted that the BBC Model B would not be competitive throughout the term of the renewed contract, and that a successor would emerge. The OS ROM v1.0 contains
8700-592: The University of Edinburgh . K&R C was designed as the language to write the UNIX operating system. This was formalised as ANSI C from which C++ and JAVA were later derived. At Dartmouth College two mathematics professors wanted all students to be able to program on their new College computer. The existing high-level languages were used by professionals. In 1964 they created Dartmouth BASIC (short for B eginner’s A ll-Purpose S ymbolic I nstruction C ode) to be
8845-427: The development speed when using an interpreter and the execution speed when using a compiler. Some systems (such as some Lisps ) allow interpreted and compiled code to call each other and to share variables. This means that once a routine has been tested and debugged under the interpreter it can be compiled and thus benefit from faster execution while other routines are being developed. Many interpreters do not execute
SECTION 60
#17328446282168990-460: The 1981 original. It has essentially the same 6502-based BBC architecture, with many of the upgrades that the original design intentionally makes possible (extra ROM software, extra paged RAM, second processors) now included on the circuit board as internal plug-in modules. The BBC Micro platform amassed a large software base of both games and educational programs for its two main uses as a home and educational computer. Notable examples of each include
9135-468: The AST keeps the global program structure and relations between statements (which is lost in a bytecode representation), and when compressed provides a more compact representation. Thus, using AST has been proposed as a better intermediate format for just-in-time compilers than bytecode. Also, it allows the system to perform better analysis during runtime. However, for interpreters, an AST causes more overhead than
9280-642: The Acorn 32016 coprocessor and Acorn ABC. In addition to the version of BBC BASIC supplied with the BBC Micro 's Zilog Z80 second processor, a Z80-based version of BBC BASIC also exists for CP/M -based systems. A Zilog Z80 version of BBC BASIC was also used on the Tiki 100 desktop computer, Cambridge Z88 portable and the Amstrad NC100 Notepad and Amstrad NC200 Notebook computers. This version has been implemented on
9425-566: The BASIC III ROM chip, modified to accept the American spelling of COLOR , but the height of the graphics display was reduced to 200 scan lines to suit NTSC TVs, severely affecting applications written for British computers. After the failed US marketing campaign, the unwanted machines were remanufactured for the British market and sold, resulting in a third export variant. In October 1984,
9570-404: The BBC Micro system" for which 200 educational titles were being offered. In October 1984, while preparing a major expansion of its US dealer network, Acorn claimed sales of 85 per cent of the computers in British schools, and delivery of 40,000 machines per month. That December, Acorn stated its intention to become the market leader in US educational computing. The New York Times considered
9715-515: The BBC Micro, and BBasic , which concentrated on the BASIC language, with its own enhancements based on BASIC II. A version of BBC BASIC integrated with the Microsoft Windows graphical user interface , BBC BASIC for Windows created by Richard Russell , developer of the Z80 and x86 versions, was released in 2001. Whilst supporting nearly completely the original BBC BASIC specification (BASIC IV),
9860-581: The BBC Models was high compared to competitors such as the ZX Spectrum and the Commodore 64, and from 1983 on, Acorn attempted to counter this by producing a simplified but largely compatible version intended for home use, complementing the use of the BBC Micro in schools: the 32K Acorn Electron . The involvement of the BBC in microcomputing also initiated tentative plans by the independent television companies of
10005-409: The BBC family, it is possible to run both the standard BASIC and an enhanced HIBASIC on the 6502 second processor. One may determine if the program is running on the second processor by examining the initial value of PAGE, it will be &800 if using the second processor. To distinguish between BASIC and HIBASIC, one should examine the initial value of HIMEM. This will be &8000 for BASIC running on
10150-537: The BBC started what became known as the BBC Computer Literacy Project . The project was initiated partly in response to an ITV documentary series The Mighty Micro , in which Christopher Evans of the UK's National Physical Laboratory predicted the coming microcomputer revolution and its effect on the economy, industry, and lifestyle of the United Kingdom. The BBC wanted to base its project on
10295-426: The CPU in the platform: x86 (32-bit or 64-bit) for Windows, MacOS or Linux; ARM (32-bit or 64-bit) for Raspberry Pi. In the case of Android the assembler is ARM or x86 as appropriate. Application Program Interface (API) functions can be accessed from BASIC and from assembler code, allowing an experienced programmer to produce sophisticated applications. A GPL clone of BBC BASIC named Brandy , written in portable C ,
10440-549: The Computer Literacy Project as a way of "funding industry through the back door", obscuring public financial support on behalf of a government that was ostensibly opposed to subsidising industry. The Acorn team had already been working on a successor to their existing Atom microcomputer. Known as the Proton , it included better graphics and a faster 2 MHz MOS Technology 6502 central processing unit . The machine
10585-451: The Google V8 javascript execution engine. A self-interpreter is a programming language interpreter written in a programming language which can interpret itself; an example is a BASIC interpreter written in BASIC. Self-interpreters are related to self-hosting compilers . If no compiler exists for the language to be interpreted, creating a self-interpreter requires the implementation of
10730-672: The Lisp eval function could be implemented in machine code. The result was a working Lisp interpreter which could be used to run Lisp programs, or more properly, "evaluate Lisp expressions". The development of editing interpreters was influenced by the need for interactive computing. In the 1960s, the introduction of time-sharing systems allowed multiple users to access a computer simultaneously, and editing interpreters became essential for managing and modifying code in real-time. The first editing interpreters were likely developed for mainframe computers, where they were used to create and modify programs on
10875-512: The Literacy Project's call for bids for a computer to accompany the television programmes and literature, Acorn won the contract with the Proton , a successor of its Atom computer prototyped at short notice. Renamed the BBC Micro, the system was adopted by most schools in the United Kingdom , changing Acorn's fortunes. It was also successful as a home computer in the UK, despite its high price compared to some other home computers sold in
11020-507: The MIPS instruction set and programming languages such as Tcl, Perl, and Java. Performance characteristics are influenced by interpreter complexity, as demonstrated by comparisons with compiled code. It is clear that interpreter performance is more dependent on the nuances and resource needs of the interpreter than it is on the particular application that is being interpreted. BBC Microcomputer The BBC Microcomputer System , or BBC Micro ,
11165-519: The Mexican and South American markets, potentially also appealing to those south-western states of the US having large Spanish-speaking populations. Ultimately, upon Acorn's withdrawal from the US in 1986, Datum would continue manufacturing at a level of 7000 to 8000 Spanish-language machines per year for the North and South American markets. The initial strategy for the BBC's computer literacy endeavour involved
11310-510: The PCB or sixteen with expansion hardware) and accessed via paged memory . The machines included three video ports, one with an RF modulator sending out a signal in the UHF band, another sending composite video suitable for connection to computer monitors , and a separate RGB video port. The separate RGB video out socket was an engineering requirement from the BBC to allow the machine to directly output
11455-472: The Proton was the only machine to match the BBC's specification; it also exceeded the specification in nearly every parameter. Based on the Proton prototype, the BBC signed a contract with Acorn as early as February 1981; by June the BBC Micro's specifications and pricing were decided. As a concession to the BBC's expectation of "industry standard" compatibility with CP/M, apparently under the direction of John Coll,
11600-528: The RAM had to allow four million access cycles per second. Hitachi was the only company considering a DRAM which ran at that speed, the HM4816. To equip the prototype machine, the only four 4816s in the country were hand-carried by the Hitachi representative to Acorn. The National Semiconductor 81LS95 multiplexer was needed for the high memory speed. Furber recalled that competitors came to Acorn offering to replace
11745-402: The UK at the time. Acorn later employed the machine to simulate and develop the ARM architecture . While nine models were eventually produced with the BBC brand, the phrase "BBC Micro" is usually used colloquially to refer to the first six (Model A, B, B+64, B+128, Master 128, and Master Compact); subsequent BBC models are considered part of Acorn's Archimedes series. During the early 1980s,
11890-565: The United States and West Germany. Acorn's strategy in the US focused on the education market, worth a reported $ 700 million , by offering the BBC Micro in an upgraded form of the Model B with an expanded ROM, speech synthesis hardware, and built-in Econet interface for a price of $ 995, complementing this with the provision of software and materials designed to support teaching and to encourage adoption by teachers "fearful" of computers or skeptical of
12035-446: The Windows version supports much of BASIC V/VI syntax as well as some advanced features of its own. Features unique to BBC BASIC for Windows include interpreter support for record/structure types, and the ability to call Windows API routines or those in an external DLL . Recent versions have included advanced features comparable with languages like C , and an external library has recently added support for objects. BBC BASIC for SDL
12180-500: The [ and ] characters. This contributed to the system's popularity with industrial and research engineers. As the BBC MOS and RISC OS were usually supplied on ROM, it may be assumed that a specific release of the operating system contained a specific version of BASIC. As such, there is no simple way to determine which version of BASIC is actually running other than by enquiring the operating system identity and thus making an assumption. See also BeebWiki entry for INKEY. On
12325-415: The amount of analysis performed before the program is executed. For example, Emacs Lisp is compiled to bytecode , which is a highly compressed and optimized representation of the Lisp source, but is not machine code (and therefore not tied to any particular hardware). This "compiled" code is then interpreted by a bytecode interpreter (itself written in C ). The compiled code in this case is machine code for
12470-415: The box. Interpretation cannot be used as the sole method of execution: even though an interpreter can itself be interpreted and so on, a directly executed program is needed somewhere at the bottom of the stack because the code being interpreted is not, by definition, the same as the machine code that the CPU can execute. There is a spectrum of possibilities between interpreting and compiling, depending on
12615-498: The command line. The MOS recognises certain built-in commands, and polls the paged ROMs in descending order for service otherwise; if none of them claims the command, then the OS returns a Bad command error. Suitable ROM (or EPROM) images could be written and provide functions without requiring RAM for the code itself. Not all ROMs offer star commands (ROMs containing data files, for instance), but any ROM can " hook " into vectors to enhance
12760-554: The company had already been pursuing a joint venture with Transam on a product rumoured to be under consideration by the broadcasting group. This product, a business system subsequently known as the Wren, had reportedly been positioned as such an "ITV Micro" towards the end of 1983, also to be offered in a home variant with ORACLE teletext reception capabilities. However, not all ITV franchise holders were equally enthusiastic about scheduling programmes related to microcomputing or about pursuing
12905-524: The competition from IBM, Apple , and Commodore. Another deployment in Phoenix, Arizona valued at $ 174,697 saw 175 BBC Micros installed, with the local Acorn dealer predicting sales worth $ 2 million in the next two years, of which around 85 to 90 percent would be made into education, the remainder going to the small business market. In early 1984, Acorn claimed a US network of more than 1,000 dealers, also reporting "over $ 50 million worth of education orders for
13050-418: The compiled code but it can take less time to interpret it than the total time required to compile and run it. This is especially important when prototyping and testing code when an edit-interpret-debug cycle can often be much shorter than an edit-compile-run-debug cycle. Interpreting code is slower than running the compiled code because the interpreter must analyze each statement in the program each time it
13195-488: The component with their own, but "none of them worked. And we never knew why. Which of course, means we didn't know why the National Semiconductor one did work correctly. And a million and a half BBC Micros later, it was still working, and I still didn't know why". Another mystery was the 6502's data bus . The prototype BBC Micro exceeded the CPU's specifications, causing it to fail. The designers found that putting
13340-477: The connectors to the motherboard. The original machines shipped with "OS 0.1", with later updates advertised in magazines, supplied as a clip-in integrated circuit, with the last official version being "OS 1.2". Variations in the Acorn OS exist as a result of home-made projects and modified machines can still be bought on Internet auction sites such as eBay as of 2011. The BBC Model A was phased out of production with
13485-402: The details of the technical changes. Per Watford Electronics comments in their '32K Ram Board Manual': Early issue BBCs (Issue 3 circuit boards and before) are notorious for out of specification timings. If problems occur with this sort of machine, the problem can generally be cured by the use of either a Rockwell 6502A CPU chip, or by replacing IC14 (a 74LS245) with either another 74LS245 or
13630-421: The development of the Proton as a Front-end processor , Acorn were designing for more powerful computing. In order to produce a computer to satisfy the BBC specification, the Proton became the BBC Microcomputer, usable as a stand alone computer. By retaining the capability to be connected to a Z80 computer, Acorn was able to comply with the requirement of a computer supporting CP/M . Sophie Wilson developed
13775-881: The early 1980s. Patched versions of Acorn's 6502 based HI-BASIC have also been experimentally run on C64, with an interface to the C64 Kernel, replacing the Acorn MOS calls otherwise made. There have also been efforts to make 6502 based version of BBC BASIC available on the Apple II . Applecorn being one such effort. BBC BASIC is the programming language used in the Agon Light, an open-sourced 8-bit Z80 -based single board computer and microcontroller designed by Bernardo Kastrup and released in 2022. Interpreted Language Early versions of Lisp programming language and minicomputer and microcomputer BASIC dialects would be examples of
13920-436: The efficiency of running native code, at the cost of startup time and increased memory use when the bytecode or AST is first compiled. The earliest published JIT compiler is generally attributed to work on LISP by John McCarthy in 1960. Adaptive optimization is a complementary technique in which the interpreter profiles the running program and compiles its most frequently executed parts into native code. The latter technique
14065-533: The end of 1985, comes with an additional 64 KB (4 × 16 KB sideways RAM banks) to give a total RAM of 128 KB. The B+ is incapable of operating some original BBC B programs and games, such as the very popular Castle Quest . A particular problem is the replacement of the Intel 8271 floppy-disk controller with the Western Digital 1770 : not only was the new controller mapped to different addresses, it
14210-414: The expressiveness and elegance of a language. It also enables the interpreter to interpret its source code, the first step towards reflective interpreting. An important design dimension in the implementation of a self-interpreter is whether a feature of the interpreted language is implemented with the same feature in the interpreter's host language. An example is whether a closure in a Lisp -like language
14355-469: The faster 74ALS245. Two export models were developed: one for the US, with Econet and speech hardware as standard; the other for West Germany . Despite concerns of unsuitability for the Australian market, with the design failing at temperatures above 35 °C (95 °F), the machine was still "widely used in Australian schools". Export models were fitted with radio frequency shielding as required by
14500-665: The first type. Perl , Raku , Python , MATLAB , and Ruby are examples of the second, while UCSD Pascal is an example of the third type. Source programs are compiled ahead of time and stored as machine independent code, which is then linked at run-time and executed by an interpreter and/or compiler (for JIT systems). Some systems, such as Smalltalk and contemporary versions of BASIC and Java , may also combine two and three types. Interpreters of various types have also been constructed for many languages traditionally associated with compilation, such as Algol , Fortran , Cobol , C and C++ . While interpretation and compilation are
14645-576: The fly. One of the earliest examples of an editing interpreter is the EDT (Editor and Debugger for the TECO) system, which was developed in the late 1960s for the PDP-1 computer. EDT allowed users to edit and debug programs using a combination of commands and macros, paving the way for modern text editors and interactive development environments. An interpreter usually consists of a set of known commands it can execute , and
14790-476: The following ASCII credits string (code here ): Additionally, the last bytes of the BASIC read-only memory (ROM; v2 and v4) include the word "Roger", which is a reference to Sophie Wilson whose name at the time was Roger Wilson. The machine was released as the BBC Microcomputer on 1 December 1981, although production problems pushed delivery of the majority of the initial run into 1982. Nicknamed "the Beeb", it
14935-504: The functions they point to, or fetches the first instruction and jumps to it, and every instruction sequence ends with a fetch and jump to the next instruction. Unlike bytecode there is no effective limit on the number of different instructions other than available memory and address space. The classic example of threaded code is the Forth code used in Open Firmware systems: the source language
15080-475: The host language. Some languages such as Lisp and Prolog have elegant self-interpreters. Much research on self-interpreters (particularly reflective interpreters) has been conducted in the Scheme programming language , a dialect of Lisp. In general, however, any Turing-complete language allows writing of its own interpreter. Lisp is such a language, because Lisp programs are lists of symbols and other lists. XSLT
15225-468: The implementations of BASIC at Acorn. The dialect on the BBC Microcomputer became compatible with Microsoft BASIC and so was acceptable to the BBC. It already had features from the ALGOL 60 group of computer languages that Wilson added to enable some structured programming methodology to be used. The full version list is available here: BASIC I, the original version, was shipped on early BBC Micros . BASIC II
15370-686: The inclusion of local area networking to be of prime importance to teachers. The operation resulted in advertisements by at least one dealer in Interface Age magazine, but ultimately the attempt failed. The success of the machine in the UK was due largely to its acceptance as an "educational" computer – UK schools used BBC Micros to teach computer literacy , information technology skills. Acorn became more known for its BBC Model B computer than for its other products. Some Commonwealth countries, including India , started their own computer literacy programmes around 1984. Intending to avoid "re-inventing
15515-534: The inherent performance hit, as was the case for the Amstrad CPC , Atari 8-bit computers , and to a lesser extent the ZX Spectrum . Others, like the MSX systems, used entirely separate pools of memory for the CPU and video, slowing access between the two. Furber believed that the Acorn design should have a flat memory model and allow the CPU and video system to access the bus without interfering with each other. To do so,
15660-414: The interpreter and interpreted code and the typical batch environment of the time limited the advantages of interpretation. During the software development cycle , programmers make frequent changes to source code. When using a compiler, each time a change is made to the source code, they must wait for the compiler to translate the altered source files and link all of the binary code files together before
15805-523: The introduction of the Acorn Electron , with chairman Chris Curry stating at the time that Acorn "would no longer promote it" (the Model A). Early BBC Micros used linear power supplies at the insistence of the BBC, which, as a broadcaster, was cautious about electromagnetic interference . The supplies were unreliable, and after a few months the BBC allowed switched-mode units. An apparent oversight in
15950-513: The keyboard, with the leftmost socket hard-wired for the OS. The intended purpose for the perforated panel on the left of the keyboard was for a Serial ROM or Speech ROM. The paged ROM system is essentially modular. A language-independent system of star commands , prefixed with an asterisk, provides the ability to select a language (for example *BASIC , *PASCAL ), a filing system ( *TAPE , *DISC ), change settings ( *FX , *OPT ), or carry out ROM-supplied tasks ( *COPY , *BACKUP ) from
16095-449: The language in a host language (which may be another programming language or assembler ). By having a first interpreter such as this, the system is bootstrapped and new versions of the interpreter can be developed in the language itself. It was in this way that Donald Knuth developed the TANGLE interpreter for the language WEB of the de-facto standard TeX typesetting system . Defining
16240-405: The language into native calls one opcode at a time rather than creating optimized sequences of CPU executable instructions from the entire code segment. Due to the interpreter's simple design of simply passing calls directly to the hardware rather than implementing them directly, it is much faster than every other type, even bytecode interpreters, and to an extent less prone to bugs, but as a tradeoff
16385-633: The limitations of computers at the time (e.g. a shortage of program storage space, or no native support for floating point numbers). Interpreters were also used to translate between low-level machine languages, allowing code to be written for machines that were still under construction and tested on computers that already existed. The first interpreted high-level language was Lisp . Lisp was first implemented by Steve Russell on an IBM 704 computer. Russell had read John McCarthy 's paper, "Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I", and realized (to McCarthy's surprise) that
16530-572: The machine instructions from the underlying electronics so that instructions can be designed and altered more freely. It also facilitates the building of complex multi-step instructions, while reducing the complexity of computer circuits. Writing microcode is often called microprogramming and the microcode in a particular processor implementation is sometimes called a microprogram . More extensive microcoding allows small and simple microarchitectures to emulate more powerful architectures with wider word length , more execution units and so on, which
16675-421: The machine level once and for all (i.e. until the program has to be changed) while an interpreter has to do some of this conversion work every time a statement or function is executed. However, in an efficient interpreter, much of the translation work (including analysis of types, and similar) is factored out and done only the first time a program, module, function, or even statement, is run, thus quite akin to how
16820-461: The manufacturing process resulted in many Model Bs producing a constant buzzing noise from the built-in speaker. This fault can be rectified partly by soldering a resistor across two pads. There are five developments of the main BBC Micro circuit board that addressed various issues through the model's production, from 'Issue 1' through to 'Issue 7' with variants 5 and 6 not being released. The 1985 'BBC Microcomputer Service Manual' from Acorn documents
16965-498: The marketing of the "Acorn Proton-based BBC microcomputer for less than £200". The Model A and the Model B were initially priced at £235 and £335 respectively, but increased almost immediately to £299 and £399 due to higher costs. The Model B price of nearly £400 was roughly £1200 (€1393) in 2011 prices – thirty years after its launch – or around £1900 today. Acorn anticipated total sales to be around 12,000 units, but eventually more than 1.5 million BBC Micros were sold. The cost of
17110-430: The native instructions), known as a "Template". When the particular code segment is executed the interpreter simply loads or jumps to the opcode mapping in the template and directly runs it on the hardware. Due to its design, the template interpreter very strongly resembles a just-in-time compiler rather than a traditional interpreter, however it is technically not a JIT due to the fact that it merely translates code from
17255-584: The original release of Elite and Granny's Garden . Programming languages and some applications were supplied on ROM chips to be installed on the motherboard. These load instantly and leave the RAM free for programs or documents. Although appropriate content was little-supported by television broadcasters, telesoftware could be downloaded via the optional Teletext Adapter and the third-party teletext adaptors that emerged. The built-in operating system, Acorn MOS , provides an extensive API to interface with all standard peripherals, ROM-based software, and
17400-410: The program being run. The book Structure and Interpretation of Computer Programs presents examples of meta-circular interpretation for Scheme and its dialects. Other examples of languages with a self-interpreter are Forth and Pascal . Microcode is a very commonly used technique "that imposes an interpreter between the hardware and the architectural level of a computer". As such, the microcode
17545-411: The program can be executed. The larger the program, the longer the wait. By contrast, a programmer using an interpreter does a lot less waiting, as the interpreter usually just needs to translate the code being worked on to an intermediate representation (or not translate it at all), thus requiring much less time before the changes can be tested. Effects are evident upon saving the source code and reloading
17690-458: The program. Compiled code is generally less readily debugged as editing, compiling, and linking are sequential processes that have to be conducted in the proper sequence with a proper set of commands. For this reason, many compilers also have an executive aid, known as a Makefile and program. The Makefile lists compiler and linker command lines and program source code files, but might take a simple command line menu input (e.g. "Make 3") which selects
17835-534: The respective countries. From June 1983 the name was always spelled out completely – "British Broadcasting Corporation Microcomputer System" – to avoid confusion with Brown, Boveri & Cie in international markets, after warnings from the Swiss multinational not to market the computer with the BBC label in West Germany, thus forcing Acorn to relabel "hundreds of machines" to comply with these demands. US models include
17980-594: The role of computers in the curriculum. By October 1983, the US operation reported that American schools had placed orders with it totalling $ 21 million . In one deployment in Lowell, Massachusetts valued at $ 177,000, 138 BBC Micros were installed in eight of the 27 schools in the city, with the computer's networking capabilities, educational credentials, and the availability of software with "high education quality" accompanied by "useful lesson plans and workbooks" all given as reasons for selecting Acorn's machine in preference to
18125-619: The same object format). A simple interpreter written in a low-level language (e.g. assembly ) may have similar machine code blocks implementing functions of the high-level language stored, and executed when a function's entry in a look up table points to that code. However, an interpreter written in a high-level language typically uses another approach, such as generating and then walking a parse tree , or by generating and executing intermediate software-defined instructions, or both. Thus, both compilers and interpreters generally turn source code (text files) into tokens, both may (or may not) generate
18270-564: The screen. Features specific to some versions of BASIC, like vector graphics , keyboard macros , cursor-based editing, sound queues, and envelopes , are in the MOS ROM and made available to any application. BBC BASIC itself, being in a separate ROM, can be replaced with another language. BASIC, other languages, and utility ROM chips reside in any of four 16 KB paged ROM sockets, with OS support for sixteen sockets via expansion hardware. The five (total) sockets are located partly obscured under
18415-430: The second processor, and &B800 for HIBASIC on the second processor. A similar situation exists on RISC OS where there may be the normal BASIC or BASIC64 (which offers higher precision maths). Normal BASIC identifies itself as "BASIC V" and BASIC64 identifies itself as "BASIC VI", therefore the following (used before any error has occurred) will distinguish one from the other: There are better ways of doing this. See
18560-562: The size of the code and therefore allowing the inclusion of LIST IF , EXT# as a statement, EDIT , TIME$ , ON PROC , | in VDU statements and faster floating point. Bug fixes were again included. BASIC IV (1986) was a further improvement to BASIC IV, and was included on the Master Compact machine. The version of BASIC on the Compact included re-coded mathematical routines, said to provide
18705-533: The source code as it stands but convert it into some more compact internal form. Many BASIC interpreters replace keywords with single byte tokens which can be used to find the instruction in a jump table . A few interpreters, such as the PBASIC interpreter, achieve even higher levels of program compaction by using a bit-oriented rather than a byte-oriented program memory structure, where commands tokens occupy perhaps 5 bits, nominally "16-bit" constants are stored in
18850-474: The system variables and hardware, favouring official system calls . This was ostensibly to make sure programs keep working when migrated to coprocessors that utilise the Tube interface, but it also makes BBC Micro software more portable across the Acorn range. Whereas untrappable PEEKs and POKEs are used by other computers to reach the system elements, programs in either machine code or BBC BASIC instead pass parameters to an operating system routine. In this way,
18995-728: The system's functionality. Often the ROM is a device driver for mass storage combined with a filing system, starting with Acorn's 1982 Disc Filing System (DFS) which API became the de facto standard for floppy-disc access. The Acorn Graphics Extension ROM (GXR) expands the VDU routines to draw geometric shapes, flood fills, and sprites. During 1985, Micro Power designed and marketed a Basic Extension ROM, introducing statements such as WHILE , ENDWHILE , CASE , WHEN , OTHERWISE , ENDCASE , and direct mode commands including VERIFY . Acorn strongly discouraged programmers from directly accessing
19140-506: The third group (set) of instructions then issues the commands to the compiler, and linker feeding the specified source code files. A compiler converts source code into binary instruction for a specific processor's architecture, thus making it less portable . This conversion is made just once, on the developer's environment, and after that the same binary can be distributed to the user's machines where it can be executed without further translation. A cross compiler can generate binary code for
19285-515: The two main means by which programming languages are implemented, they are not mutually exclusive, as most interpreting systems also perform some translation work, just like compilers. The terms " interpreted language " or " compiled language " signify that the canonical implementation of that language is an interpreter or a compiler, respectively. A high-level language is ideally an abstraction independent of particular implementations. Interpreters were used as early as 1952 to ease programming within
19430-410: The user machine even if it has a different processor than the machine where the code is compiled. An interpreted program can be distributed as source code. It needs to be translated in each final machine, which takes more time but makes the program distribution independent of the machine's architecture. However, the portability of interpreted source code is dependent on the target machine actually having
19575-504: The wheel", such efforts adopted the BBC Micro in order to take immediate advantage of the extensive range of software already developed under the United Kingdom's own literacy initiative, proposing that software tailored for local requirements would ultimately also be developed. A clone of the BBC Micro was produced by Semiconductor Complex Limited and named the SCL Unicorn. Another Indian computer manufacturer, Hope Computers Pvt Ltd, made
19720-454: Was able to support inline assembler syntax. The compiler was written in BBC BASIC V. Many applications initially written to run under the interpreter benefitted from the performance boost that this gave, putting BBC BASIC V on a par with other languages for serious application development. BBC BASIC has also been ported to many other platforms. A NS32016 version of BBC BASIC was supplied with
19865-419: Was also developed by Richard T. Russell, and is largely compatible with the previous BBC BASIC for Windows, sharing with that dialect many new and advanced features including data structures, PRIVATE variables, an EXIT statment, long strings, event interrupts, an address-of operator, byte variables, a line continuation character, indirect procedure and function calls and improved numeric accuracy. The first version
20010-426: Was done using machine code or assembly language . These were specific to a processor and not portable. Then high-level programming languages were developed to allow programs to be more easily transferred between computers: Many more computer languages were developed during the 1960-1980 period. Few are now in regular use. Those more generally known were ALGOL W at Stanford University , Pascal plus POP-2 at
20155-527: Was introduced to support a Zilog Z80 second processor. Another version of BBC BASIC, called BAS128, was supplied on tape and disc with the BBC Master and Master Compact; it loaded into main RAM and used the 64 KB of Sideways RAM for user programs. This provided support for much larger programs at the cost of being a lot slower than the normal ROM-based version. The interpreter can deal with both BASIC and 6502 assembly language, which can be included between
20300-468: Was only at the design stage at the time, and the Acorn team, including Steve Furber and Sophie Wilson , had one week to build a working prototype from the sketched designs. The team worked through the night to get a working Proton together to show the BBC. Although the BBC expected a computer with the Zilog Z80 CPU and CP/M operating system, not the Proton's 6502 CPU and proprietary operating system,
20445-473: Was popular in the UK, especially in the educational market; about 80% of British schools had a BBC microcomputer. Byte called the BBC Micro Model B "a no-compromise computer that has many uses beyond self-instruction in computer technology". It called the Tube interface "the most innovative feature" of the computer, and concluded that "although some other British microcomputers offer more features for
20590-553: Was released in February 2019, and remains in active development as of August 2024. BBC BASIC for SDL 2.0 supports Windows, MacOS, Linux, Raspberry Pi OS, Android, iOS and mobile devices supporting the SDL library, as well as a version which allows the running of BBC BASIC programs as applets in a web-page via the Web Assembly framework. Programs can be run via the interpreter or compiled to
20735-416: Was replaced by an ARM assembler. BASIC V was said, by Acorn, to be "certainly the fastest interpreted BASIC in the world" and "probably the most powerful BASIC found on any computer". BASIC VI is a version of BASIC V that supports IEEE 754 8-byte format real numbers, as opposed to the standard 5-byte format introduced in BASIC I. BBC BASIC V and VI were delivered as standard on the Acorn Archimedes and
20880-448: Was used on the Acorn Electron and BBC Micros shipped after 1982, including the Model B. It added the OPENUP and OSCLI keywords, along with offset assembly and bug fixes. BASIC III was produced in both a UK version and a United States market version for Acorn's abortive attempt to enter the cross-Atlantic computer market. Apart from a few bug fixes, the only change from BASIC II was that
21025-460: Was used, for example, on the Apple II Plus and the early Commodore models. The BBC machine, however, was designed to run at the faster CPU speed, 2 MHz , double that of these earlier machines. In this case, bus contention is normally an issue, as there is not enough time for the CPU to access the memory during the period when the video hardware is idle. Some machines of the era accept
#215784