Mike Cowlishaw

Last updated

Michael Frederic Cowlishaw
Mike Cowlishaw 2005.jpg
Born
Bath, England
NationalityBritish
Alma mater University of Birmingham
Known for Rexx, editors (STET, LEXX), Decimal arithmetic, DPD
AwardsFReng, FIET, FBCS
Scientific career
Fields Computer science
Institutions University of Warwick

Mike Cowlishaw is a Fellow of the Royal Academy of Engineering. [1] and sometime visiting professor at the Department of Computer Science at the University of Warwick. He is a retired IBM Fellow, and was a Fellow of the Institute of Engineering and Technology, and the British Computer Society. He was educated at Monkton Combe School and the University of Birmingham.

Contents

Career at IBM

Cowlishaw was a pre-University student in 1971 and joined IBM in 1974 as an electronic engineer but is best known as a programmer and writer. He is known for designing and implementing the Rexx programming language (1984), [2] [3] his work on colour perception and image processing that led to the formation of JPEG (1985), [4] the STET folding editor (1977), the LEXX live parsing editor with colour highlighting for the Oxford English Dictionary (1985), [5] electronic publishing, SGML applications, the IBM Jargon File IBMJARG (1990), [6] a programmable OS/2 world globe PMGlobe (1993), [7] MemoWiki based on his GoServe Gopher/http server, [8] and the Java-related NetRexx programming language (1997).

He has contributed to various computing standards, including ISO (SGML, COBOL, C, C++), BSI (SGML, C), ANSI (REXX), IETF (HTTP 1.0/RFC 1945), W3C (XML Schema), ECMA (JavaScript/ECMAScript, C#, CLI), and IEEE (754 decimal floating-point). He retired from IBM in March 2010.

Decimal arithmetic

Cowlishaw has worked on aspects of decimal arithmetic; his proposal for an improved Java BigDecimal class (JSR  13) is now included in Java 5.0, and in 2002, he invented a refinement of Chen–Ho encoding known as densely packed decimal encoding. Cowlishaw's decimal arithmetic specification formed the proposal for the decimal parts of the IEEE 754 standard, as well as being followed by many implementations, such as Python and SAP NetWeaver. His decNumber decimal package is also available as open source under several licenses and is now part of GCC, and his proposals for decimal hardware have been adopted by IBM and others. They are integrated into the IBM POWER6 and IBM System z10 processor cores, and in numerous IBM software products such as DB2, TPF (in Sabre), WebSphere MQ, operating systems, and C and PL/I compilers. [9]

Other activities

Cowlishaw wrote an emulator for the Acorn System 1, and collected related documentation. [10] Outside computing, he caved in the UK, New England, Spain, [11] and Mexico [12] and continues to cave and hike in Spain. He is a life member of the National Speleological Society (NSS), wrote articles in the 1970s and 1980s on battery technology and on the shock strength of caving ropes, and designed LED-based caving lamps. [13] His current programming projects include MapGazer. [14] and PanGazer [15]

Publications (primary author)

Related Research Articles

<span class="mw-page-title-main">Binary-coded decimal</span> System of digitally encoding numbers

In computing and electronic systems, binary-coded decimal (BCD) is a class of binary encodings of decimal numbers where each digit is represented by a fixed number of bits, usually four or eight. Sometimes, special bit patterns are used for a sign or other indications.

<span class="mw-page-title-main">Decimal</span> Number in base-10 numeral system

The decimal numeral system is the standard system for denoting integer and non-integer numbers. It is the extension to non-integer numbers of the Hindu–Arabic numeral system. The way of denoting numbers in the decimal system is often referred to as decimal notation.

<span class="mw-page-title-main">Floating-point arithmetic</span> Computer approximation for real numbers

In computing, floating-point arithmetic (FP) is arithmetic that represents subsets of real numbers using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. Numbers of this form are called floating-point numbers. For example, 12.345 is a floating-point number in base ten with five digits of precision:

Double-precision floating-point format is a floating-point number format, usually occupying 64 bits in computer memory; it represents a wide dynamic range of numeric values by using a floating radix point.

Originally, the word computing was synonymous with counting and calculating, and the science and technology of mathematical calculations. Today, "computing" means using computers and other computing machines. It includes their operation and usage, the electrical processes carried out within the computing hardware itself, and the theoretical concepts governing them.

The IEEE Standard for Floating-Point Arithmetic is a technical standard for floating-point arithmetic originally established in 1985 by the Institute of Electrical and Electronics Engineers (IEEE). The standard addressed many problems found in the diverse floating-point implementations that made them difficult to use reliably and portably. Many hardware floating-point units use the IEEE 754 standard.

Hexadecimal floating point is a format for encoding floating-point numbers first introduced on the IBM System/360 computers, and supported on subsequent machines based on that architecture, as well as machines which were intended to be application-compatible with System/360.

Chen–Ho encoding is a memory-efficient alternate system of binary encoding for decimal digits.

Signed zero is zero with an associated sign. In ordinary arithmetic, the number 0 does not have a sign, so that −0, +0 and 0 are equivalent. However, in computing, some number representations allow for the existence of two zeros, often denoted by −0 and +0, regarded as equal by the numerical comparison operations but with possible different behaviors in particular operations. This occurs in the sign-magnitude and ones' complement signed number representations for integers, and in most floating-point number representations. The number 0 is usually encoded as +0, but can still be represented by +0, −0, or 0.

Densely packed decimal (DPD) is an efficient method for binary encoding decimal digits.

Extended precision refers to floating-point number formats that provide greater precision than the basic floating-point formats. Extended precision formats support a basic format by minimizing roundoff and overflow errors in intermediate values of expressions on the base format. In contrast to extended precision, arbitrary-precision arithmetic refers to implementations of much larger numeric types using special software.

Decimal floating-point (DFP) arithmetic refers to both a representation and operations on decimal floating-point numbers. Working directly with decimal (base-10) fractions can avoid the rounding errors that otherwise typically occur when converting between decimal fractions and binary (base-2) fractions.

NetRexx is an open source, originally IBM's, variant of the REXX programming language to run on the Java virtual machine. It supports a classic REXX syntax, with no reserved keywords, along with considerable additions to support object-oriented programming in a manner compatible with Java's object model, yet can be used as both a compiled and an interpreted language, with an option of using only data types native to the JVM or the NetRexx runtime package. The latter offers the standard Rexx data type that combines string processing with unlimited precision decimal arithmetic.

<span class="mw-page-title-main">Decimal computer</span> Computer operating on base-10 numbers

A decimal computer is a computer that can represent numbers and addresses in decimal and that provides instructions to operate on those numbers and addresses directly in decimal, without conversion to a pure binary representation. Some also had a variable wordlength, which enabled operations on numbers with a large number of digits.

<span class="mw-page-title-main">LEXX (text editor)</span>

LEXX is a text editor which was probably the first to use live parsing and colour syntax highlighting for marked-up text and programs. It was written by Mike Cowlishaw of IBM in 1985. The name was chosen because he wrote it as a tool for lexicographers, during an assignment for Oxford University Press's 'New Oxford English Dictionary'. The program ran on mainframes under VM/CMS. LEXX's design was based on several other editors written by the same author augmented by the ability to dynamically parse text and display colour on the new colour terminals that had recently become available. It is programmable using dynamically-loaded compiled commands or using interpreted commands.

In computing, quadruple precision is a binary floating-point–based computer number format that occupies 16 bytes with precision at least twice the 53-bit double precision.

In computing, decimal64 is a decimal floating-point computer numbering format that occupies 8 bytes in computer memory. It is intended for applications where it is necessary to emulate decimal rounding exactly, such as financial and tax computations.

decimal128 is a decimal floating-point computer number format that occupies 128 bits in computer memory. Formally introduced in IEEE 754-2008, it is intended for applications where it is necessary to emulate decimal rounding exactly, such as financial and tax computations.

<span class="mw-page-title-main">Rexx</span> Command/scripting/programming language

Rexx is a programming language that can be interpreted or compiled. It was developed at IBM by Mike Cowlishaw. It is a structured, high-level programming language designed for ease of learning and reading. Proprietary and open source Rexx interpreters exist for a wide range of computing platforms; compilers exist for IBM mainframe computers.

References

  1. "List of Fellows - Royal Academy of Engineering". Archived from the original on 4 May 2018. Retrieved 3 May 2018.
  2. Cowlishaw, Michael F. (1984). "The design of the REXX language" (PDF). IBM Systems Journal (PDF). 23 (4): 326–335. doi:10.1147/sj.234.0326 . Retrieved 23 January 2014.
  3. "The Man Behind REXX: z/Journal Visits IBM Fellow Mike Cowlishaw". Archived from the original on 5 May 2016. Retrieved 29 April 2016.
  4. Cowlishaw, Michael F. (1985). "Fundamental requirements for picture presentation" (PDF). SID, vol. 26 no. 2. Proceedings of the Society for Information Display. Retrieved 19 April 2015.
  5. Elliott, Jim (6 October 2003). "Description of LEXX". IBM VMARC v-943K. Retrieved 15 April 2015.
  6. Cowlishaw, Michael F. (May 1990). "IBM Jargon and General Computing Dictionary Tenth Edition" (PDF). IBMJARG. Archived (PDF) from the original on 20 May 2024. Retrieved 4 June 2024.
  7. Leung, Isaac (16 May 2004). "OS/2 eZine Quickies..." OS/2 ezine. Retrieved 15 April 2015.
  8. Cowlishaw, Michael F. "MemoWiki" . Retrieved 19 April 2015.
  9. Cowlishaw, Michael F. (2015) [1981, 2008]. "General Decimal Arithmetic" . Retrieved 2 January 2016.
  10. Cowlishaw, Michael F. (2001). "The Acorn 6502 Microcomputer Kit" . Retrieved 19 April 2015.
  11. "SpeleoGroup". Web pages.
  12. "SpeleoGroup Mexico expedition". Expedition log. 29 January 1979.
  13. "Mike Cowlishaw". Personal web page. 13 March 2015.
  14. "MapGazer - Introduction".
  15. "PanGazer - introduction".