:: wikimiki.org ::
| Navy Electronics Laboratory International ALGOL Compiler |
Navy Electronics Laboratory International ALGOL CompilerThe Navy Electronics Laboratory International ALGOL Compiler or NELIAC is a dialect and compiler implementation of the ALGOL 58 programming language developed by the Naval Electronics Laboratory in 1958.
It was designed for numeric and logical computations and was the first language to provide a bootstrap implementation.
Origin
NELIAC was the brainchild of Harry Huskey — then Chairman of the ACM and a well known computer scientist, and supported by Maury Halstead, the head of the computational center at NEL. The earliest version was implemented on the prototype USQ-17 computer (called the Countess) at the laboratory. It was the world's first self-compiling compiler. This means that the compiler was first coded in simplified form in assembly language "the bootstrap", and then re-written in its own language, compiled by this "bootstrap" compiler, and re-compiled by itself, making the "bootstrap" obsolete.
It is called a variant of ALGOL 58 because of similarities to that language, but, shortly after the ALGOL committee produced other versions of ALGOL, and NELIAC and ALGOL parted ways.
Use
The compiler was used on the Countess to produce a version for the CDC 1604, and later self-compiled on that machine. Many other versions were produced for commercial computer products like the UNIVAC 1107, UNIVAC 490 and UNIVAC 418 including versions for IBM 704 and 709. The production version of NELIAC was a second generation system (for the USQ-20, a modernized and militarized version of the USQ-17), compiled by the first version, but including full decoding of algorithmic expressions and, later, an input-output system missing on all other versions.
The decompiler was a curiosity. The first version ran on the Countess, but it was later ported to the CDC 1604 and to other computers and received some notice in University circles. But, it turned out that there were few programs worthy of decompilation available at the time.
NELIAC was never intended to be a commercial product. Its primary advantage over other compilers of the day was its portability to other computers and its one-pass architecture which made possible such rapid compile times that it compiled 60 to 120 times faster than other high level languages. The JOVIAL compiler had 14 passes, for example. The simplicity of the language and its extremely fast compile times permitted much faster development cycles than other contemporaneous compilers. It was an in-house NEL effort to make possible a more cost-effective solution to the problem of computer system development.
NELIAC was used to implement an experimental anti-submarine shipboard system, and was also used for the development of the National Emergency Command Post Afloat (NECPA) project which developed a strategic command and control system installed on aircraft carriers and cruisers. In addition, NEL developed NELOS, a batch operating system which provided input-output for magnetic tapes, printers, and telecom equipment, provided sequenced compiling of jobs, and a symbol library permitting linking of very large computer applications and executing them on-line. These included suites of information management programs, including databases, free form queries with a precursor of IBM's GIS, and reporting applications. NECPA and NELOS went to sea in 1966.
NELIAC's end
But, NELIAC programs were not so portable because the language permitted manipulation of binary characters which were dependent on word lengths. In addition the NELIAC language had no input-output schemes. These were the "Achilles heels" of NELIAC.
Many other well-known computer experts like Niklaus Wirth made contributions to the project, but ultimately NELIAC fell out of favor after the Navy Department standardized on compilers with commercial support.
References
- "Neliac - A Dialect of Algol", H.D. Huskey et al, CACM 3(8):463-468 (Aug 1960).
- "Computer Independent Computer Programming" Maurice Halstead
External links
- [http://portal.acm.org/citation.cfm?id=366663.366664 A syntactic description of BC NELIAC] at the ACM.
Category:ALGOL dialects
Category:Historical programming languages
Programming language dialect
A dialect of a programming language is a (relatively small) variation or extension of the language that does not change its intrinsic nature. With languages such as Scheme and Forth, standards may be considered insufficient, inadequate or even illegitimate by implementors, so often they will deviate from the standard, making a new dialect. In other cases, a dialect is created for use in a domain-specific language, often a subset. In the Lisp world, most languages that use basic S-expression syntax and Lisp-like semantics are considered Lisp dialects, even though they vary wildly, as do, say, Bigloo Scheme and newLisp.
Category:Programming languages
ja:方言 (プログラミング言語)
Compiler
A compiler is a computer program that translates a series of statements written in one computer language (called the source code) into a resulting output in another computer language (often called the object or target language).
Most compilers translate a source code text file, written in a high level language to object code or machine language, e.g. into an executable .EXE or .COM file that may run on a computer or a virtual machine. However, translation from a low level language to a high level one is also possible; this is normally known as a decompiler if it is reconstructing a high level language program which (could have) generated the low level language program. Compilers also exist which translate from one high level language to another, or sometimes to an intermediate language that still needs further processing; these are known as transcompilers (or sometimes as cascaders).
Typical compilers output so-called objects that basically contain machine code augmented by information about the name and location of entry points and external calls (to functions not contained in the object). A set of object files, which need not have all come from a single compiler provided that the compilers used share a common output format, may then be linked together to create the final executable which can be run directly by a user.
History
Several experimental compilers were developed in the 1950s (see, for example, the seminal work by Grace Hopper on the A-0 language), but the FORTRAN team led by John Backus at IBM is generally credited as having introduced the first complete compiler, in 1957. COBOL was an early language to be compiled on multiple architectures, in 1960. [http://www.interesting-people.org/archives/interesting-people/199706/msg00011.html]
The idea of compilation quickly caught on, and most of the principles of compiler design were developed during the 1960s.
A compiler is itself a computer program written in some implementation language. Early compilers were written in assembly language. The first self-hosting compiler — capable of compiling its own source code in a high-level language — was created for Lisp by Hart and Levin at MIT in 1962 [http://www.ai.mit.edu/research/publications/browse/0000browse.shtml].
The use of high-level languages for writing compilers gained added impetus in the early 1970s when Pascal and C compilers were written in their own languages. Building a self-hosting compiler is a bootstrapping problem -- the first such compiler for a language must be compiled either by a compiler written in a different language, or (as in Hart and Levin's Lisp compiler) compiled by running the compiler in an interpreter.
Types of compilers
Native versus cross compiler
Most compilers are classified as either native or cross-compilers.
A compiler may produce binary output intended to run on the same type of computer and operating system ("platform") as the compiler itself runs on. This is sometimes called a native-code compiler. Alternatively, it might produce binary output designed to run on a different platform. This is known as a cross compiler. Cross compilers are very useful when bringing up a new hardware platform for the first time (see bootstrapping). Cross compilers are necessary when developing software for microcontroller systems that have barely enough storage for the final machine code, much less a compiler. Compilers which are capable of producing both native and foreign binary output may be called either a cross-compiler or a native compiler depending on a specific use, although it would be more correct to classify them as a cross-compilers.
Interpreters are never classified as native or cross-compilers, because they don't output a binary representation of their input code.
Virtual machine compilers are typically not classified as either native or cross-compilers. However, if need be, they can be classified as one or the other, especially in the less usual cases where a compiler is running inside the same VM (making it a native compiler), or where a compiler is capable of producing an output for several different platforms, including a VM (making it a cross-compiler).
One-pass versus multi-pass compilers
All compilers are either one-pass or multi-pass.
- One-pass compilers, like early compilers for the Pascal programming language.
- The compilation is done in one pass over the program source, hence the compilation is completed very quickly.
- Multi-pass compilers, like 2-pass compilers or 3-pass compilers
- The compilation is done step by step. Each step uses the result of the previous step and creates another intermediate result. This can improve final performance at the cost of compilation speed.
While the typical multi-pass compiler outputs machine code from its final pass, there are several other types:
- A "source-to-source compiler" is a type of compiler that takes a high level language as its input and outputs a high level language. For example, an automatic parallelizing compiler will frequently take in a high level language program as an input and then transform the code and annotate it with parallel code annotations (e.g. OpenMP) or language constructs (e.g. Fortran's DOALL statements).
- Stage compiler that compiles to assembly language of a theoretical machine, like some Prolog implementations
- This Prolog machine is also known as the Warren Abstract Machine (or WAM). Byte-code compilers for Java, Python (and many more) are also a subtype of this.
- Just-in-time compiler, used by Smalltalk and Java systems, and also by Microsoft .Net's Common Intermediate Language (CIL)
- Applications are delivered in bytecode, which is compiled to native machine code just prior to execution.
Compiled versus interpreted languages
Many people divide higher-level programming languages into compiled languages and interpreted languages. However, there is rarely anything about a language that requires it to be compiled or interpreted. Compilers and interpreters are implementations of languages, not languages themselves. The categorization usually reflects the most popular or widespread implementations of a language -- for instance, BASIC is thought of as an interpreted language, and C a compiled one, despite the existence of BASIC compilers and C interpreters.
There are exceptions; some language specifications assume the use of a compiler (as with C), or spell out that implementations must include a compilation facility (as with Common Lisp). Some languages have features that are very easy to implement in an interpreter, but make writing a compiler much harder; for example, SNOBOL4, and many scripting languages are capable of constructing arbitrary source code at runtime with regular string operations, and then executing that code by passing it to a special evaluation function.
Compiler design
In the past, compilers were divided into many passes1 to save space. A pass in this context is a run of the compiler through the source code of the program to be compiled, resulting in the building up of the internal data of the compiler (such as the evolving symbol table and other assisting data). When each pass is finished, the compiler can free the internal data space needed during that pass. This 'multipass' method of compiling was useful in the early days of computing due to the small main memories of host computers relative to the source code and data.
Many modern compilers share a common 'two stage' design. The front end translates the source language into an intermediate representation. The second stage is the back end, which works with the internal representation to produce code in the output language. The front end and back end may operate as separate passes, or the front end may call the back end as a subroutine, passing it the intermediate representation.
This approach mitigates complexity separating the concerns of the front end, which typically revolve around language semantics, error checking, and the like, from the concerns of the back end, which concentrates on producing output that is both efficient and correct. It also has the advantage of allowing the use of a single back end for multiple source languages, and similarly allows the use of different back ends for different targets.
Often, optimizers and error checkers can be shared by both front ends and back ends if they are designed to operate on the intermediate language that a front-end passes to a back end. This can let many compilers (combinations of front and back ends) reuse the large amounts of work that often go into code analyzers and optimizers.
Certain languages, due to the design of the language and certain rules placed on the declaration of variables and other objects used, and the predeclaration of executable procedures prior to reference or use, are capable of being compiled in a single pass. The Pascal programming language is well known for this capability, and in fact many Pascal compilers are themselves written in the Pascal language because of the rigid specification of the language and the capability to use a single pass to compile Pascal language programs.
Compiler front end
The compiler front end consists of multiple phases itself, each informed by formal language theory:
#Lexical analysis - breaking the source code text into small pieces ('tokens' or 'terminals'), each representing a single atomic unit of the language, for instance a keyword, identifier or symbol names. The token language is typically a regular language, so a finite state automaton constructed from a regular expression can be used to recognize it. This phase is also called lexing or scanning.
#Syntax analysis - Identifying syntactic structures of source code. It only focuses on the structure. In other words, it identifies the order of tokens and understands hierarchical structures in code. This phase is also called parsing.
#Semantic analysis is to recognize the meaning of program code and start to prepare for output. In that phase, type checking is done and most of compiler errors show up.
#Intermediate representation - an equivalent to the original program is transformed to an intermediate representation. This can be a data-structure (typically a Tree or Graph) or an Intermediate language.
Compiler back end
While there are applications where only the compiler front end is necessary, such as static language verification tools, a real compiler hands the intermediate representation generated by the front end to the back end, which produces a functional equivalent program in the output language. This is done in multiple steps:
#Compiler analysis - This is the process to gather program information from the intermediate representation of the input source files. Typical analysis are variable define-use and use-define chain, data dependence analysis, alias analysis etc. Accurate analysis is the base for any compiler optimizations. The call graph and control flow graph are usually also built during the analysis phase.
#Optimization - the intermediate language representation is transformed into functionally equivalent but faster (or smaller) forms. Popular optimizations are inline expansion, dead code elimination, constant propagation, loop transformation, register allocation or even auto parallelization.
#Code generation - the transformed intermediate language is translated into the output language, usually the native machine language of the system. This involves resource and storage decisions, such as deciding which variables to fit into registers and memory and the selection and scheduling of appropriate machine instructions along with their associated addressing modes (see also Sethi-Ullman algorithm).
Notes
#A pass has also been known as a parse in some textbooks. The idea is that the source code is parsed by gradual, iterative refinement to produce the completely translated object code at the end of the process. There is, however, some dispute over the general use of parse for all those phases (passes), since some of them, e.g. object code generation, are arguably not regarded to be parsing as such.
References
- Compilers: Principles, Techniques and Tools by Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman (ISBN 0201100886) is considered to be the standard authority on compiler basics, and makes a good primer for the techniques mentioned above. (It is often called the Dragon Book because of the picture on its cover showing a Knight of Programming fighting the Dragon of Compiler Design.) [http://www.aw.com/catalog/academic/product/0,4096,0201100886,00.html External link to publisher's catalog entry]
- Understanding and Writing Compilers: A Do It Yourself Guide (ISBN 0333217322) by Richard Bornat is an unusually helpful book, being one of the few that adequately explains the recursive generation of machine instructions from a parse-tree. Having learnt his subject in the early days of mainframes and minicomputers, the author has many useful insights that more recent books often fail to convey.
See also
- Important publications in compilers for programming languages
- Assemblers
- Compiler construction
- Interpreters:
- Interpreter software
- Abstract interpretation
- Linkers
- Parsing:
- Top-down parsing
- Bottom-up parsing
- Semantic analysis
- Attribute grammar
- Semantics encoding
- Error avalanche
- Recompilation
- Decompiler
- Just-in-time compiler
- Loop nest optimization
- Meta-Compilation
- Preprocessor
- Parallel compilers
External links
- [http://codepedia.com/compile What is "compile"?] from the developer's encyclopedia
- [http://www.kegel.com/crosstool/ Building and Testing gcc/glibc cross toolchains]
- [http://citeseer.ist.psu.edu/cs?q=compiler Citations from CiteSeer]
- [http://compilers.iecc.com/ The comp.compilers newsgroup and RSS feed]
- [http://compilers.iecc.com/crenshaw/ Let's Build a Compiler by Jack Crenshaw (1988 to 1995)] "a non-technical introduction to compiler construction"
- [http://www.gtoal.com/software/CompilersOneOhOne Simple compiler source] from the "[http://groups.yahoo.com/group/compilers101/ Compilers 101]" group. One page, easy to follow.
- [http://www.tutorial-reports.com/computer-science/parallel-compiler/ Parallel Compilers]
-
Category:Computer science
ko:컴파일러
ja:コンパイラ
simple:Compiler
th:ตัวแปลโปรแกรม
ALGOL 58ALGOL 58 is the first language in the ALGOL programming language family. It was an early compromise design soon superseded by ALGOL 60; ALGOL 58 introduced the fundamental notion of compound statement, but it was restricted to control flow only, and it was not tied to identifier scope.
The language was originally proposed to be called IAL (International Algebraic Language), but at a meeting in Zürich in May 1958, IAL was rejected as an "'unspeakable' and pompous acronym" (Perlis, 1981), and ALGOL suggested instead, though not officially adopted until a year later. Unresolved disagreements also led to a plan to define two dialects, ALGOL 58 and ALGOL 60.
ALGOL 58 saw some implementation effort at IBM, but the effort was in competition with FORTRAN, and soon abandoned. It was also implemented at Dartmouth College on an LGP-30 but that implementation soon evolved into Algol 60.
ALGOL 58's primary contribution was to later languages; it was used as a basis for JOVIAL, MAD, and NELIAC. It was also used during 1959 to publish algorithms in CACM, beginning a trend of using ALGOL notation in publication that continued for many years.
Reference
- Alan J. Perlis and K. Samelson, "Preliminary Report - International Algorithmic Language" Communications of the ACM 1(12) 1958, pp. 8-22
- Alan J. Perlis, "The American side of the development of ALGOL", in Richard L. Wexelblat, ed. History of Programming Languages (Academic Press, 1981)
Category:Programming languages
Category:Algol programming language family
Naval Electronics LaboratoryThe U.S. Navy Electronics Laboratory (NEL) was created in 1945, with the consolidation of the Navy Radio and Sound Lab and its wartime partner, the University of California Division of War Research. NEL’s charter was “to effectuate the solution of any problem in the field of electronics, in connection with the design, procurement, testing, installation and maintenance of electronic equipment for the U.S. Navy.” Its radio communications and sonar work was augmented with basic research in the propagation of electromagnetic energy in the atmosphere and of sound in the ocean.
Projects
Shipboard Antenna Model Range
ocean
As one of its first projects, NEL began building its Shipboard Antenna Model Range. The non-metallic arch of this structure supports a transmitting antenna which is positioned toward a brass model ship on a turntable. The ground plane under the arch simulates the electrical characteristics of the ocean. Allowing research on the properties of shipboard antennas to be carried out.
Arctic submarine exploration
ground
It also began conversion of a World War II mortar emplacement, Battery Whistler, into an Arctic Submarine Laboratory. Scientific exploration of the Arctic Basin, and particularly providing the capability to operate attack submarines in the Arctic under the ice canopy, would become a key NEL mission.
ice canopy
World headlines came early in this program from several events—the submerged voyage of USS Nautilus from the Pacific to the Atlantic, via the North Pole, in 1958, and the surfacing at the pole of USS Skate the following year, both with NEL’s Dr. Waldo Lyon aboard as chief scientist and ice pilot.
Bathyscaphe Trieste
Waldo Lyon
NEL also plunged into the undersea environment, acquiring the Bathyscaphe Trieste and directing its 1960 dive over 35,000 feet (10.7 km) down into the Challenger Deep of the Marianas Trench near Guam.
Radio telescopes
Guam
Interested in radio physics in general, the lab built a 60-foot-diameter radio telescope on Point Loma, and in 1964, NEL began construction of the La Posta Astro-Geophysical Observatory on a 3,900-foot site in the Laguna Mountains, 65 miles east of San Diego. The observatory played a major role in solar radio mapping, studies of environmental disturbances, and development of a solar optical videometer for microwave research. Its 60-foot dish, which could both transmit and receive, was used for important Center research programs in propagation and ionospheric forecasting which was used during a number of Apollo space launches to predict solar activity that might hamper communications from the ground to the space capsules.
Communications
In the area of communications, NEL developed Verdin, a low-frequency/very-low-frequency (LF/VLF) system to provide information to deeply submerged Polaris missile submarines, and began development of satellite communication capabilities.
Requirements for handling the vast amount of shipboard communications during the intensifying Vietnam War led to tasking for an internal message handling system. In response, the lab developed the Message Processing and Distribution System (MPDS), installing it aboard the Seventh Fleet flagship USS Oklahoma City a month ahead of schedule. The lab improved substantially on that system later and installed it aboard USS Nimitz class aircraft carriers.
Computer science
The programming language dialect NELIAC was developed by and named after the lab.
NELIAC was the brainchild of Harry Husky, at the time Chairman of the ACM, who had a keen interest in porting applications in a machine-independent form. ALGOL 58 gave NEL the framework for an implmentation, and work commenced in 1958, but was not fully developed until 1961.
NELIAC was used at NEL to support experimental anti-submarine systems and Command and Control Systems development, and later, at the Navy Command Systems and Support Activity (NAVCOSSACT) in Washington DC in support of the National Emergency Command Post Afloat (NECPA) project which was installed on many large ships starting in 1966.
This was the world's first self-compiling compiler and was ported to many other computers in the Department of Defense, it also included the NELOS operating system development used for large scale applications (unique to the USQ-20 Navy shipboard computer and its commercial version, the UNIVAC 490).
Many other versions existed for a variety of computers because the ease of portability and the rapid one-pass compile times.
Naval Command, Control and Communications Laboratory Center and beyond
In 1967, as part of the general Navy laboratory re-organization, NEL became the Naval Command, Control and Communications Laboratory Center. The name was never fully accepted, and in about six months it was changed to Naval Electronics Laboratory Center (NELC).
In 1997, with the disestablishment of NCCOSC and the establishment of direct oversight by Space and Naval Warfare Systems Command, the Center assumed its current name, Space and Naval Warfare Systems Center San Diego (SSC San Diego).
External links
- [http://www.spawar.navy.mil/sandiego/anniversary/ SSC San Diego Historical Overview]
- [http://enterprise.spawar.navy.mil/body.cfm?Topic_ID=143&Type=R&category=20&subcat=17 History of the NEL]
- [http://www.nosc.mil/sti/publications/pubs/gen/nelhist/photos1.html NEL-related photographs]
Category:U.S. Navy organization
Category:Military history of the United States
BootstrappingBootstrapping alludes to a German legend about a Baron Münchhausen, who was able to lift himself out of a swamp by pulling himself up by his own hair. In later versions he was using his own boot straps to pull himself out of the sea which gave rise to the term bootstrapping.
In computers, this term refers to any process where a simple system activates a more complicated system. It is the problem of starting a certain system without the system already functioning. It seems just as impossible as "pulling oneself up by the bootstraps" which Baron Münchhausen, according to stories, could do. However, solutions, accordingly called bootstrapping, exist; they are processes whereby a complex system emerges by starting simply and, bit by bit, developing more complex capabilities on top of the simpler ones.
Bootstrapping describes different things in several domains.
Computing
The term is believed to have entered computer jargon by way of Heinlein's short story By His Bootstraps.
Bootstrapping is generally considered a longer term for booting, or the process of starting up any computer. "Bootstrap" most commonly refers to the program that actually begins the initialization of the computer's operating system, like GRUB, LILO or NTLDR. Modern personal computers have the ability of using their network interface card (NIC) for bootstrapping, on IA-32(x86) and IA-64(Itanium) this method is implemented by PXE and Etherboot.
Bootstrapping can also refer to the development of successively more complex programming environments. The simplest environment will be, perhaps, a very basic text editor (e.g. ed) and an assembler program. Using these tools, one can write a more complex text editor, and a simple compiler for a higher-level language and so on, until one can have a graphical IDE and an extremely high-level programming language.
:For more detail, see booting
Compilers
In compiler design, a bootstrap or bootstrapping compiler is a compiler that is written in the target language that it compiles. Examples include gcc, GHC, and PL/I.
:For more detail, see Bootstrapping (compilers)
Linguistics
Syntactic bootstrapping is the idea that children use syntactic knowledge they have developed to help learn what words mean -- semantics builds on top of syntax.
Biology
The idea of bootstrapping is significant in a number of fields in the biological sciences. The process by which a fertilised ovum develops into an embryo, particularly the way in which the nuclear genome is expressed differently in its various cells as these differentiate, is one example of bootstrapping. The evolution of progressively better adapted organs through natural selection in a lineage of organisms is another. Some biologists, including Graham Cairns-Smith, believe that the origin of life itself may have been a bootstrap process as one or more systems of biological information storage formed the foundation for successor systems that ultimately supplanted them culminating in the emergence of our current DNA-based system. For more details see the articles on embryology, ontogeny and phylogeny and RNA World.
Electronics
The term bootstrap has a number of meanings in electronics.
In classical analog designs, a bootstrap circuit is an arrangement of components used to boost the input impedance of a circuit by using a small amount of positive feedback, usually over two stages. This was often necessary in the early days of bipolar transistors, which inherently have quite a low input impedance. The need for such arrangements has largely been alleviated by the use of modern field effect transistor designs, except when ultra-high input impedances are required. Note that because the feedback is positive, such circuits usually suffer from poor stability and noise performance compared to a circuit that doesn't bootstrap.
Another meaning is in connection with the booting process of a computer or other complex system, where the underlying electronics must arrange for the orderly startup of the CPU and related electronics components. This is done long before the CPU is in a state where it can begin to execute software. Nowadays the bootstrap is coordinated by special integrated circuits that monitor the raw power supply and provide the relevant signals to enable the CPU and other chips accordingly.
In a typical car alternator, a DC field current is required before the device can produce any output. Once running, a small portion of the output is fed back to keep the field alive — this can be seen as a form of bootstrapping. The initial priming current is usually obtained from the vehicle's battery — if the battery is totally flat the alternator won't produce any output voltage to recharge it even if the engine is started (by push starting for example) since it will be unable to bootstrap itself. However, in practice, a battery will usually have enough residual charge to avoid this.
Statistics
In statistics bootstrapping is a method for estimating the sampling distribution of an estimator by resampling with replacement from the original sample. It is distinguished from the jackknife procedure, used to detect outliers, and cross-validation, whose purpose is to make sure that results are repeatable. There are more complicated bootstraps for sampling without replacement, two-sample problems, regression, time series, hierarchical sampling, and other statistical problems.
- Hesterberg, T. C., D. S. Moore, S. Monaghan, A. Clipson, and R. Epstein (2005): [http://bcs.whfreeman.com/ips5e/content/cat_080/pdf/moore14.pdf Bootstrap Methods and Permutation Tests], [http://www.insightful.com/Hesterberg/bootstrap software].
- Moore, D. S., G. McCabe, W. Duckworth, and S. Sclove (2003): [http://bcs.whfreeman.com/pbs/cat_140/chap18.pdf Bootstrap Methods and Permutation Tests]
- Simon, J. L. (1997): [http://www.resample.com/content/text/index.shtml Resampling: The New Statistics].
See also particle filter for the general theory of Sequential Monte Carlo methods, as well as details on some common implementations.
Finance
In finance, bootstrapping refers to the procedure used to calculate the zero coupon yield curve, solving for the maturities where no instruments are available. The method uses interpolation to complete the yield curve, using available zero coupon securities with varying maturities.
It may also mean a company acquiring a competitor with a sole reason of temporarily increasing earnings per share.
Bootstrapping also means starting and operating a business with little or no money or assistance from outside investors.
Venture Capital and Start-up Companies
As defined by Greg Gianforte, CEO, RightNow Technologies in an essay at www.bootstrapit.com, “Bootstrapping” as the act of starting a business with little or no external funding. "Bootstrappers don’t write lengthy business plans, chase deep-pocketed investors, or indulge in overly academic market research exercises. Instead, they focus all of their considerable energy, brainpower, determination and skills on creating a business that can actually succeed in the real world."
References
Statistical bootstrapping
- Davison, A. C. and Hinkley, D. V. (1997): Bootstrap Methods and their Applications, [http://statwww.epfl.ch/davison/BMA/library.html software].
- Diaconis, P. & Efron, B. (1983). Computer-intensive methods in statistics. Scientific American, May, 116-130.
- Edgington, E. S.(1995). Randomization tests. New York: M. Dekker.
- Efron, B. (1979). Bootstrap methods: Another look at the jackknife. The Annals of Statistics, 7, 1-26.
- Efron, B. (1981). Nonparametric estimates of standard error: The jackknife, the bootstrap and other methods. Biometrika, 68, 589-599.
- Efron, B. (1982). The jackknife, the bootstrap, and other resampling plans. Society of Industrial and Applied Mathematics CBMS-NSF Monographs, 38.
- Efron, B., & Tibshirani, R. J. (1993). An introduction to the bootstrap. New York: Chapman & Hall, [http://lib.stat.cmu.edu/S/bootstrap.funs software].
See also
- Cellular automaton: discusses simple step-by-step self-referential rules used to create larger patterns.
External link
- Yu, Chong Ho (2003): [http://PAREonline.net/getvn.asp?v=8&n=19 Resampling methods: concepts, applications, and justification. Practical Assessment, Research & Evaluation, 8(19)]. (statistical bootstrapping)
Category:Language acquisition
Category:Statistics
Harry HuskeyHarry Huskey (born 1916) is an American computer designer pioneer.
Harold D. Huskey was born in the Smoky Mountains region of North Carolina and subsequently grew up in Idaho. He gained his Masters and then his PhD in 1943 from the Ohio State University on Contributions to the Problem of Geocze. He taught mathematics at the University of Pennsylvania and then worked part-time on the early ENIAC computer in 1945.
He visited the National Physical Laboratory (NPL) in the UK for a year and worked on the Pilot ACE computer with Alan Turing and others. He was also involved with the EDVAC and SEAC computer projects.
Huskey designed and managed the construction of the Standards Western Automatic Computer (SWAC) at the National Bureau of Standards in Los Angeles (1949–1953). He also designed the G15 computer for Bendix Aviation Corporation, which could perhaps be considered as the first "personal" computer in the world. He had one at his home that is now in the Smithsonian Institution in Washington DC.
After five years at the US National Bureau of Standards, Huskey joined the faculty of the University of California, Berkeley in 1954 and then Santa Cruz from 1966. At Berkeley, he supervised the pioneering programming language designer Niklaus Wirth, who gained his PhD in 1963. He is now Professor Emeritus at the University of California, after his retirement at the age of 70 in 1986.
Huskey married Velma Roeth (died 1991) and had four children. He then married Nancy Grindstaff in 1994 and now lives in Sun City Hilton Head, South Carolina.
References
# Huskey, H.D. Harry D. Huskey: His Story. [http://www.booksurgepublishing.com/ BookSurge Publishing], 2004. ISBN 1594576807.
# Huskey, H.D. The ACE Test Assembly, the Pilot ACE, the Big ACE, and the Bendix G15. In Copeland, B.J., Alan Turing's Automatic Computing Engine, chapter 13, pages 281–295. Oxford University Press, 2005. ISBN 0198565933.
# Huskey, H.D. The state of the art in electronic digital computing in Britain and the United States (1947). In Copeland, B.J., Alan Turing's Automatic Computing Engine, chapter 23, pages 529–540. Oxford University Press, 2005. ISBN 0198565933.
External link
-
Huskey, Harry
Huskey, Harry
Huskey, Harry
Huskey, Harry
Huskey, Harry
Computer science
Computer science, an academic discipline (abbreviated CS or compsci),
is a body of knowledge generally about computer hardware, software, computation and its theory.
The discipline itself includes, but is not limited to, the fundamentals of computer languages, operating systems and mathematical foundations of computer science.
The study of these fundamentals may lead to a wide variety of topics, such as algorithms, formal grammars, programming languages, program design, artificial intelligence and computer engineering.
There exist a number of technical definitions of computer science. The status of computer science as a science is often challenged, typically arguing that it is more like mathematics and that it does not follow the scientific method, however these facts are not unanimously accepted. In popular language, the term computer science is often confusingly used to denominate anything related to computers.
History of computer science
Evolutionary
Before the 1920s, computers were human clerks that performed calculations. They were usually under the lead of a physicist. Many thousands of computers were employed in commerce, government, and research establishments. Most of these computers were women, and they were known to have a degree in calculus.
After the 1920s, the expression computing machine refered to any machine that performed the work of a human computer, especially those in accordance with effective methods of The Church-Turing Thesis. The thesis states that a mathematical method is effective if it could be set out as a list of instructions able to be followed by a human clerk with paper and pencil, for as long as necessary, and without ingenuity or insight.
Machines that computed with discrete values became known as the analog kind. They used machinery that represented discrete numeric quantities, like the angle of a shaft rotation or difference in electrical potential.
Digital machinery, in contrast to analog, were able to render a state of a numeric value and store each individual digit. Digital machinery used difference engines or relays before the invention of faster memory devices.
The phrase computing machine gradually gave away, after the late 1940s, to just computer as the onset of electronic digital machinery became common. These computers were able to perform the calculations that were performed by the previous human clerks.
Since the values stored by digital machines were not bound to physical properties like the analog device, a logical computer, based on digital equipment, was able to do anything that could be described "purely mechanical." Alan Turing, known as the Father of Computer Science, invented such a logical computer, also known as a Turing Machine, that evolved into the modern computer from the tasks performed by the previous human clerks. These new computers were also able to perform non-numeric computations, like music.
Computability, by logical computers, began a science by being able to make evident which was not explicitly defined into ordinary sense more immediate.
Academic discipline
Computer science has roots in electrical engineering, logic, mathematics, and linguistics. In the last third of the 20th century computer science emerged as a distinct discipline and developed its own methods and terminology. Originally, CS was taught as part of mathematics or engineering departments, for instance at the University of Cambridge in England and at the Gdansk University of Technology in Poland, respectively. Cambridge claims to have the world's oldest taught qualification in computing. The first computer science department in the United States was founded at Purdue University in 1962, while the first college entirely devoted to computer science was founded at Northeastern University in 1982. Most universities today have specific departments devoted to computer science, while some conjoin it with engineering, with applied mathematics, or other disciplines.
Most research in computer science has focused on von Neumann computers or Turing machines (computation models that perform one small, deterministic step at a time). These models resemble, at a basic level, most real computers in use today. Computer scientists also study other models of computation, which includes parallel machines and theoretical models such as probabilistic, oracle, and quantum computers.
Careers
Some of the potential careers for those who study computer science are listed below:
Demographics
- Nearly half of all computer programmers held a bachelor’s degree in 2002; about 1 in 5 held a graduate degree. [http://www.bls.gov/oco/ocos110.htm]
- Computer programmer employment is expected to grow much more slowly than that of other computer specialists.
- Education requirements range from a 2-year degree to a graduate degree. [http://www.bls.gov/oco/ocos042.htm]
- Employment, other than computer programmer, is expected to increase much faster than the average as organizations continue to adopt increasingly sophisticated technologies.
Sub-disciplines of computer science
Computer Science has a number of major sub-fields which can be classified by a number of means (for example the [http://www.acm.org/class/1998/overview.html ACM classification system]).
Algorithms
The study of algorithms is aimed at creating techniques that will enable a computer to perform a certain task in an efficient manner. An algorithm is a set of well-defined instructions for accomplishing some task, often explained by analogy with a culinary recipe. Algorithms are often implemented in software, and advancing the state of the art in algorithms is responsible for many of the most spectacular successes in computing.
An algorithms specialist may come up with methods to accomplish new tasks, but just as often, they will work on improving the efficiency of an existing algorithm. These improvements can come in "time" (the length of time it takes for the algorithm to work) and "space" (the amount of computer memory the algorithm consumes.
The field of algorithms is highly formal and many things can be proved about a given algorithm (using complexity theory), including roughly how long it will take to complete, as compared to the size of its input (the number of options it must consider). One interesting open question in algorithms concerns the complexity classes P and NP, and whether or not P = NP. If it does, then a whole range of seemingly difficult algorithms can in theory be performed quickly.
Data structures
A data structure is a way to store data so that it can be remembered and retrieved efficiently. A well-designed data structure means that an algorithm can be performed using as little memory space and time as possible.
Some data structures are very simple: the simplest is an array which is simply a numbered list of items. Since the memory of a computer is usually modelled as an array (of bytes), this is also one of the most important data structures in computer science. For example, strings of text are usually modelled as arrays. But there are many other data structures such as linked lists, trees, hash tables and many others that are quite different but critical to the science.
Type theory classifies data at a most basic (mathematical) level into different types, such as integers, complex numbers, strings, etc. and deals with how those types can interact. Abstract data types, at a more concrete level, deal with how types and data structures are used in software programming.
Listing of sub-disciplines
Computer science is closely related to a number of fields. These fields overlap considerably, though important differences exist:
Major fields of importance for computer science
See also
- Benchmark
- Computer jargon
- Computer numbering formats
- Computer slang
- Computing
- Data acquisition
- European Association for Theoretical Computer Science
- IEEE John von Neumann Medal
- Internet
- List of algorithms
- List of basic computer science topics
- List of computer science conferences
- List of computing topics
- List of data structures
- List of open problems in computer science
- List of publications in computer science
- List of prominent pioneers in computer science
- Multimedia
- Online computations and algorithms
- Sensor network
- Turing Award (ACM)
External links
- [http://www.dmoz.org/Computers/Computer_Science/ Open Directory Project: Computer Science]
- [http://www.techbooksforfree.com/science.shtml Downloadable Science and Computer Science books]
- [http://liinwww.ira.uka.de/bibliography/ Collection of Computer Science Bibliographies]
- [http://www.geocities.com/tablizer/science.htm Belief that title "science" in "computer science" is inappropriate]
Category:Computer science
ko:컴퓨터 과학
ja:情報工学
simple:Computer science
th:วิทยาการคอมพิวเตอร์
Control Data CorporationControl Data Corporation, or CDC, was one of the pioneering supercomputer firms. For most of the 1960s they built the fastest computers in the world by far, only losing that crown in the 1970s to what was effectively a spinoff. CDC was one of the eight major computer companies through most of the 1960s; along with CDC these were IBM, Burroughs, NCR, General Electric, Honeywell, RCA, and UNIVAC. CDC was well known and highly regarded throughout the industry at one time, but today is largely forgotten.
Background, origins: WWII–1957
During World War II the US Navy had built up a team of engineers to build codebreaking machinery for both Japanese and German mechanical ciphers. A number of these were produced by a team dedicated to the task working in the Washington, DC area. With the post-war wind-down of military spending the Navy grew increasingly worried that the team would break up and scatter into various companies, and started looking for ways to covertly keep the team together.
Eventually they found their solution; the owner of a Chase Aircraft affiliate in St. Paul, Minnesota was about to lose all his contracts with the end of the war, and after several meetings with increasingly high-ranking Naval officers he eventually agreed to house the team in his glider factory. The result was Engineering Research Associates (ERA), a contract engineering company that worked on a number of seemingly unrelated projects in the early 1950s.
One of these was one of the first commercial stored program computers, the 48-bit ERA 1103. The machine was built for the Navy, who intended to use it in their "above board" code-breaking centers. In the early 1950s a minor political debate broke out in Congress about the Navy essentially "owning" ERA, and the ensuing debates and legal wrangling left the company drained of both capital and spirit. In 1952 the owner sold ERA to Remington Rand.
Although Rand kept the ERA team together and developing new products, they were most interested in ERA's drum memory systems. Rand soon merged with Sperry Corporation to become Sperry Rand, and in the process of merging the companies, the ERA division was folded into Sperry's UNIVAC division. As the Sperry "big company" mentality encroached on the decision-making power of the ERA founders, they eventually got fed up and decamped to form Control Data in 1957, setting up shop in an old warehouse down the road in Minneapolis. Of the members forming CDC, William Norris was the unanimous choice to become CEO of the new company. Seymour Cray was likewise chosen to be the chief designer, but was still in the process of completing the 1103-based Naval Tactical Data System (NTDS) and did not leave to join CDC until this was complete.
Early designs; and Cray's big plan
CDC started business by selling parts, mostly drum systems, to other companies. Cray joined the next year and immediately built a small transistor-based 6-bit machine known as "Little Character" to test his ideas on large-system design and transistor-based machines. Little Character was a success, and they soon released a transistorized version of their 1103 design as the CDC 1604 in 1959, with the first machine delivered to the US Navy in 1960. A 12-bit cut-down version was also released as the CDC 160A in 1960, arguably the first minicomputer. New versions of the basic 1604 architecture were re-built into the CDC 3000 series, which sold through the early and mid-1960s.
Cray immediately turned to the design of a machine that would be the fastest (or in the terminology of the day, largest) machine in the world, setting the goal at 50 times the speed of the 1604. This required radical changes in design, and as the project "dragged on" (it took about four years in total) management became increasingly upset and demanded ever-greater oversight. Cray eventually got fed up and 1962 demanded to be set up in his own remote lab, or he would quit. Norris agreed, and after a short search the team moved to Cray's home town of Chippewa Falls, Wisconsin.
The CDC 6600: defining supercomputing
In the new lab Seymour Cray, Jim Thornton and Dean Roush put together a team of 34 engineers (themselves included), and continued work on the new design. In 1964 this was released as the CDC 6600, outperforming everything on the market by roughly ten times. The 6600 had a CPU with multiple asynchronous functional units, and used 10 logical, external I/O processors to offload many common tasks. That way the CPU could devote all of its time and circuitry to processing data while the other controllers dealt with mundane tasks like punching cards and running disks. Using late-model compilers the machine racks up .5 MFlops, while hand-coded assembly can deliver about 1 MFLOPS, impressive considering that it is about 40 years old. A slower version was released as the CDC 6400; a two processor version of that was called the 6500.
It was after the delivery of the 6600 that IBM took notice of the new company. At the time Thomas J. Watson, Jr. asked (paraphrased) how is it that this tiny company of 34 people (including the janitor) can be beating us when we have thousands of people?, to which Cray quipped you just answered your own question. In 1965 IBM started an effort to build their own machine that would be even faster than the 6600, the ACS. Two hundred people were assembled on the west coast to work on the project away from corporate prodding, in an attempt to mirror Cray's offsite lab. The project produced interesting architecture and technology, but was not compatible with IBM's very successful System/360 line. It was redirected to be System/360-compatible, but this compromised performance, and ACS was eventually cancelled in 1969 after producing no product.
In the short term IBM also went ahead and announced a new version of the famed System/360 that would be just as fast as the 6600, the Model 92. This machine didn't exist, but that didn't stop sales of the 6600 drying up while people waited for its release (a tactic known today as FUD). Norris didn't take this lying down, and a year later filed an anti-trust suit against IBM, eventually winning over 600 million dollars and picking up the Service Bureau Corporation, an IBM subsidiary that ran computer processing for other corporations on SBC's computers.
The CDC 7600 and 8600
The same month they won against IBM they also announced their new machine, the CDC 7600. Cray had started the design even before the 6600 was shipping, and allowed it to mature fully. This machine ran at about ten times the speed of the 6600. Much of this speed increase was due to extensive use of pipelining, a technique that allows different parts of the CPU to work on different parts of the instruction process at the same time. The time to run any particular instruction is no faster, but the program as a whole moves through the system more quickly as the instructions are queued up. Sadly the complexity also led to poor reliability, and while the 7600 project certainly paid for itself, it did serious damage to CDC's reputation.
Cray then turned to the latest in the series, the CDC 8600. The 8600 was essentially four 7600's in a single, much smaller, case. The smaller size and shorter signal paths allowed the 8600 to run at much higher clock speeds, which was combined with higher speed memory for most of the performance gains. Unfortunately the 8600 was "old school" in terms of physical construction, using individual components soldered to cards. There were so many solder joints on the 8600 that the machines never worked reliably, one bad joint and the machine was "flaky". Cray decided that a re-design was needed.
The STAR and the Cyber
In addition to the redesign of the 8600, CDC had another project called STAR underway, led by Cray's former collaborator on the 6600/7600, Jim Thornton. Unlike the 8600's "put four 7600s in a box" solution to the speed problem, the STAR was a new design using a technique we know today as a long, vector processor. By highly pipelining math instructions with purpose-built instructions and hardware, math processing could be dramatically improved in a machine that was otherwise slower than a 7600. Although the particular set of problems it would be best at was limited in comparison to the "generalist" 7600, it was exactly these sorts of problems that customers bought CDC machines to solve. The vector length was 65,536 64-bit words.
The two projects competed for limited funds in the late 1960s, and Norris felt that the company could not support development of the STAR and a complete redesign of the 8600 at the same time. He told Cray, who in 1972 left to form Cray Research. Norris remained a staunch supporter of Cray, and even invested money into his new company. Eventually the 8600 was cancelled in 1974, and the STAR released the same year. The STAR, also designated as the Cyber 203, proved to have considerably worse "real world" performance than expected. Jim Thornton left CDC to form Network Systems Corporation.
A variety of systems based on the basic 6600/7600 architecture were re-packaged at different price/performance points as the CDC Cyber, and became CDC's main product line in the 1970s. This included an updated version of the STAR architecture as well, the Cyber 205, which had considerably better performance than the original. But by this time Cray's own designs like the Cray-1 were using the same design techniques as the STAR, yet doing it much faster due to various design details. Sales of the STAR were weak, but Control Data produced a successor system, the Cyber 200/205, which gave Cray Research limited competition.
CDC also embarked on a number of special projects for its client base which produced an even smaller number of black projects. The CDC Advanced Flexible Processor (AFP), a.k.a. CYBER PLUS was one such machine with 1-2 known examples made. Undoubtably, other lesser documented architectures exist.
ETA Systems, hard disks, oblivion
CDC decided to fight back, but Norris agreed with Cray in thinking that the company had become too ossified to be able to quickly design anything competitive. Instead he set up a new spinoff company in 1983, ETA Systems, their design goal being a machine able to process at 10 GFLOPs, about 40 times the speed of the Cray-1. The ETA design never fully matured and was unable to hit its design goals, but was nevertheless one of the fastest computers on the market and a handful were sold over the next few years. Eventually the effort ended after half-hearted attempts at selling ETA, and in 1989 most of the employees were laid off and the remains of the company were re-folded into CDC.
Meanwhile several very large Japanese manufacturing firms were entering the market as well. The supercomputer market was too small to be able to afford more than a handful of players, and CDC started looking for other markets. One of these was the high-performance hard disk market, which was becoming more interesting as personal computers started to include them in the mid-1980s. By then, CDC (through its Magnetic Peripherals unit, originally a joint venture with Honeywell) was a major player in the hard drive market, their Wren series drives were particularly popular for "high end" users. They also co-developed the now-universal ATA interface with Compaq and Western Digital to lower the cost of adding low-performance drives.
Oddly, then, CDC decided to exit the hard drive business entirely in 1988, spinning off Magnetic Peripherals under the name Imprimis; the next year, Imprimis was purchased by Seagate, who had been seriously lagging in the high-end drive market. The remains of CDC became known as Control Data Systems, Inc., now Syntegra (USA), a subsidiary of the BT Group's BT Global Services; CDC's non-computer business became the Ceridian Corporation.
External links
- [http://www.cbi.umn.edu/collections/inv/cdc/cbi00080.html Control Data Corporation Records (CBI 80)] – At the Charles Babbage Institute, University of Minnesota, Minneapolis; CDC archives collection donated by Ceridian Corporation in 1991 (pages also contain historical timeline, product timeline, acquisitions list, joint ventures list)
- [http://biz.yahoo.com/ic/10/10402.html Yahoo! – Ceridian Corporation Company Profile]
- [http://biz.yahoo.com/ic/11/11174.html Yahoo! – Syntegra (USA) Inc. Company Profile]
Category:Control Data Corporation
Category:Defunct computer companies of the United States
Category:Former computer hardware companies
ja:コントロール・データ・コーポレーション
IBM:Big Blue redirects here. For the movie, see The Big Blue.
International Business Machines Corporation (IBM, or colloquially, Big Blue) (incorporated June 15, 1911, in operation since 1888) is headquartered in Armonk, NY, USA. The company manufactures and sells computer hardware, software, and services.
With over 330,000 employees worldwide and revenues of $96 billion (figures from 2004), IBM is the largest information technology company in the world, and one of the few with a continuous history dating back to the 19th century. It has engineers and consultants in over 170 countries and development laboratories located all over the world, in all segments of computer science and information technology; some of them are pioneers in areas ranging from mainframe computers to nanotechnology.
In recent years, services and consulting revenues have been larger than those from manufacturing. Samuel J. Palmisano was elected CEO on January 29, 2002 after having led IBM's Global Services, and helping it to become a business with a $100 billion in backlog in 2004 [http://www.ibm.com/ibm/sjp/bio.shtml].
In 2002 the company strengthened its business advisory capabilities by acquiring the consulting arm of professional services firm PricewaterhouseCoopers. The consulting arm was previously known as Monday. The company is increasingly focused on business solution driven consulting, services and software, with emphasis also on high value chips and hardware technologies; as of 2005 it employs about 195,000 technical professionals. That total includes about 350 Distinguished Engineers and 60 IBM Fellows, its most senior engineers. IBM Research has eight laboratories, all located in the Northern Hemisphere, with five of those locations outside of the United States. IBM employees have won five Nobel Prizes. In the USA, they have earned four Turing Awards, five National Medals of Technology, and five National Medals of Science, and outside the USA, many equivalents.
Current business activities
In 2002, IBM announced the beginning of a $10 billion program to research and implement the infrastructure technology necessary to be able to provide supercomputer-level resources "on demand" to all businesses as a metered utility. This program will be implemented over the coming years.
In recent years IBM has steadily increased its patent portfolio, which is valuable for cross-licensing with other companies. In every year from 1993 until 2004, IBM has been granted significantly more U.S. patents than any other company. That twelve-year period has resulted in over 29,000 patents for which IBM is the primary assignee.
[http://www.research.ibm.com/resources/news/20000111_patents99.shtml]
Protection of the company's intellectual property has grown into a business in its own right, generating over $10 billion dollars [http://www.industryweek.com/CurrentArticles/asp/articles.asp?ArticleID=1400] to the bottom line for the company during this period. [http://www.forbes.com/2003/08/07/cx_ld_0807ibm_print.html], [http://www.inc.com/articles/legal/ip/patents/23293.html]
A 2003 Forbes article quotes the head of IBM Research, who suggested a $1 billion in profit just for the research staff; however, they probably generate the bulk of new inventions in the company.
In 2005, IBM sold its PC division to China-based Lenovo. As part of the agreement, Lenovo moved its headquarters to New York State. IBM owns a significant stake (about 19%) in Lenovo. Starting from the date of the acquisition, Lenovo is permitted five years' use of the IBM and "Think" trademarks.
Culture
IBM has often been described as having a sales-centric or a sales-oriented business culture. Traditionally, many of its executives and general managers would be chosen from its sales force. In addition, middle and top management would often be enlisted to give direct support to salesmen in the process of making sales to important customers.
For most of the 20th century, a blue suit, white shirt and dark tie was the public uniform of IBM employees. But by the 1990s, IBM relaxed these codes; the dress and behavior of its employees does not differ appreciably from that of their counterparts in large technology companies.
In 2003, IBM embarked on an ambitious project to rewrite company values using its "Jam" technology -- Intranet-based online discussions on key business issues for a limited time, involving more than 50,000 employees over 3 days in this case. Jam technology includes sophisticated text analysis software (eClassifier) to mine online comments for themes, and Jams have now been used six times internally at IBM. As a result of the 2003 Jam, the company values were updated to reflect three modern business, marketplace and employee views: "Dedication to every client's success", "Innovation that matters - for our company and for the world", "Trust and personal responsibility in all relationships".
In 2004, another Jam was conducted in which more than 52,000 employees exchanged best practices for 72 hours. This event was focused on finding actionable ideas to support implementation of the values identified previously. A new post-Jam Ratings event was developed to allow IBMers to select key ideas that support the values. (For further information, see Harvard Business Review, December 2004, interview with IBM Chairman Sam Palmisano.)
IBM's culture has been recently influenced by the open source movement. The company invests billions of dollars in services and software based on Linux. This includes over 300 Linux kernel developers. IBM's open source involvement has not been trouble-free, however; see SCO v. IBM.
Diversity and workforce issues
IBM's efforts to promote workforce diversity and equal opportunity date back at least to World War I, when the company hired disabled veterans. More recently, IBM received a 100% rating on the Corporate Equality Index released by the Human Rights Campaign starting in 2003, the second year of the report. IBM is the only technology company ranked in [http://www.workingwoman.com/top10.html Working Mother Magazine's Top 10] for 2004.
The company has traditionally resisted labor union organizing, although unions represent some IBM workers outside the United States. [http://www.allianceibm.org Alliance@IBM], part of the Communications Workers of America, is trying to organize IBM in the U.S.
In the 1990s, two major pension program changes, including a conversion to a cash balance plan, resulted in an employee class action lawsuit alleging age discrimination. IBM employees won the lawsuit and arrived at a partial settlement, although appeals are still underway.
Historically IBM has had a good reputation of long term staff retention with few large scale layoffs. In more recent years there have been a number of broad sweeping cuts to the workforce as IBM attempts to adapt to changing market conditions and a declining profit base. After posting weaker than expected revenues in the first quarter of 2005, IBM eliminated 14,500 positions from its workforce, predominantly in Europe. There has also been a steadily increasing movement of labour to cheap offshore countries such as India.
On October 10, 2005, IBM became the first major company in the world to formally commit to not using genetic information in its employment decisions. This came just a few months after IBM announced its support of the National Geographic's Genographic Project.
History
Early years
Genographic Project
IBM's history dates back decades before the development of electronic computers – before that it developed punched card data processing equipment. It originated as the Computing Tabulating Recording (CTR) Corporation, which was incorporated on June 15, 1911 in Binghamton, New York. This company was a merger of the Tabulating Machine Corporation, the Computing Scale Corporation and the International Time Recording Company. The president of the Tabulating Machine Corporation at that time was Herman Hollerith, who had founded the company in 1896. Thomas J. Watson Sr., the founder of IBM, became General Manager of CTR in 1914 and President in 1915. In 1917, the Computing-Tabulating-Recording Company entered the Canadian market under the name of International Business Machines Co., Limited. On February 14, 1924, CTR changed its name to International Business Machines Corporation.
The companies that merged to form CTR manufactured a wide range of products, including employee time keeping systems, weighing scales, automatic meat slicers, and most importantly for the development of the computer, punched card equipment. Over time CTR came to focus purely on the punched card business, and ceased its involvement in the other activities.
World War II
During World War II, IBM's German subsidiary Dehomag (a portmanteau formed from "Deutsche Hollerith Maschinen Gesellschaft mbH", translated as "German Hollerith Machine Company Ltd.") provided the Nazi regime with punch card machines. Dehomag was taken over by the Nazis in December 1941. In 2001 author Edwin Black published a book titled [http://www.ibmandtheholocaust.com/ IBM and the Holocaust], which alleged that Thomas J. Watson knew of the German regime's activities and was indifferent to any moral issues. The credibility of Black's book [http://www.businessweek.com/magazine/content/01_12/b3724036.htm has been questioned], as has its claim that the Holocaust would have been impossible without Dehomag's data processing systems. The author [http://www.businessweek.com/magazine/content/01_14/c3726027.htm#B3726028 has responded to these claims]. As of 2004 IBM's possible complicity in the Holocaust is the subject of [http://www.cnn.com/2004/LAW/07/08/ramasastry.holocaust.ibm/ at least one unresolved lawsuit]. IBM has donated more than 10,000 pages of archived documents concerning Dehomag to Hohenheim University in Germany and New York University. The topic is explored in the 2003 documentary film The Corporation.
IBM contributed to the war effort by manufacturing the Browning Automatic Rifle and the M1 Carbine.
Airforce and airline projects
In the 1950s, IBM became a chief contractor for developing computers for the United States Air Force's automated defense systems. Working on the SAGE anti-aircraft system, IBM gained access to crucial research being done at MIT, working on the first real-time, digital computer (which included many other advancements such as an integrated video display, magnetic core memory, light guns, the first effective algebraic computer language, analog-to-digital and digital-to-analog conversion techniques, digital data transmission over telephone lines, duplexing, multiprocessing, and networks). IBM built fifty-six SAGE computers at the price of $30 million each, and at the peak of the project devoted more than 7,000 employees (20% of its then workforce) to the project. More valuable to the company in the long run than the profits, however, was the access to cutting-edge research into digital computers being done under military auspices. IBM neglected, however, to gain an even more dominant role in the nascent industry by allowing the RAND Corporation to take over the job of programming the new computers, because, according to one project participant (Robert P. Crago), "we couldn't imagine where we could absorb two thousand programmers at IBM when this job would be over someday." IBM would use its experience designing massive, integrated real-time networks with SAGE to design its SABRE airline reservation system, which met with much success.
Successes of the 1960's
IBM was the largest of the eight major computer companies (with UNIVAC, Burroughs, Scientific Data Systems, Control Data Corporation, General Electric, RCA and Honeywell) through most of the 1960s. People in this business would talk of "IBM and the seven dwarfs", given the much smaller size of the other companies or of their computer divisions. When only Burroughs, Univac, NCR and Honeywell produced mainframes, a bit later, people talked of "IBM and the B.U.N.C.H.". Most of those companies are now long gone as IBM competitors, except for Unisys, which is the result of multiple mergers that included UNIVAC and Burroughs. NCR and Honeywell dropped out of the general mainframe and mini sector and concentrated on lucrative niche markets. General Electric remains one of the world's largest companies, but no longer operates in the computer market. The IBM computer range that earned it its position in the market at that time is still growing today. It was originally known as the IBM System/360 and, in far more modern 64-bit form, is now known as the IBM zSeries (often referred to as "IBM mainframes").
IBM's success in the mid-1960s led to inquiries as to IBM antitrust violations by the U.S. Department of Justice, which filed a complaint for the case U.S. v. IBM in the United States District Court for the Southern District of New York, on January 17, 1969. The suit alleged that IBM violated the Section 2 of the Sherman Act by monopolizing or attempting to monopolize the general purpose electronic digital computer system market, specifically computers designed primarily for business. Litigation continued until 1983, and had a significant impact on the company's practices.
Recent history
On January 19, 1993 Cassandre announced a USD4.97 billion loss for 1992, which was at that time the largest single-year corporate loss in United States history. Since that loss, IBM has made major changes in its business activities, shifting its focus significantly away from components and hardware and towards software and services.
In 2004, IBM announced the proposed sale of its PC business to Chinese computer maker Lenovo, which is partially owned by the Chinese government, for USD650 million in cash and USD600 million in Lenovo stock. The deal was approved by the Committee on Foreign Investment in the United States in March 2005, and completed in May 2005. IBM will have a 19% stake in Lenovo, which will move its headquarters to New York State and appoint an IBM executive as its chief executive officer. The company will retain the right to use certain IBM brand names for an initial period of five years.
Facts and trivia
Committee on Foreign Investment in the United States
- The IBM Logo was designed by Paul Rand.
- IBM's Software Group, if it were a separate entity, would be the second largest software company in the world, behind only Microsoft in total revenue. Software Group groups its products into five brands: DB2 (information management), Rational (software development lifecycle), Lotus (collaboration), Tivoli (systems management and security) and WebSphere (application as well as data integration and middleware).
- IBM invented many of the core technologies used in all forms of computing, including the first hard disk drive and the Winchester hard disk drive, the cursor (on computer screens), Dynamic RAM (DRAM), the relational database, Thin Film recording heads, RISC architecture, and the floppy disk. While the floppy disk is rapidly falling into disuse, the infamous Control-Alt-Delete keystroke (David Bradley, 2001: "I invented it, but it was Bill [Gates] that made it famous"), also invented at IBM, is still frequently used on PCs running Windows operating systems.
- The first black employee was hired in 1899 by the Computing Scale Corporation (as it was known at the time).
- IBM began hiring women to work as professional systems service staff in 1935. Thomas J. Watson Sr. wrote: "Men and women will do the same kind of work for equal pay. They will have the same treatment, the same responsibilities and the same opportunities for advancement."
- From 1933 to 1944, IBM punch card machines were installed at various German concentration camps. It has been alleged by a journalist that IBM president Thomas J. Watson, Sr. was aware of their use. Note however that concentration camps are a perfectly legal war disposition regulated by the Geneva convention. The problem lies with extermination camps, about which there were already a lot of war rumours, but nothing that could be confirmed or inferred formally before their discovery by allies in 1945. [http://ibmandtheholocaust.com/]
- From 1942 to 1944 IBM was one of nine companies contracted by the U.S. Government to produce M1 Carbine rifles; these are now sought-after antiques.
- IBM also made clocks until they sold their time division in 1958.
- In 1944, IBM was the first corporation to support the United Negro College Fund.
- In 1953, IBM published the first U.S. corporate mandate on equal employment opportunity, stating that the company would hire people based on their ability, "regardless of race, color or creed". Sexual orientation was added to the nondiscrimination policy in 1984. Genetic makeup was added in 2005.
- IBM invented the USB flash drive in 1998 but did not patent it.
- Whilst IBM did not invent the personal computer, architectures cloned from its design for the IBM PC (which relied on third-party componentry) became the industry standard, and are now often simply called the PC. The IBM PC was introduced on August 12 1981; Microsoft and Intel became monopoly suppliers of two of the key components of PC-compatible systems. IBM agreed to sell its PC division to Lenovo in December 2004 and, when the sale is complete, will come out of the business of manufacturing / designing / selling PCs, the business which it created in 1981.
- The IBM iSeries minicomputer (in its 24-year history also variously known as i5, AS/400 and System/38) is the world's largest-selling computer family, if PC-type machines are excluded. It was the first successful 64-bit machine. It has been calculated that, if the Rochester, Minnesota facility that produces the machine were independent, it would be the third largest computer company in the world.
- In 2004, for the twelfth consecutive year, IBM was awarded the greatest number of patents by the USPTO. IBM received 3,248 patents that year. (Reference: [http://www.uspto.gov/web/offices/com/speeches/05-03.htm USPTO Releases Annual List of Top 10 Organizations Receiving Most U.S. Patents])
Acquisitions
- 1889 Bundy Manufacturing Company incorporated.
- 1891 Computing Scale Company incorporated.
- 1893 Dey Patents Company (Dey Time Registers) incorporated.
- 1894 Willard & Frick Manufacturing Company (Rochester, New York) incorporated.
- 1896 Detroit Automatic Scale Company incorporated.
- 1896 Tabulating Machine Company incorporated.
- 1899 Standard Time Stamp Company acquired by Bundy Manufacturing Company.
- 1900 Willard & Frick Manufacturing Company (Rochester) acquired by International Time Recording Company.
- 1901 Chicago Time-Register Company acquire by International Time Recording Company.
- 1901 Dayton Moneyweight Scale Company acquire by Computing Scale Company.
- 1901 Detroit Automatic Scale Company acquired by Computing Scale Company.
- 1902 Bundy Manufacturing Company acquired by International Time Recording Company.
- 1907 Dey Time Registers acquired by International Time Recording Company.
- 1908 Syracuse Time Recording Company acquired by International Time Recording Company.
- 1911 Computing Scale Company acquired by Computing-Tabulating-Recording Company (C-T-R).
- 1911 International Time Recording Company acquired by Computing-Time-Recording Company (C-T-R).
- 1911 Tabulating Machine Company acquired by Computing-Tabulating-Recording Company (C-T-R).
- 1917 American Automatic Scale Company acquired by Computing-Tabulating-Recording Company (C-T-R) as International Scale Company.
- 1917 C-T-R opens in Canada as IBM.
- 1921 Pierce Accounting Machine Company (asset purchase).
- 1921 Ticketograph Company (of Chicago).
- 1924 C-T-R renamed IBM.
- 1930 Automatic Accounting Scale Company.
- 1932 National Counting Scale Company.
- 1933 Electromatic Typewriters Inc. (See: IBM Electromatic typewriter)
- 1941 Munitions Manufacturing Corporation.
- August, 1959 Pierce Wire Recorder Corporation.
- 1984 ROLM.
- 1986 RealCom Communications Corporation.
- 1995 Lotus Development Corporation for $3.5 billion.
- 1996 Tivoli Systems for $743 million.
- 1997 Software Artistry for $200 million.
- 1997 Unison Software.
- 1998 CommQuest Technologies.
- 1999 Mylex Corporation.
- 1999 Sequent Computer Systems for $810 million.
- 2001 Informix Software (a purchase of assets rather than a true acquisition) for $1.0 billion.
- 2001 Mainspring Inc. for $80 million.
- January, 2002 Crossworlds.
- 2002 PricewaterhouseCoopers' Consulting for $3.5 billion (recalculated by IBM in August 2003 as $3.9 billion).
- October, 2003 CrossAccess.
- 2003 Rational Software Corporation for $2.1 billion.
- 2003 Presence Online, Aptrix. July.
- 2004 Maersk Data & DMData.
- March, 2004 Logicalis Australia (renamed to [http://www.cerulean.com.au Cerulean Solutions] in April 2005) and Logical CSI New Zealand.
- April, 2004 Candle Corp., Daksh eServices in India.
- July, 2004 Alphablox.
- July, 2004 Cyanea Systems.
- August, 2004 Venetica.
- October, 2004 Systemcorp.
- February 2005 Corio crio for $211 million.
- April 2005 Ascential Software for approximately $1.1 billion in cash.
- May 2005 Gluecode.
- July 2005 PureEdge.
- August, 2005 DWL.
- October, 2005 DataPower.
Spinoffs
- 1934 Dayton Scale Division is sold to the Hobart Manufacturing Company.
- 1942 Ticketograph Division is sold to the National Postal Meter Company.
- 1958 Time Equipment Division is sold to the Simplex Time Recorder Company.
- Taligent, a joint software venture with Apple Computer.
- Prodigy, formerly a joint venture with Sears.
- [http://www.attbusiness.net AT&T Business Internet], formerly IBM Global Network, formerly Advantis (joint venture with Sears).
- ARDIS mobile packet network, a joint venture with Motorola. Now [http://www.motient.com Motient].
- 1991 Lexmark (keyboards, typewriters, and printers). IBM Retained a 10% interest. Lexmark has sold its keyboard and typewriter businesses. [http://www.printers.ibm.com IBM Printing Systems] now competes with Lexmark.
- | | |