EPOC is an operating system designed for small, portable computer-telephones with wireless access to phone and other information services. EPOC is based on an earlier operating system from Psion, the first major manufacturer of personal digital assistants (PDAs). The name derived from the company's belief that the world is entering "a new epoch of personal convenience." To earlier systems, EPOC adds wireless communication and an architecture for adding application programs. Psion declared its first version of EPOC to be an open operating system and licensed it to other equipment makers. Psion then formed a new company with Ericsson, Nokia, and later Motorola called Symbian, which now licenses EPOC and continues to develop it. For portable equipment manufacturers, EPOC is an alternative to Microsoft's Windows CE. (The popular Palm PDA uses its own proprietary operating system, PalmOS.).
Symbian refers to the class of hardware EPOC serves as "wireless information devices." EPOC is a 32-bit, multitasking operating system that supports a pen-based graphical user interface (GUI). It is written in the C++ programming language using an object-oriented programming design. The code is very compact so that it can fit on a small ROM chip. In addition to basic services, the operating system comes with an "application suite," that includes a word processor, e-mail handler, spreadsheet program, a scheduling application, general purpose database, sketch program, world clock, voice recorder, spell checker, calculator, communication programs, and a Web browser. EPOC can be scaled from relatively large configurations for a fully-functional handheld computer to small configurations for embedded systems programming applications.
Although EPOC can be ported to other microprocessors, Symbian's preferred platform is the Advanced RISC Machines (ARM) architecture. Symbian considers ARM the best platform in terms of millions of instructions per second (MIPS) per watt and per dollar cost. Symbian provides development kits for C++, for OPL (a BASIC-like language), and for Java. Programmers write programs at a PC and use an emulator to test them.