Write once, compile anywhere

Write once, compile anywhere (WOCA) is a philosophy taken by a compiler and its associated software libraries or by a software library/software framework which refers to a capability of writing a computer program that can be compiled on all platforms without the need to modify its source code. As opposed to Sun's write once, run anywhere slogan, cross-platform compatibility is implemented only at the source code level, rather than also at the compiled binary code level.

Introduction

There are many languages that follow the WOCA philosophy, such as C++, Pascal (see Free Pascal), Ada, Cobol, or C, on condition that they don't use functions beyond those provided by the standard library. Languages like Go go even further in as far that no system specific things are used, it should just work, and for system-specific elements a system of platform-specific files is used. A computer program may also use cross-platform libraries, which provide an abstraction layer hiding the differences between various platforms, for things like sockets and GUI, ensuring the portability of the written source code. This is, for example, supported by Qt (C++) or the Lazarus (Pascal) IDE via its LCL and corresponding widgetsets.

Today, we have very powerful desktop computers as well as computers in our phones, which often have sophisticated applications such as word processing, Database management, and spreadsheets, that can allow people with no programming experience to, sort, extract, and manipulate their data. and create documents (such as PDF files) showing their now organized information, or printing it out. Before 2000, some of these were not available, and prior to 1980, almost none of them were.

From the start of computer automation in the early 1960s, if you wanted a report from data you had, or needed to print up invoices, payroll checks, purchase orders, and other paperwork businesses, schools and governments generated, you typed them up on a physical typewriter, possibly using pre-printed forms. Otherwise, if you did have information stored in a computer, and wanted it sorted, manipulated, or printed, it required someone to write a program to do so. In some cases, the person needed information that professional programmers either could not understand how to provide a program to do what they wanted; the available programmers could not produce something in a reasonable amount of time; or there weren't any programmers they could use, caused some non-programming professionals to learn some programming skills, at least to know how to manipulate and print out information they needed from their data.

Whether the work was done by a professional programmer, or an end-user writing a program to provide them information for their own use, the means to do this in either case is the same. Write a program, submit it to a compiler (another program that converts written programs into instructions the computer can understand), fix any errors, then repeat until the program worked.

While this helped fix part of the problem, it created a new one. People who wrote programs, or hired someone to write them (purchasing software was not a thing until the 1970s or 1980s), discovered when their employer or school bought a new computer, their programs no longer worked.

Development of high-level programming languages

To combat these problems, various high-level languages were developed that were usable for general purpose application program development, but could be used to provide reports and information for people with specialized requirements.

These include:

  • BASIC, a simplified programming language which could be used to build "real world" complex applications, as well as simple programs to solve a problem, and was very accessible for amateur programmers. Its ease of use made BASIC well suited as an introductory computer programming class in many colleges.
  • C, a general-purpose programming language often suitable for writing programs which would otherwise require assembly language.
  • Cobol, a general-purpose programming language which tended to be used for developing business applications.
  • Fortran, a general-purpose programming language which is well suited for scientific and engineering problems.
  • Pascal, a general-purpose programming language, which tended to be targeted toward use in schools as an introductory class to teach programming as an alternative to BASIC. Pascal became commonly used for hobbyist programmers in the 1970s and 1980s due to them being part of an integrated development environment allowing a person to edit, compile, and run their programs, providing immediate results. Programs such as UCSD Pascal and Turbo Pascal opened up the world of programming to millions of people,
  • RPG, a domain-specific programming language designed to take the contents of data files, manipulate data and do calculations, then produce printed reports, similar to the way a person can use a spreadsheet to organize data and create PDF files today.

While compilers and interpreters of all of these languages, and dozens of others, were available for different machines and different vendors, often each manufacturer would develop proprietary enhancements which made programing on that machine easier, but again, made programs difficult to port (move the program to a different type of computer or a different vendor's computers), and increased vendor lock in. Something had to change.

Standardization

Starting in the late 1960s and early 1970s, efforts came into play to create standards and specifications of how machine-independent programs could be written using compilers from any vendor. Standards-making organizations, like the International Standards Organization (ISO), and ANSI, among others, in cooperation with large users of computers and software (like governments, financial institutions and manufacturers), and computer manufacturers, to create standardized specifications to provide a description of how each specific language should be implemented.

Computer manufacturers could still have their own proprietary extensions to a programming language, but if they wanted to be able to claim compliance with the standard, they had to specify the differences in the reference manual, so that a program written according to the standard able to compile and operate on their machine would also operate, without further change, on a different manufacturer's computer whose compiler also followed the standard. The requirements of the standard were enforced by large software buyers, such as military, government, and manufacturing companies, by refusing to buy such computing equipment if the vendor only offered a compiler for the programming languages they used which wasn't compliant with the standard.

Results

Currently, there are more than a dozen programming languages that have standards describing how programs in the language are supposed to be written, including Ada, APL, BASIC, C++, COBOL, ECMAScript (the generic name for JavaScript), Forth, FORTRAN, Pascal, PL/I, Ruby and SQL. Many of these are still in use, in some cases, because customers were able to take their source code to a different manufacturer's computer, where it was recompiled, often without change, because of the standardization of programming languages.

While the standards helped, the WOCA philosophy works only when the makers of compilers ensure that they follow the standard.

See also

Read other articles:

Kokoro Libraryココロ図書館(Kokoro Toshokan)GenreScience Fiction, Drama, Comedy Manga Anime  Portal anime dan manga Kokoro Library (ココロ図書館code: ja is deprecated , Kokoro Toshokan) adalah serial manga karya Nobuyuki Takagi. Manga ini diadaptasi ke dalam bentuk serial televisi moe anime yang disutradarai oleh Koji Masunari yang terkenal sebagai sutradara seriOVA untuk Read or Die dan serial anime Kamichu! pada tahun 2005. Plot Seorang prajurit bertemu dengan seorang pe...

 

De drie spinsters Duitse bladzijde uit 1913 Auteur gebroeders Grimm Originele titel Die drei Spinnerinnen Origineel gebundeld in Kinder- und Hausmärchen Uitgiftedatum 1812 Land Duitsland Taal Duits Genre sprookje Portaal    Literatuur De drie spinsters bieden hun diensten aan, Grimm's Household Tales, 1912 De drie spinsters is een sprookje uit Kinder- und Hausmärchen, de verzameling van de gebroeders Grimm, met als nummer KHM14. De oorspronkelijke naam is Die drei Spinnerinnen. He...

 

Types of investment trust in India This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Business Trust in India – news · newspapers · books · scholar · JSTOR (F...

جمهوريّة مصرالعربيّةJumhūriyat Miṣr al-`Arabīyah (Details) (Details) Basisgegevens Officiële landstaal Arabisch Hoofdstad Caïro Regeringsvorm Republiek Staatshoofd President Abdul Fatah al-Sisi Regeringsleider Premier Moustafa Madbouly Religie Islam ca. 90%Christendom 10%[1][2][3][4] Oppervlakte 1.002.000 km²[5] (0,6% water) Inwoners 72.798.031 (2006)[6] 104.124.440 (2020)[7] (0000103917 ...

 

Men's basketball team This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Saint Francis Red Flash men's basketball – news · newspapers · books · scholar · JSTOR (September 2015) (Learn how and when to remove this template message) Saint Francis Red Flash 2023–24 Saint Francis Red Flash men's basketball team Un...

 

Bagian dari seriFeminisme Wanita Gadis Femininitas Sejarah Sosial Sejarah wanita Sejarah feminis Sejarah feminisme Sejarah wanita Indonesia Sejarah wanita Amerika Sejarah wanita Kanada Sejarah wanita Jerman Sejarah wanita di Britania Raya Linimasa Hak pilih wanita Negara mayoritas Muslim Amerika Serikat Hak wanita lainnya Hak pilih menurut negara Australia Kanada Jepang Kuwait Selandia Baru Swedia Swiss Britania Raya Wales Amerika Serikat Di negara bagian Utah Gelombang Pertama Kedua Ketiga K...

American politician Clyde BishopBishop in 1911Member of the California State Assemblyfrom the 77th districtIn officeJanuary 2, 1911 – January 6, 1913Preceded byRichard MelroseSucceeded byWilliam H. EllisIn officeJanuary 7, 1907 – January 4, 1909Preceded byEdward Russell AmerigeSucceeded byRichard Melrose Personal detailsBorn(1874-05-23)May 23, 1874Chicago, Illinois, U.S.DiedOctober 31, 1927(1927-10-31) (aged 53)Santa Ana, California, U.S.Political partyRepublicanMilitary serviceBranc...

 

Dutch physicist Dirk Bouwmeester (2014) Dirk (Dik) Bouwmeester (born 1967) is a Dutch experimental physicist specializing in quantum optics and quantum information. He currently holds faculty positions at the University of California at Santa Barbara and at Leiden University in the Netherlands. In 1995 he obtained his PhD in Johannes P. Woerdman's lab at Leiden University with the thesis Quantum mechanics and classical optics.[1] The next year, while he was a post-doctoral researcher ...

 

1953 film by Paul Guilfoyle Captain ScarfaceDirected byPaul GuilfoyleWritten byCharles Lang (original story and screenplay)Produced byJack Rieger (associate producer)Hal Roach Jr. (producer)CinematographyNorbert BrodineEdited byGene Fowler Jr.Music byLeon KlatzkinDistributed byAstor PicturesRelease date15 October 1953Running time72 minutesCountryUnited StatesLanguageEnglish Captain Scarface is a 1953 American thriller film directed by Paul Guilfoyle. Plot In the waters off South America, the ...

Alpen KottianPrancis: Alpes Cottiennes; bahasa Italia: Alpi CozieMonte Viso di Alpen Kottian, dilihat dari RocciameloneTitik tertinggiPuncakMonte VisoKetinggian3.841 m (12.602 ft)Coordinates44°40′18″N 7°15′13″E / 44.67167°N 7.25361°E / 44.67167; 7.25361Letak GeografisNegaraItalia and PrancisStates/ProvincesPiedmont, Rhône-Alpes and Provence-Alpes-Côte d'AzurRange coordinates44°45′N 7°00′E / 44.75...

 

The Revolutionary Government of Angola in Exile flew the flag of the FNLA The Revolutionary Government of Angola in Exile (Portuguese: Govêrno revolucionário de Angola no exílio, or GRAE) was a self-proclaimed government-in-exile based in Léopoldville (modern-day Kinshasa) in the Democratic Republic of the Congo during the Angolan War of Independence. It was led the National Liberation Front of Angola (Frente Nacional de Libertação de Angola, FNLA) and its president was Holden Roberto. ...

 

BR710/715/725 Vista trasera de un BR700Tipo TurbofánFabricante Rolls-Royce DeutschlandDiseñado por Rolls-Royce DeutschlandPrimer encendido 1994Principales aplicaciones Gulfstream VBoeing 717BAE Systems Nimrod MRA4[editar datos en Wikidata] La familia de motores BR700 fue desarrollada por BMW y Rolls-Royce plc a través de la unión de empresas BMW Rolls-Royce para motorizar aviones regionales y ejecutivos. Rolls-Royce tomó el control de toda la empresa en 2000 que es ahora conoci...

Indian film producer Mahaveer JainNationalityIndianOccupationFilm Producer Mahaveer Jain is an Indian film producer.[1][2] He is mostly known for producing Hindi movies, which include Dekh Indian Circus (2011), Chalo Jeetey Hain (2018), Malaal (2019), Khandaani Shafakhana (2019), Uunchai (2022), Ram Setu (2022) and Good Luck Jerry (2022).[3][4] Career Mahaveer started his career as a producer in 2011 with Dekh Indian Circus, featuring Tannishtha Chatterjee and ...

 

Aage Niels BohrAage Niels (1963)Lahir19 Juni 1922 (umur 101)Kopenhagen, DenmarkMeninggal9 September 2009(2009-09-09) (umur 87)KebangsaanDenmarkAlmamaterUniversitas KopenhagenDikenal atasGeometry of atomic nucleiPenghargaanPenghargaan Nobel dalam Fisika (1975)Karier ilmiahBidangFisika nuklirInstitusiManhattan ProjectUniversity of Copenhagen Catatan Aage Niels Bohr adalah anak dari fisikawan Niels Bohr. Aage Niels Bohr (19 Juni 1922 – 9 September 2012) ialah fisikawan ...

 

Klaus Rosen, 2019 Klaus Rosen (* 31. Mai 1937 in Mannheim) ist ein deutscher Althistoriker mit dem Schwerpunkt Spätantike. Er bekleidete Lehrstühle für Alte Geschichte an der Universität Eichstätt (1978–1982) und an der Universität Bonn (1982–2002). Inhaltsverzeichnis 1 Leben und Wirken 1.1 Akademische Laufbahn 1.2 Forschungsschwerpunkte 2 Schriften (Auswahl) 3 Literatur 4 Weblinks 5 Anmerkungen Leben und Wirken Akademische Laufbahn Klaus Rosen trat 1947 in das humanistische Karl-Fr...

Ukrainian-Russian singer (born 1963) LolitaBornLolita Markovna Milyavskaya (1963-11-14) 14 November 1963 (age 60)Mukachevo, Ukrainian SSR, Soviet UnionCitizenshipRussianAlma materMoscow State Art and Cultural UniversityOccupations Actress singer TV and film director Years active1987–presentSpouses Aleksandr Belyayev ​ ​(m. 1985; div. 1986)​ Vitaly Milyavsky ​ ​(m. 1986; div. 1987)​...

 

Rebel MagazineCover of issue 2, Spring Summer 2011EditorNamal LankaCategoriesFashion lifestyle magazineFrequencyTwice yearlyFormatOnline & MagazineFounded2009Based inRugby, EnglandLanguageEnglishWebsiterebelmagazine.co.uk Rebel Magazine is a bi-annual fashion and lifestyle magazine, focusing on creative industries including designers, art, film and music.[1] The magazine is published by University of Northampton graduate Namal Lanka, who serves as the magazine's editor and creativ...

 

Questa voce o sezione sugli argomenti politici e storici è ritenuta da controllare. Motivo: diverse affermazioni (senza fonti) differiscono sensibilmente da quanto riportato sul DBI Partecipa alla discussione e/o correggi la voce. Segui i suggerimenti dei progetti di riferimento 1, 2. A questa voce o sezione va aggiunto il template sinottico {{Carica pubblica}} Puoi aggiungere e riempire il template secondo le istruzioni e poi rimuovere questo avviso. Se non sei in g...

2012 single by Jay-Z and Kanye West featuring Frank Ocean and The-Dream No Church in the WildSingle by Jay-Z and Kanye West featuring Frank Ocean and The-Dreamfrom the album Watch the Throne ReleasedMarch 20, 2012Recorded2011GenreHip hopLength4:32LabelRoc-A-FellaRoc NationDef JamSongwriter(s)Kanye WestShawn CarterLonnie BreauxTerius NashCharles NjapaMike DeanJames BrownPhil ManzaneraJoseph RoachGary WrightProducer(s)88-KeysKanye WestJay-Z singles chronology Talk That Talk(2012) No Church ...

 

Мари-Луиз Колейро Прекаангл. Marie Louise Coleiro Preca Президент Мальты 4 апреля 2014 — 4 апреля 2019 Глава правительства Джозеф Мускат Предшественник Джордж Абела Преемник Джордж Велла Министр по делам семьи и социальной солидарности Мальты март 2013 — 4 апреля 2014 Глава правите...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!