ANSI C
ANSI C on ANSI-standardi C-kielelle.[1]
ANSI C korvasi aiemman K&R C -version, joka syntyi Brian Kernighanin ja Dennis Ritchien toimesta ennen varsinaista standardia.[1][2] Kernighan ja Ritchie julkaisivat vuonna 1978 kirjan The C Programming Language, jossa K&R-versio kielestä oli approksimaatio standardille, mutta tarve muodolliselle standardille oli ilmeinen vuonna 1982.[2] Vuonna 1982 käytössä ollut versio ei ollut sama kuin kirjassa kuvattu ja eri kääntäjissä ei ollut mukana uusimpia muutoksia.[2] K&R ei ollut myöskään riittävän tarkka monissa kielen yksityiskohdissa.[2] Myöskään Stephen Johnsonin Portable C Compiler ei enää ollut sopiva referenssikääntäjänä.[2] Myös kielen käyttö projekteissa, joita koskivat kaupalliset ja valtion hallinon sopimukset aiheutti paineita standardin muodostamiselle.[2] Vuonna 1983 ANSI perusti X3J11-komitean stadardoimaan C-kieli.[1][2] ANSI X3.159-1989 -standardi hyväksyttiin 14. joulukuuta 1989 ja julkaistiin keväällä 1990.[1] ANSI-standardi korvattiin kansainvälisellä ISO-standardina (ISO C) nimellä ISO/IEC 9899:1990, joka oli ISO/IEC JTC 1 -ryhmän työtä.[1] Standardit erotetaan myös nimillä C89 ja C90.[1]
X/Open käyttää standardointia edeltävästä versiosta tietyissä yhteyksissä termiä X/Open C.[3]
Myöhemmin standardista on julkaistu useita pävitysversioita:
- ISO/IEC 9899:1990/Amd 1:1995, Amendment 1 (C95)[4][5]
- ISO/IEC 9899:1999, C99
- ISO/IEC 9899:2011, C11
- ISO/IEC 9899:2011/Cor 1:2012[11]
- ISO/IEC 9899:2018, C18
- tuleva versio on C23 (ISO/IEC CD 9899[12])
Muutokset aiempaan
[muokkaa | muokkaa wikitekstiä]ANSI C -versiossa on useita eroja K&R C -versioon, joita ovat esimerkiksi funktioiden prototyyppien käsittelyssä, esikääntäjän toiminnan määrittelyssä ja uudet avainsanat.[13] Yhteenveto K&R ja ANSI -versioiden eroista on lueteltu The C Programming Language -kirjan toisessa painoksessa (Second Edition, 1988).[14][15] Standardissa C-kieleen on otettu eräitä vaikutteita C++-kielestä (muun muassa const
-käyttö ja prototyyppien käsittely).[15]
Lähteet
[muokkaa | muokkaa wikitekstiä]- ↑ a b c d e f Brad Kelechava: The Origin of ANSI C and ISO C blog.ansi.org. 14.9.2017. Viitattu 21.11.2022. (englanniksi)
- ↑ a b c d e f g Ritchie, Dennis M.: The Development of the C Language bell-labs.com. Viitattu 24.7.2017.
- ↑ X/Open Guide XPG3-XPG4 Base Migration Guide, Version 2 (PDF) (sivu 241) archive.opengroup.org. Viitattu 21.11.2022. (englanniksi)
- ↑ ISO/IEC 9899:1990/Amd 1:1995 iso.org. Viitattu 23.11.2022. (englanniksi)
- ↑ Clive D.W. Feather: A brief description of Normative Addendum 1 lysator.liu.se. Viitattu 23.11.2022. (englanniksi)
- ↑ https://www.iso.org/standard/24271.html
- ↑ https://www.iso.org/standard/27110.html
- ↑ https://www.iso.org/standard/35952.html
- ↑ https://www.iso.org/standard/41326.html
- ↑ https://www.iso.org/standard/50510.html
- ↑ https://www.iso.org/standard/61717.html
- ↑ https://www.iso.org/standard/82075.html
- ↑ The Differences Between K&R Sun C and Sun ANSI/ISO C docs.oracle.com. Viitattu 29.11.2022. (englanniksi)
- ↑ Converting to ANSI C h.eng.cam.ac.uk. Viitattu 29.11.2022. (englanniksi)
- ↑ a b Brian W. Kernighan & Dennis M. Ritchie: The C Programming Language, s. 259–261. Prentice Hall, 1988. ISBN 0-13-110370-9 (englanniksi)