Small C
   HOME
*





Small C
Small-C is both a subset of the C (programming language), C programming language, suitable for resource-limited microcomputers and embedded systems, and an implementation of that subset. Originally valuable as an early compiler for microcomputer systems available during the late 1970s and early 1980s, the implementation has also been useful as an example simple enough for teaching purposes. The original compiler, written in Small-C for the Intel 8080 by Ron Cain, appeared in the May 1980 issue of ''Dr. Dobb's Journal, Dr. Dobb's Journal of Computer Calisthenics & Orthodontia''. James E. Hendrix improved and extended the original compiler, and wrote ''The Small-C Handbook''. Ron Bootstrapping (compilers), bootstrapped Small-C on the SRI International PDP 11/45 Unix system with an account provided by John Bass for Small C development. The provided source code was released with management permission into the public domain. Small-C was important for tiny computers in a manner somewhat ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a low-level programming language (e.g. assembly language, object code, or machine code) to create an executable program. Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman - Second Edition, 2007 There are many different types of compilers which produce output in different useful forms. A ''cross-compiler'' produces code for a different CPU or operating system than the one on which the cross-compiler itself runs. A ''bootstrap compiler'' is often a temporary compiler, used for compiling a more permanent or better optimised compiler for a language. Related software include, a program that translates from a low-level language to a h ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Machine Code
In computer programming, machine code is any low-level programming language, consisting of machine language instructions, which are used to control a computer's central processing unit (CPU). Each instruction causes the CPU to perform a very specific task, such as a load, a store, a jump, or an arithmetic logic unit (ALU) operation on one or more units of data in the CPU's registers or memory. Early CPUs had specific machine code that might break backwards compatibility with each new CPU released. The notion of an instruction set architecture (ISA) defines and specifies the behavior and encoding in memory of the instruction set of the system, without specifying its exact implementation. This acts as an abstraction layer, enabling compatibility within the same family of CPUs, so that machine code written or generated according to the ISA for the family will run on all CPUs in the family, including future CPUs. In general, each architecture family (e.g. x86, ARM) has its own ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


1980 Software
__NOTOC__ Year 198 (CXCVIII) was a common year starting on Sunday (link will display the full calendar) of the Julian calendar. At the time, it was known as the Year of the Consulship of Sergius and Gallus (or, less frequently, year 951 ''Ab urbe condita''). The denomination 198 for this year has been used since the early medieval period, when the Anno Domini calendar era became the prevalent method in Europe for naming years. Events By place Roman Empire *January 28 **Publius Septimius Geta, son of Septimius Severus, receives the title of Caesar. **Caracalla, son of Septimius Severus, is given the title of Augustus. China *Winter – Battle of Xiapi: The allied armies led by Cao Cao and Liu Bei defeat Lü Bu; afterward Cao Cao has him executed. By topic Religion * Marcus I succeeds Olympianus as Patriarch of Constantinople (until 211). Births * Lu Kai (or Jingfeng), Chinese official and general (d. 269) * Quan Cong, Chinese general and advisor (d. ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

C Programming Language Family
C, or c, is the third letter in the Latin alphabet, used in the modern English alphabet, the alphabets of other western European languages and others worldwide. Its name in English is ''cee'' (pronounced ), plural ''cees''. History "C" comes from the same letter as "G". The Semites named it gimel. The sign is possibly adapted from an Egyptian hieroglyph for a staff sling, which may have been the meaning of the name ''gimel''. Another possibility is that it depicted a camel, the Semitic name for which was ''gamal''. Barry B. Powell, a specialist in the history of writing, states "It is hard to imagine how gimel = "camel" can be derived from the picture of a camel (it may show his hump, or his head and neck!)". In the Etruscan language, plosive consonants had no contrastive voicing, so the Greek ' Γ' (Gamma) was adopted into the Etruscan alphabet to represent . Already in the Western Greek alphabet, Gamma first took a '' form in Early Etruscan, then '' in Classical Etru ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

BBC Micro
The British Broadcasting Corporation Microcomputer System, or BBC Micro, is a series of microcomputers and associated peripherals designed and built by Acorn Computers in the 1980s for the BBC Computer Literacy Project. Designed with an emphasis on education, it was notable for its ruggedness, expandability, and the quality of its operating system. An accompanying 1982 television series, ''The Computer Programme'', featuring Chris Serle learning to use the machine, was broadcast on BBC2. After the Literacy Project's call for bids for a computer to accompany the TV 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 cost. Acorn later employed the machine to simulate and develop the ARM architecture. While nine models ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Atari 8-bit Family
The Atari 8-bit family is a series of 8-bit home computers introduced by Atari, Inc. in 1979 as the Atari 400 and Atari 800. The series was successively upgraded to Atari 1200XL , Atari 600XL, Atari 800XL, Atari 65XE, Atari 130XE, Atari 800XE, and Atari XEGS, the last discontinued in 1992. They differ primarily in packaging, each based on the MOS Technology 6502 central processing unit, CPU at and the same custom coprocessor chips. As the first home computer architecture with coprocessors, it has graphics and sound more advanced than most contemporary machines. Video games were a major draw, and first-person space combat simulator ''Star Raiders'' is considered the platform's killer app. The plug-and-play peripherals use the Atari SIO serial bus, with one developer eventually also co-patenting USB. While using the same internal technology, the Atari 800 was sold as a high-end model, while the 400 was more affordable. The 400 has a pressure-sensitive, spillproof membrane keyboar ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Deep Blue C
Deep Blue C is a compiler for a subset of the C programming language for the Atari 8-bit family distributed by the Atari Program Exchange (APX). The compiler is a version of Ron Cain's public domain Small-C modified by John Howard Palevich to run on the Atari computer hardware. Palevich also wrote the Atari 8-bit game ''Dandy'' for APX. The syntax supported by ''Deep Blue C'' is close to that of ANSI C with significant limitations. The compiler creates binary code for Intel 8080 processor which is then executed by an 8080 virtual machine. The source code to the compiler was sold by APX as ''Deep Blue Secrets''. Limitations The following language constructs are not supported: * structs * unions * multidimensional arrays * floating point numbers * sizeof operator * type casting * functions returning types other than integer Other non-standard properties of Deep Blue C: * The last part of switch In electrical engineering, a switch is an electrical component that can disc ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Cc65
cc65 is a cross development package for 6502 and 65C02 targets, including a macro assembler, a C cross compiler, linker, librarian and several other tools. Overview cc65 is based on a native C compiler that was originally adapted for the Atari 8-bit computers by John R. Dunning in 1989, which originated as a Small C descendant. It has several extensions, and some of the limits of the original Small C compiler are gone. The toolkit has largely been expanded by Ullrich von Bassewitz and other contributors. The actual cc65 compiler, a complete set of binary tools (assembler, linker, etc.) and runtime library are under a license identical to zlib's. The compiler itself comes close to ANSI C compatibility, while C library features depend on the target platform's hardware. stdio is supported on many platforms, as is Borland-style screen handling. GEOS is also supported on the Commodore 64 and even the Apple II. The library supports many of the Commodore platforms ( C64, C128, C ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Z88DK
Z88DK is a Small-C-derived cross compiler for a long list of Z80 based computers. The name derives from the fact that it was originally developed to target the Cambridge Z88. Z88DK is much developed from Small-C and it accepts many features of ANSI C with the notable exception of multi-dimensional arrays and prototyped function pointers. Later version also supports SDCC as compiler. It has been used for many software and hardware projects, notably the REX DK (targeted to the REX 6000 platform) and the S1 SDK (targeted to the S1 MP3 Player) teams. The compiler is highly portable, and is known to be run on AmigaOS, BeOS, HP-UX 9, Linux, BSD, Mac OS X, Solaris, Win64, Win32, Win16 and MS-DOS. Supported target platforms As of the Z88DK supports the following target platforms: * Amstrad CPC * Amstrad NC100 * Amstrad NC200 * Cambridge Z88 * Camputers Lynx * Canon X-07 * Casio PV-1000 * Casio PV-2000 * CCE MC-1000 * Commodore 128 (in Z80 mode) * CP/M based machines * EACA Colou ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Tiny C Compiler
The Tiny C Compiler (a.k.a. TCC, tCc, or TinyCC) is an x86, X86-64 and ARM processor C compiler initially written by Fabrice Bellard. It is designed to work for slow computers with little disk space (e.g. on rescue disks). Windows operating system support was added in version 0.9.23 (17 Jun 2005). TCC is distributed under the GNU Lesser General Public License. TCC claims to implement all of ANSI C (C89/C90), much of the C99 ISO standard, and many GNU C extensions including inline assembly. Features TCC has a number of features that differentiate it from other current C compilers: * Its small file size (about 100 KB for the x86 TCC executable) and memory footprint allow it to be used directly from a single 1.44 M floppy disk, such as a rescue disk. * TCC is intended to produce native x86, x86-64 and ARM code very quickly; according to Bellard, it compiles, assembles and links about nine times faster than GCC does. * TCC has a number of compiler-specific language featur ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


BDS C
BDS C (or the ''BD Software C Compiler'') is a compiler for a sizeable subset of the C programming language, that ran on and generated code for the Intel 8080 and Zilog Z80 processors. It was the first C compiler for CP/M. It was written by Leor Zolman and first released in 1979 when he was 20 years old. "BDS" stands for "Brain Damage Software." BDS C was popular and influential among CP/M users and developers. It ran much faster than other Z80-hosted compilers. It was possible to run BDS C on single-floppy machines with as little as 30K of RAM in comparison to most other commercial compilers which required many passes and the writing of intermediate files to disk. Weak points of BDS C were that the floating point math routines and the file access functions were incompatible with the C compiler used on UNIX, and that its relocatable object files were incompatible with the Microsoft MACRO-80 assembler, making it more difficult to integrate C code with assembly language. BDS C was ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Code Generation (compiler)
In computing, code generation is part of the process chain of a compiler and converts intermediate representation of source code into a form (e.g., machine code) that can be readily executed by the target system. Sophisticated compilers typically perform multiple passes over various intermediate forms. This multi-stage process is used because many algorithms for code optimization are easier to apply one at a time, or because the input to one optimization relies on the completed processing performed by another optimization. This organization also facilitates the creation of a single compiler that can target multiple architectures, as only the last of the code generation stages (the ''backend'') needs to change from target to target. (For more information on compiler design, see Compiler.) The input to the code generator typically consists of a parse tree or an abstract syntax tree. The tree is converted into a linear sequence of instructions, usually in an intermediate language s ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]