CINXE.COM
Oxygene (programming language) - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Oxygene (programming language) - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"1abd0621-d010-4a25-9c2d-08504fd26a4b","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Oxygene_(programming_language)","wgTitle":"Oxygene (programming language)","wgCurRevisionId":1257380261,"wgRevisionId":1257380261,"wgArticleId":4249746,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles with short description","Short description matches Wikidata","Wikipedia articles needing clarification from July 2014","All articles with specifically marked weasel-worded phrases","Articles with specifically marked weasel-worded phrases from November 2021","Official website different in Wikidata and Wikipedia","Articles with example Pascal code",".NET programming languages","Class-based programming languages","Mono (software)","Object-oriented programming languages","Pascal (programming language) compilers","Pascal programming language family"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Oxygene_(programming_language)","wgRelevantArticleId":4249746,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q910482","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGELevelingUpEnabledForUser":false}; RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.pygments%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.21"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/en/9/9e/Chrome-128.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1200"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/en/9/9e/Chrome-128.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="800"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="640"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Oxygene (programming language) - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Oxygene_(programming_language)"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Oxygene_(programming_language)&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Oxygene_(programming_language)"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Oxygene_programming_language rootpage-Oxygene_programming_language skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Main menu" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages"><span>Special pages</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Oxygene+%28programming+language%29" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Oxygene+%28programming+language%29" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Oxygene+%28programming+language%29" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Oxygene+%28programming+language%29" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-The_language" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#The_language"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>The language</span> </div> </a> <button aria-controls="toc-The_language-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle The language subsection</span> </button> <ul id="toc-The_language-sublist" class="vector-toc-list"> <li id="toc-Program_structure" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Program_structure"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Program structure</span> </div> </a> <ul id="toc-Program_structure-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Types" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Types"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Types</span> </div> </a> <ul id="toc-Types-sublist" class="vector-toc-list"> <li id="toc-Records" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Records"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2.1</span> <span>Records</span> </div> </a> <ul id="toc-Records-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Interfaces" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Interfaces"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.3</span> <span>Interfaces</span> </div> </a> <ul id="toc-Interfaces-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Delegates" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Delegates"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.4</span> <span>Delegates</span> </div> </a> <ul id="toc-Delegates-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Anonymous_methods" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Anonymous_methods"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.5</span> <span>Anonymous methods</span> </div> </a> <ul id="toc-Anonymous_methods-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Property_notification" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Property_notification"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.6</span> <span>Property notification</span> </div> </a> <ul id="toc-Property_notification-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Code_examples" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Code_examples"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Code examples</span> </div> </a> <button aria-controls="toc-Code_examples-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Code examples subsection</span> </button> <ul id="toc-Code_examples-sublist" class="vector-toc-list"> <li id="toc-Hello_World" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Hello_World"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Hello World</span> </div> </a> <ul id="toc-Hello_World-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Generic_container" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Generic_container"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Generic container</span> </div> </a> <ul id="toc-Generic_container-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Generic_method" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Generic_method"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Generic method</span> </div> </a> <ul id="toc-Generic_method-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Differences_between_Delphi_and_Oxygene" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Differences_between_Delphi_and_Oxygene"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Differences between Delphi and Oxygene</span> </div> </a> <ul id="toc-Differences_between_Delphi_and_Oxygene-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Criticism" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Criticism"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Criticism</span> </div> </a> <ul id="toc-Criticism-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table of Contents" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Oxygene (programming language)</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 8 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-8" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">8 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%85%E0%A6%95%E0%A7%8D%E0%A6%B8%E0%A6%BF%E0%A6%9C%E0%A6%BF%E0%A6%A8" title="অক্সিজিন – Bangla" lang="bn" hreflang="bn" data-title="অক্সিজিন" data-language-autonym="বাংলা" data-language-local-name="Bangla" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Oxygene_(programovac%C3%AD_jazyk)" title="Oxygene (programovací jazyk) – Czech" lang="cs" hreflang="cs" data-title="Oxygene (programovací jazyk)" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%A7%DA%A9%D8%B3%DB%8C%DA%98%D9%86_(%D8%B2%D8%A8%D8%A7%D9%86_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87%E2%80%8C%D9%86%D9%88%DB%8C%D8%B3%DB%8C)" title="اکسیژن (زبان برنامهنویسی) – Persian" lang="fa" hreflang="fa" data-title="اکسیژن (زبان برنامهنویسی)" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%98%A5%EC%8B%9C%EC%A6%8C_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)" title="옥시즌 (프로그래밍 언어) – Korean" lang="ko" hreflang="ko" data-title="옥시즌 (프로그래밍 언어)" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Oxygene_(linguaggio)" title="Oxygene (linguaggio) – Italian" lang="it" hreflang="it" data-title="Oxygene (linguaggio)" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Oxygene_(j%C4%99zyk_programowania)" title="Oxygene (język programowania) – Polish" lang="pl" hreflang="pl" data-title="Oxygene (język programowania)" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/Oxygene_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)" title="Oxygene (язык программирования) – Russian" lang="ru" hreflang="ru" data-title="Oxygene (язык программирования)" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/Oxygene_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%83%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" title="Oxygene (мова програмування) – Ukrainian" lang="uk" hreflang="uk" data-title="Oxygene (мова програмування)" data-language-autonym="Українська" data-language-local-name="Ukrainian" class="interlanguage-link-target"><span>Українська</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q910482#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Oxygene_(programming_language)" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Oxygene_(programming_language)" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Oxygene_(programming_language)"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Oxygene_(programming_language)&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Oxygene_(programming_language)"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Oxygene_(programming_language)&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Oxygene_(programming_language)" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Oxygene_(programming_language)" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Oxygene_(programming_language)&oldid=1257380261" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Oxygene_(programming_language)&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Oxygene_%28programming_language%29&id=1257380261&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FOxygene_%28programming_language%29"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FOxygene_%28programming_language%29"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Oxygene_%28programming_language%29&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Oxygene_(programming_language)&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q910482" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Object Pascal-based programming language</div> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">Oxygene</caption><tbody><tr><td colspan="2" class="infobox-image"><span typeof="mw:File"><a href="/wiki/File:Chrome-128.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/en/thumb/9/9e/Chrome-128.png/121px-Chrome-128.png" decoding="async" width="121" height="121" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/9e/Chrome-128.png/182px-Chrome-128.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/9e/Chrome-128.png/242px-Chrome-128.png 2x" data-file-width="256" data-file-height="256" /></a></span></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Programming_paradigm" title="Programming paradigm">Paradigm</a></th><td class="infobox-data"><a href="/wiki/Object-oriented_programming" title="Object-oriented programming">object-oriented</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser"><a href="/wiki/RemObjects_Software" title="RemObjects Software">RemObjects Software</a></td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">2005<span class="noprint">; 20 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">2005</span>)</span><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a>, <a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java</a>, <a href="/wiki/Cocoa_(API)" title="Cocoa (API)">Cocoa</a>, CPU-Native, <a href="/wiki/Windows" class="mw-redirect" title="Windows">Windows</a> 32/64 bit, <a href="/wiki/Linux" title="Linux">Linux</a> 32/64 bit, <a href="/wiki/WebAssembly" title="WebAssembly">WebAssembly</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="/wiki/Trialware" class="mw-redirect" title="Trialware">Trialware</a></td></tr><tr><th scope="row" class="infobox-label">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://elementscompiler.com/elements/oxygene/">elementscompiler<wbr />.com<wbr />/elements<wbr />/oxygene<wbr />/</a></span></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #eee;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="/wiki/Delphi_(software)" title="Delphi (software)">Delphi</a>'s <a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a>, <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></td></tr></tbody></table> <p><b>Oxygene</b> (formerly known as <b>Chrome</b>) is a <a href="/wiki/Programming_language" title="Programming language">programming language</a> developed by <a href="/wiki/RemObjects_Software" title="RemObjects Software">RemObjects Software</a> for <a href="/wiki/Microsoft" title="Microsoft">Microsoft's</a> <a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a>, the <a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java</a> Platform and <a href="/wiki/Cocoa_(API)" title="Cocoa (API)">Cocoa</a>. Oxygene is based on <a href="/wiki/Delphi_(software)" title="Delphi (software)">Delphi</a>'s <a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a>, but also has influences from <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="/wiki/Eiffel_(programming_language)" title="Eiffel (programming language)">Eiffel</a>, <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a>, <a href="/wiki/F_Sharp_(programming_language)" title="F Sharp (programming language)">F#</a> and other languages. </p><p>Compared to the now deprecated <a href="/wiki/Delphi_(software)" title="Delphi (software)">Delphi.NET</a>, Oxygene does not emphasize total backward compatibility, but is designed to be a "reinvention" of the language, be a good citizen on the managed development platforms, and leverage all the features and technologies provided by the <a href="/wiki/.NET" title=".NET">.NET</a> and Java runtimes. </p><p>Oxygene is a commercial product and offers full integration into <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a>'s <a href="/wiki/Visual_Studio" title="Visual Studio">Visual Studio</a> IDE on Windows, and its own IDE called Fire for use on <a href="/wiki/MacOS" title="MacOS">macOS</a>. Oxygene is one of six languages supported by the underlying Elements Compiler toolchain, next to <a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a>, <a href="/wiki/Swift_(programming_language)" title="Swift (programming language)">Swift</a>, <a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a>, <a href="/wiki/Go_(programming_language)" title="Go (programming language)">Go</a> and <a href="/wiki/Mercury_(RemObjects_BASIC_programming_language)" title="Mercury (RemObjects BASIC programming language)">Mercury</a> (based on <a href="/wiki/Visual_Basic_(.NET)" title="Visual Basic (.NET)">Visual Basic (.NET)</a>). </p><p>From 2008 to 2012, RemObjects Software licensed its compiler and IDE technology to <a href="/wiki/Embarcadero_Technologies" title="Embarcadero Technologies">Embarcadero</a> to be used as the backend compiler in their Embarcadero Prism product.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Starting in the Fall of 2011, Oxygene became available in two separate editions, with the second edition adding support for the Java and Android runtimes. Starting with the release of XE4, Embarcadero Prism is no longer part of the RAD Studio SKU. Numerous support and upgrade paths for Prism customers exist to migrate to Oxygene.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> As of 2016, there is only one edition of Oxygene, which allows development on Windows or macOS, and which can create executables for Windows, Linux, WebAssembly .NET, iOS, Android, Java and macOS. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="The_language">The language</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=1" title="Edit section: The language"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The Oxygene language has its origins in Object Pascal in general and Delphi in particular, but was designed to reflect the guidelines of .NET programming and to create fully CLR-compliant assemblies. Therefore, some minor language features known from Object Pascal – Delphi have been dropped or revised, while many new and more modern features, such as Generics or Sequences and Queries have been added to the language. </p><p>Oxygene is an <a href="/wiki/Object-oriented_programming" title="Object-oriented programming">Object-oriented programming</a> language. Thus, it uses classes, which can hold data and execute code, to design programs.<sup class="noprint Inline-Template" style="margin-left:0.1em; white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Please_clarify" title="Wikipedia:Please clarify"><span title="The text near this tag may need clarification or removal of jargon. (July 2014)">clarification needed</span></a></i>]</sup> Classes are "prototypes" for objects, like the idea of an apple is the prototype for the apple one can actually buy in a shop. It is known that an apple has a colour, and that it can be peeled: those are the data and executable "code" for the apple class. </p><p>Oxygene provides language-level support for some features of parallel programming. The goal is to use all cores or processors of a computer to improve performance. To reach this goal, tasks must be distributed among several threads. The <a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a>'s <code>ThreadPool</code> class offered a way to efficiently work with several threads. The <a href="/wiki/Task_Parallel_Library" class="mw-redirect" title="Task Parallel Library">Task Parallel Library</a> (TPL) was introduced in .NET 4.0 to provide more features for parallel programming. </p><p>Operators can be overloaded in Oxygene using the <code>class operator</code> syntax: </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">class</span><span class="w"> </span><span class="k">operator</span><span class="w"> </span><span class="nf">implicit</span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="kt">Integer</span><span class="p">)</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">MyClass</span><span class="o">;</span> </pre></div> <p>Note, that for <a href="/wiki/Operator_overloading" title="Operator overloading">operator overloading</a> each operator has a name, that has to be used in the operator overloading syntax, because for example "+" would not be a valid method name in Oxygene.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Program_structure">Program structure</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=2" title="Edit section: Program structure"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Oxygene does not use "Units" like Delphi does, but uses .NET <a href="/wiki/Namespace" title="Namespace">namespaces</a> to organize and group types. A namespace can span multiple files (and assemblies), but one file can only contain types of one namespace. This namespace is defined at the very top of the file: </p> <pre>namespace ConsoleApplication1; </pre> <p>Oxygene files are separated into an interface and an implementation section, which is the structure known from Delphi. The interface section follows the declaration of the namespace. It contains the <code>uses</code> clause, which in Oxygene imports types from other namespaces: </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">uses</span> <span class="w"> </span><span class="n">System</span><span class="o">.</span><span class="n">Linq</span><span class="o">;</span> </pre></div> <p>Imported namespaces must be in the project itself or in referenced assemblies. Unlike in C#, in Oxygene alias names cannot be defined for namespaces, only for single type names (see below). </p><p>Following the <code>uses</code> clause a file contains type declarations, like they are known from Delphi: </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">interface</span> <span class="k">type</span> <span class="w"> </span><span class="n">ConsoleApp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">class</span> <span class="w"> </span><span class="kp">public</span> <span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">Main</span><span class="o">;</span> <span class="w"> </span><span class="k">end</span><span class="o">;</span> </pre></div> <p>As in C#, the Main method is the entry point for every program. It can have a parameter <code>args : Array of String</code> for passing command line arguments to the program. </p><p>More types can be declared without repeating the <code>type</code> keyword. </p><p>The implementation of the declared methods is placed in the implementation section: </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">implementation</span> <span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">ConsoleApp</span><span class="o">.</span><span class="n">Main</span><span class="o">;</span> <span class="k">begin</span> <span class="w"> </span><span class="c1">// add your own code here</span> <span class="w"> </span><span class="n">Console</span><span class="o">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="s">'Hello World.'</span><span class="p">)</span><span class="o">;</span> <span class="k">end</span><span class="o">;</span> <span class="k">end</span><span class="o">.</span> </pre></div> <p>Files are always ended with <code>end.</code> </p> <div class="mw-heading mw-heading3"><h3 id="Types">Types</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=3" title="Edit section: Types"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>As a .NET language, Oxygene uses the .NET type system: There are value types (like structs) and reference types (like arrays or classes). </p><p>Although it does not introduce own "pre-defined" types, Oxygene offers more "pascalish" generic names for some of them,<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> so that for example the <code>System.Int32</code> can be used as <code>Integer</code> and <code>Boolean</code> (<code>System.Boolean</code>), <code>Char</code> (<code>System.Char</code>), <code>Real</code> (<code>System.Double</code>) join the family of pascal-typenames, too. The struct character of these types, which is part of .NET, is fully preserved. </p><p>As in all .NET languages types in Oxygene have a visibility. In Oxygene the default visibility is <code>assembly</code>, which is equivalent to the <code>internal</code> visibility in C#. The other possible type visibility is <code>public</code>. </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">type</span> <span class="w"> </span><span class="n">MyClass</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kp">public</span><span class="w"> </span><span class="k">class</span> <span class="k">end</span><span class="o">;</span> </pre></div> <p>The visibility can be set for every type defined (classes, interfaces, records, ...). </p><p>An alias name can be defined for types, which can be used locally or in other Oxygene assemblies. </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">type</span> <span class="w"> </span><span class="n">IntList</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kp">public</span><span class="w"> </span><span class="n">List</span><span class="o"><</span><span class="kt">Integer</span><span class="o">>;</span><span class="w"> </span><span class="c1">//visible in other Oxygene-assemblies</span> <span class="w"> </span><span class="n">SecretEnumerable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">IEnumerable</span><span class="o"><</span><span class="k">String</span><span class="o">>;</span><span class="w"> </span><span class="c1">//not visible in other assemblies</span> </pre></div> <p>Public type aliases won't be visible for other languages. </p> <div class="mw-heading mw-heading4"><h4 id="Records">Records</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=4" title="Edit section: Records"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Records are what .NET structs are called in Oxygene. They are declared just like classes, but with the <code>record</code> keyword: </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">type</span> <span class="w"> </span><span class="n">MyRecord</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">record</span> <span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">Foo</span><span class="o">;</span> <span class="w"> </span><span class="k">end</span><span class="o">;</span> </pre></div> <p>As they're just .NET structs, records can have fields, methods and properties, but do not have <a href="/wiki/Inheritance_(object-oriented_programming)" title="Inheritance (object-oriented programming)">inheritance</a> and cannot implement <a href="/wiki/Interface_(object-oriented_programming)" title="Interface (object-oriented programming)">interfaces</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Interfaces">Interfaces</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=5" title="Edit section: Interfaces"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Interfaces are a very important concept in the .NET world, the framework itself makes heavy use of them. Interfaces are the specification of a small set of methods, properties and events a class has to implement when implementing the interface. For example, the interface <code>IEnumerable<T></code> specifies the <code>GetEnumerator</code> method which is used to iterate over sequences. </p><p>Interfaces are declared just like classes: </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">type</span> <span class="w"> </span><span class="n">MyInterface</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kp">public</span><span class="w"> </span><span class="k">interface</span> <span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">MakeItSo</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">IEnumerable</span><span class="o">;</span> <span class="w"> </span><span class="k">property</span><span class="w"> </span><span class="py">Bar</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">String</span><span class="w"> </span><span class="kp">read</span><span class="w"> </span><span class="kp">write</span><span class="o">;</span> <span class="w"> </span><span class="k">end</span><span class="o">;</span> </pre></div> <p>Please notice, that for properties the getter and setter are not explicitly specified. </p> <div class="mw-heading mw-heading3"><h3 id="Delegates">Delegates</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=6" title="Edit section: Delegates"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Delegates define signatures for methods, so that these methods can be passed in parameters (e.g. callbacks) or stored in variables, etc. They're the type-safe NET equivalent to function pointers. They're also used in events. When assigning a method to a delegate, one has to use the <code>@</code> operator, so the compiler knows, that one doesn't want to call the method but just assign it. </p><p>Oxygene can create anonymous delegates; for example methods can be passed to the <code>Invoke</code> method of a control without declaring the delegate: </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="hll"><span class="n">method</span><span class="w"> </span><span class="n">MainForm</span><span class="o">.</span><span class="n">MainForm_Load</span><span class="p">(</span><span class="n">sender</span><span class="o">:</span><span class="w"> </span><span class="n">System</span><span class="o">.</span><span class="k">Object</span><span class="o">;</span><span class="w"> </span><span class="n">e</span><span class="o">:</span><span class="w"> </span><span class="n">System</span><span class="o">.</span><span class="n">EventArgs</span><span class="p">)</span><span class="o">;</span> </span><span class="k">begin</span> <span class="w"> </span><span class="n">Invoke</span><span class="p">(</span><span class="o">@</span><span class="n">DoSomething</span><span class="p">)</span><span class="o">;</span> <span class="k">end</span><span class="o">;</span> </pre></div> <p>An anonymous delegate with the signature of the method <code>DoSomething</code> will be created by the compiler. </p><p>Oxygene supports polymorphic delegates, which means, that delegates which have parameters of descending types are assignment compatible. Assume two classes <code>MyClass</code> and <code>MyClassEx = class(MyClass)</code>, then in the following code <code>BlubbEx</code> is assignment compatible to <code>Blubb</code>. </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">type</span> <span class="w"> </span><span class="n">delegate</span><span class="w"> </span><span class="n">Blubb</span><span class="p">(</span><span class="n">sender</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">Object</span><span class="o">;</span><span class="w"> </span><span class="n">m</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">MyClass</span><span class="p">)</span><span class="o">;</span> <span class="w"> </span><span class="n">delegate</span><span class="w"> </span><span class="n">BlubbEx</span><span class="p">(</span><span class="n">sender</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">Object</span><span class="o">;</span><span class="w"> </span><span class="n">mx</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">MyClassEx</span><span class="p">)</span><span class="o">;</span> </pre></div> <p>Fields can be used to delegate the implementation of an interface, if the type they're of implements this interface: </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="n">Implementor</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kp">public</span><span class="w"> </span><span class="k">class</span><span class="p">(</span><span class="n">IMyInterface</span><span class="p">)</span> <span class="w"> </span><span class="c1">// ... implement interface ...</span> <span class="k">end</span><span class="o">;</span> <span class="n">MyClass</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kp">public</span><span class="w"> </span><span class="k">class</span><span class="p">(</span><span class="n">IMyInterface</span><span class="p">)</span> <span class="w"> </span><span class="n">fSomeImplementor</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">Implementor</span><span class="o">;</span><span class="w"> </span><span class="kp">public</span><span class="w"> </span><span class="n">implements</span><span class="w"> </span><span class="n">IMyInterface</span><span class="o">;</span><span class="w"> </span><span class="c1">//takes care of implementing the interface</span> <span class="k">end</span><span class="o">;</span> </pre></div> <p>In this example the compiler will create public methods and properties in <code>MyClass</code>, which call the methods / properties of <code>fSomeImplementor</code>, to implement the members of IMyInterface. This can be used to provide mixin-like functionality.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Anonymous_methods">Anonymous methods</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=7" title="Edit section: Anonymous methods"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Anonymous methods are implemented inside other methods. They are not accessible outside of the method unless stored inside a delegate field. Anonymous methods can use the local variables of the method they're implemented in and the fields of the class they belong to. </p><p>Anonymous methods are especially useful when working with code that is supposed to be executed in a GUI thread, which is done in .NET by passing a method do the <code>Invoke</code> method (<code>Control.Invoke</code> in WinForms, <code>Dispatcher.Invoke</code> in WPF): </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="hll"><span class="n">method</span><span class="w"> </span><span class="n">Window1</span><span class="o">.</span><span class="n">PredictNearFuture</span><span class="o">;</span><span class="w"> </span><span class="c1">//declared as async in the interface</span> </span><span class="k">begin</span> <span class="w"> </span><span class="c1">// ... Calculate result here, store in variable "theFuture"</span> <span class="w"> </span><span class="n">Dispatcher</span><span class="o">.</span><span class="n">Invoke</span><span class="p">(</span><span class="n">DispatcherPriority</span><span class="o">.</span><span class="n">ApplicationIdle</span><span class="o">,</span><span class="w"> </span><span class="n">method</span><span class="o">;</span><span class="w"> </span><span class="k">begin</span> <span class="w"> </span><span class="n">theFutureTextBox</span><span class="o">.</span><span class="n">Text</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">theFuture</span><span class="o">;</span> <span class="w"> </span><span class="k">end</span><span class="p">)</span><span class="o">;</span> <span class="k">end</span><span class="o">;</span> </pre></div> <p>Anonymous methods can have parameters, too: </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="hll"><span class="n">method</span><span class="w"> </span><span class="n">Window1</span><span class="o">.</span><span class="n">PredictNearFuture</span><span class="o">;</span><span class="w"> </span><span class="c1">//declared as async in the interface</span> </span><span class="k">begin</span> <span class="w"> </span><span class="c1">// ... Calculate result here, store in variable "theFuture"</span> <span class="w"> </span><span class="n">Dispatcher</span><span class="o">.</span><span class="n">Invoke</span><span class="p">(</span><span class="n">DispatcherPriority</span><span class="o">.</span><span class="n">ApplicationIdle</span><span class="o">,</span><span class="w"> </span><span class="n">method</span><span class="p">(</span><span class="n">aFuture</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">String</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="k">begin</span> <span class="w"> </span><span class="n">theFutureTextBox</span><span class="o">.</span><span class="n">Text</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">aFuture</span><span class="w"> </span><span class="o">;</span> <span class="w"> </span><span class="k">end</span><span class="o">,</span><span class="w"> </span><span class="n">theFuture</span><span class="p">)</span><span class="o">;</span> <span class="k">end</span><span class="o">;</span> </pre></div> <p>Both source codes use <a href="#Delegates">anonymous delegates</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Property_notification">Property notification</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=8" title="Edit section: Property notification"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Property notification is used mainly for data binding, when the <a href="/wiki/Graphical_user_interface" title="Graphical user interface">GUI</a> has to know when the value of a property changes. The .NET framework provides the interfaces <code>INotifyPropertyChanged</code> and <code>INotifyPropertyChanging</code> (in .NET 3.5) for this purpose. These interfaces define events which must be fired when a property is changed / was changed. </p><p>Oxygene provides the <code>notify</code> modifier, which can be used on properties. If this modifier is used, the compiler will add the interfaces to the class, implement them and create code to raise the events when the property changes / was changed. </p> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="k">property</span><span class="w"> </span><span class="py">Foo</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">String</span><span class="w"> </span><span class="kp">read</span><span class="w"> </span><span class="nf">fFoo</span><span class="w"> </span><span class="kp">write</span><span class="w"> </span><span class="nf">SetFoo</span><span class="o">;</span><span class="w"> </span><span class="n">notify</span><span class="o">;</span> <span class="k">property</span><span class="w"> </span><span class="py">Bar</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">String</span><span class="o">;</span><span class="w"> </span><span class="n">notify</span><span class="w"> </span><span class="s">'Blubb'</span><span class="o">;</span><span class="w"> </span><span class="c1">//will notify that property "Blubb" was changed instead of "Bar"</span> </pre></div> <p>The modifier can be used on properties which have a setter method. The code to raise the events will then be added to this method during compile time. </p> <div class="mw-heading mw-heading2"><h2 id="Code_examples">Code examples</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=9" title="Edit section: Code examples"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Hello_World">Hello World</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=10" title="Edit section: Hello World"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="hll"><span class="n">namespace</span><span class="w"> </span><span class="n">HelloWorld</span><span class="o">;</span> </span> <span class="k">interface</span> <span class="k">type</span> <span class="w"> </span><span class="n">HelloClass</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">class</span> <span class="w"> </span><span class="kp">public</span> <span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">Main</span><span class="o">;</span> <span class="w"> </span><span class="k">end</span><span class="o">;</span> <span class="k">implementation</span> <span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">HelloClass</span><span class="o">.</span><span class="n">Main</span><span class="o">;</span> <span class="k">begin</span> <span class="w"> </span><span class="nb">writeLn</span><span class="p">(</span><span class="s">'Hello World!'</span><span class="p">)</span><span class="o">;</span> <span class="k">end</span><span class="o">;</span> <span class="k">end</span><span class="o">.</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Generic_container">Generic container</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=11" title="Edit section: Generic container"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="hll"><span class="n">namespace</span><span class="w"> </span><span class="n">GenericContainer</span><span class="o">;</span> </span> <span class="k">interface</span> <span class="k">type</span> <span class="w"> </span><span class="n">TestApp</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">class</span> <span class="w"> </span><span class="kp">public</span> <span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">Main</span><span class="o">;</span> <span class="w"> </span><span class="k">end</span><span class="o">;</span> <span class="w"> </span><span class="n">Person</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">class</span> <span class="w"> </span><span class="kp">public</span> <span class="w"> </span><span class="k">property</span><span class="w"> </span><span class="py">FirstName</span><span class="o">:</span><span class="w"> </span><span class="k">String</span><span class="o">;</span> <span class="w"> </span><span class="k">property</span><span class="w"> </span><span class="py">LastName</span><span class="o">:</span><span class="w"> </span><span class="k">String</span><span class="o">;</span><span class="w"> </span> <span class="w"> </span><span class="k">end</span><span class="o">;</span> <span class="k">implementation</span> <span class="k">uses</span> <span class="w"> </span><span class="n">System</span><span class="o">.</span><span class="n">Collections</span><span class="o">.</span><span class="n">Generic</span><span class="o">;</span> <span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">TestApp</span><span class="o">.</span><span class="n">Main</span><span class="o">;</span> <span class="k">begin</span> <span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">myList</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">List</span><span class="o"><</span><span class="n">Person</span><span class="o">>;</span><span class="w"> </span><span class="c1">//type inference</span> <span class="w"> </span><span class="n">myList</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">Person</span><span class="p">(</span><span class="n">FirstName</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">'John'</span><span class="o">,</span><span class="w"> </span><span class="n">LastName</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">'Doe'</span><span class="p">))</span><span class="o">;</span><span class="w"> </span> <span class="w"> </span><span class="n">myList</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">Person</span><span class="p">(</span><span class="n">FirstName</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">'Jane'</span><span class="o">,</span><span class="w"> </span><span class="n">LastName</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">'Doe'</span><span class="p">))</span><span class="o">;</span> <span class="w"> </span><span class="n">myList</span><span class="o">.</span><span class="n">Add</span><span class="p">(</span><span class="k">new</span><span class="w"> </span><span class="n">Person</span><span class="p">(</span><span class="n">FirstName</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">'James'</span><span class="o">,</span><span class="w"> </span><span class="n">LastName</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">'Doe'</span><span class="p">))</span><span class="o">;</span><span class="w"> </span> <span class="w"> </span><span class="n">Console</span><span class="o">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="n">myList</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">FirstName</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="c1">//No casting needed</span> <span class="w"> </span><span class="n">Console</span><span class="o">.</span><span class="n">ReadLine</span><span class="o">;</span><span class="w"> </span> <span class="k">end</span><span class="o">;</span> <span class="k">end</span><span class="o">.</span> </pre></div> <div class="mw-heading mw-heading3"><h3 id="Generic_method">Generic method</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=12" title="Edit section: Generic method"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-delphi mw-content-ltr" dir="ltr"><pre><span></span><span class="hll"><span class="n">namespace</span><span class="w"> </span><span class="n">GenericMethodTest</span><span class="o">;</span> </span> <span class="k">interface</span> <span class="k">type</span> <span class="n">GenericMethodTest</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">static</span><span class="w"> </span><span class="k">class</span> <span class="kp">public</span> <span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">Main</span><span class="o">;</span> <span class="kp">private</span> <span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="nb">Swap</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="p">(</span><span class="k">var</span><span class="w"> </span><span class="n">left</span><span class="o">,</span><span class="w"> </span><span class="n">right</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">T</span><span class="p">)</span><span class="o">;</span> <span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">DoSwap</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="p">(</span><span class="n">left</span><span class="o">,</span><span class="w"> </span><span class="n">right</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">T</span><span class="p">)</span><span class="o">;</span> <span class="k">end</span><span class="o">;</span> <span class="k">implementation</span> <span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">GenericMethodTest</span><span class="o">.</span><span class="n">DoSwap</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="p">(</span><span class="n">left</span><span class="o">,</span><span class="w"> </span><span class="n">right</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">T</span><span class="p">)</span><span class="o">;</span> <span class="k">begin</span> <span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">left</span><span class="o">;</span> <span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">right</span><span class="o">;</span> <span class="w"> </span><span class="n">Console</span><span class="o">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="s">'Type: {0}'</span><span class="o">,</span><span class="w"> </span><span class="n">typeof</span><span class="p">(</span><span class="n">T</span><span class="p">))</span><span class="o">;</span> <span class="w"> </span><span class="n">Console</span><span class="o">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="s">'-> a = {0}, b = {1}'</span><span class="o">,</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">,</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="o">;</span> <span class="w"> </span><span class="nb">Swap</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="p">(</span><span class="k">var</span><span class="w"> </span><span class="n">a</span><span class="o">,</span><span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="o">;</span> <span class="w"> </span><span class="n">Console</span><span class="o">.</span><span class="n">WriteLine</span><span class="p">(</span><span class="s">'-> a = {0}, b = {1}'</span><span class="o">,</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">,</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="o">;</span> <span class="k">end</span><span class="o">;</span> <span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">GenericMethodTest</span><span class="o">.</span><span class="n">Main</span><span class="o">;</span> <span class="k">begin</span> <span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">23</span><span class="o">;</span><span class="c1">// type inference</span> <span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="mi">15</span><span class="o">;</span> <span class="w"> </span><span class="n">DoSwap</span><span class="o"><</span><span class="kt">Integer</span><span class="o">></span><span class="p">(</span><span class="n">a</span><span class="o">,</span><span class="w"> </span><span class="n">b</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="c1">// no downcasting to Object in this method.</span> <span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">aa</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">'abc'</span><span class="o">;</span><span class="c1">// type inference</span> <span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">bb</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="s">'def'</span><span class="o">;</span> <span class="w"> </span><span class="n">DoSwap</span><span class="o"><</span><span class="k">String</span><span class="o">></span><span class="p">(</span><span class="n">aa</span><span class="o">,</span><span class="w"> </span><span class="n">bb</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="c1">// no downcasting to Object in this method.</span> <span class="w"> </span><span class="n">DoSwap</span><span class="p">(</span><span class="mf">1.1</span><span class="o">,</span><span class="w"> </span><span class="mf">1.2</span><span class="p">)</span><span class="o">;</span><span class="w"> </span><span class="c1">// type inference for generic parameters</span> <span class="w"> </span><span class="n">Console</span><span class="o">.</span><span class="n">ReadLine</span><span class="p">()</span><span class="o">;</span> <span class="k">end</span><span class="o">;</span> <span class="k">class</span><span class="w"> </span><span class="n">method</span><span class="w"> </span><span class="n">GenericMethodTest</span><span class="o">.</span><span class="n">Swap</span><span class="o"><</span><span class="n">T</span><span class="o">></span><span class="p">(</span><span class="k">var</span><span class="w"> </span><span class="n">left</span><span class="o">,</span><span class="w"> </span><span class="n">right</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">T</span><span class="p">)</span><span class="o">;</span> <span class="k">begin</span> <span class="w"> </span><span class="k">var</span><span class="w"> </span><span class="n">temp</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">left</span><span class="o">;</span> <span class="w"> </span><span class="n">left</span><span class="o">:=</span><span class="w"> </span><span class="n">right</span><span class="o">;</span> <span class="w"> </span><span class="n">right</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">temp</span><span class="o">;</span> <span class="k">end</span><span class="o">;</span> <span class="k">end</span><span class="o">.</span> </pre></div> <p>Program output: </p> <pre>Type: System.Int32 -> a = 23, b = 15 -> a = 15, b = 23 Type: System.String -> a = abc, b = def -> a = def, b = abc Type: System.Double -> a = 1,1, b = 1,2 -> a = 1,2, b = 1,1 </pre> <div class="mw-heading mw-heading2"><h2 id="Differences_between_Delphi_and_Oxygene">Differences between Delphi and Oxygene</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=13" title="Edit section: Differences between Delphi and Oxygene"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">unit</code>: Replaced with the <a href="/wiki/Namespace" title="Namespace">namespace</a> keyword. Since Oxygene doesn't compile per-file but per-project, it does not depend on the name of the file. Instead the unit or namespace keyword is used to denote the default namespace that all types are defined in for that file</li> <li><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">procedure</code> and <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">function</code>: <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">method</code> is the preferred keyword, though <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">procedure</code> and <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">function</code> still work.</li> <li><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">overload</code>: In Oxygene all methods are overloaded by default, so no special keyword is needed for this</li> <li><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">.Create()</code>: This constructor call has been replaced by the <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">new</code> keyword. It can still be enabled in the <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">project options</code> for legacy reasons</li> <li><code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">string</code>: Characters in strings are zero-based and read-only. Strings can have nil values, so testing against empty string is not always sufficient.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Criticism">Criticism</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=14" title="Edit section: Criticism"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Some people<sup class="noprint Inline-Template" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Manual_of_Style/Words_to_watch#Unsupported_attributions" title="Wikipedia:Manual of Style/Words to watch"><span title="The material near this tag possibly uses too-vague attribution or weasel words. (November 2021)">who?</span></a></i>]</sup> would like to port their Win32 Delphi code to Oxygene without making major changes. This is not possible because while Oxygene looks like Delphi, there are enough changes so as to make it incompatible for a simple recompile. While the name gives it the appearance of another version of Delphi, that is not completely true.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> </p><p>On top of the language difference, the <a href="/wiki/Visual_Component_Library" title="Visual Component Library">Visual Component Library</a> framework is not available in Oxygene.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> This makes porting even more difficult because classic Delphi code relies heavily on the VCL. </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=15" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1266661725">.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}</style><ul role="navigation" aria-label="Portals" class="noprint portalbox portalborder portalright"> <li class="portalbox-entry"><span class="portalbox-image"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Octicons-terminal.svg" class="mw-file-description"><img alt="icon" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/24px-Octicons-terminal.svg.png" decoding="async" width="24" height="28" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/37px-Octicons-terminal.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/49px-Octicons-terminal.svg.png 2x" data-file-width="896" data-file-height="1024" /></a></span></span><span class="portalbox-link"><a href="/wiki/Portal:Computer_programming" title="Portal:Computer programming">Computer programming portal</a></span></li></ul> <ul><li><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li> <li><a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a></li> <li><a href="/wiki/Embarcadero_Delphi" class="mw-redirect" title="Embarcadero Delphi">Embarcadero Delphi</a></li> <li><a href="/wiki/Free_Pascal" title="Free Pascal">Free Pascal</a></li> <li><a href="/wiki/Eiffel_(programming_language)" title="Eiffel (programming language)">Eiffel</a></li> <li><a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=16" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width reflist-columns-2"> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.elementscompiler.com/elements/oxygene/history.aspx">"Evolution of the Oxygene Language | Oxygene | Elements"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180105180341/https://www.elementscompiler.com/elements/oxygene/history.aspx">Archived</a> from the original on 2018-01-05<span class="reference-accessdate">. Retrieved <span class="nowrap">2018-01-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Evolution+of+the+Oxygene+Language+%26%23124%3B+Oxygene+%26%23124%3B+Elements&rft_id=https%3A%2F%2Fwww.elementscompiler.com%2Felements%2Foxygene%2Fhistory.aspx&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOxygene+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.embarcadero.com/products/prism">"Embarcadero Prism page, at the bottom of the page an image stating it is powered by RemObjects Oxygene"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20111227171846/https://www.embarcadero.com/products/prism">Archived</a> from the original on 2011-12-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2011-12-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Embarcadero+Prism+page%2C+at+the+bottom+of+the+page+an+image+stating+it+is+powered+by+RemObjects+Oxygene&rft_id=https%3A%2F%2Fwww.embarcadero.com%2Fproducts%2Fprism&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOxygene+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20130620145521/https://blogs.remobjects.com/blogs/mh/2013/04/17/p5822">"Prism XE4, Where Art Thou? | RemObjects Blogs"</a>. Archived from <a rel="nofollow" class="external text" href="https://blogs.remobjects.com/blogs/mh/2013/04/17/p5822">the original</a> on 2013-06-20<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-06-06</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Prism+XE4%2C+Where+Art+Thou%3F+%26%23124%3B+RemObjects+Blogs&rft_id=https%3A%2F%2Fblogs.remobjects.com%2Fblogs%2Fmh%2F2013%2F04%2F17%2Fp5822&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOxygene+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110708174151/https://prismwiki.codegear.com/en/Operator_Overloading">"Operator Overloading - Delphi Prism"</a>. Archived from <a rel="nofollow" class="external text" href="https://prismwiki.codegear.com/en/Operator_Overloading">the original</a> on 2011-07-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-01-09</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Operator+Overloading+-+Delphi+Prism&rft_id=https%3A%2F%2Fprismwiki.codegear.com%2Fen%2FOperator_Overloading&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOxygene+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110708174159/https://prismwiki.codegear.com/en/Built-In_Types">"Built-In Types - Delphi Prism"</a>. Archived from <a rel="nofollow" class="external text" href="https://prismwiki.codegear.com/en/Built-In_Types">the original</a> on 2011-07-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-01-10</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Built-In+Types+-+Delphi+Prism&rft_id=https%3A%2F%2Fprismwiki.codegear.com%2Fen%2FBuilt-In_Types&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOxygene+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20110708174212/https://prismwiki.codegear.com/en/Provide_Mixin-like_functionality">"Provide Mixin-like functionality - Delphi Prism"</a>. Archived from <a rel="nofollow" class="external text" href="https://prismwiki.codegear.com/en/Provide_Mixin-like_functionality">the original</a> on 2011-07-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2010-01-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Provide+Mixin-like+functionality+-+Delphi+Prism&rft_id=https%3A%2F%2Fprismwiki.codegear.com%2Fen%2FProvide_Mixin-like_functionality&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOxygene+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20121025132441/https://stackoverflow.com/questions/242584/will-you-use-delphi-prism">"A Stack Overflow discussion where people remark that Oxygene is not Delphi Win32"</a>. Archived from <a rel="nofollow" class="external text" href="https://stackoverflow.com/questions/242584/will-you-use-delphi-prism">the original</a> on 2012-10-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-07-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=A+Stack+Overflow+discussion+where+people+remark+that+Oxygene+is+not+Delphi+Win32&rft_id=https%3A%2F%2Fstackoverflow.com%2Fquestions%2F242584%2Fwill-you-use-delphi-prism&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOxygene+%28programming+language%29" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222" /><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.infoq.com/news/2009/09/Delphi-Prism-2010">"Delphi Prism 2010 review where they state in the third paragraph that VCL.net is not available"</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20090904215434/https://www.infoq.com/news/2009/09/Delphi-Prism-2010">Archived</a> from the original on 2009-09-04<span class="reference-accessdate">. Retrieved <span class="nowrap">2009-12-14</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Delphi+Prism+2010+review+where+they+state+in+the+third+paragraph+that+VCL.net+is+not+available&rft_id=https%3A%2F%2Fwww.infoq.com%2Fnews%2F2009%2F09%2FDelphi-Prism-2010&rfr_id=info%3Asid%2Fen.wikipedia.org%3AOxygene+%28programming+language%29" class="Z3988"></span></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Oxygene_(programming_language)&action=edit&section=17" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="https://www.remobjects.com/oxygene">Official website</a></span></span></li></ul> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style><style data-mw-deduplicate="TemplateStyles:r886047488">.mw-parser-output .nobold{font-weight:normal}</style></div><div role="navigation" class="navbox" aria-labelledby="Pascal_programming_language_family576" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Pascal_programming_language_family" title="Template:Pascal programming language family"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Pascal_programming_language_family" title="Template talk:Pascal programming language family"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Pascal_programming_language_family" title="Special:EditPage/Template:Pascal programming language family"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Pascal_programming_language_family576" style="font-size:114%;margin:0 4em"><a href="/wiki/Pascal_(programming_language)" title="Pascal (programming language)">Pascal programming language</a> family</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Programming_language#Dialects,_flavors_and_implementations" title="Programming language">Dialects</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a></li> <li><a href="/wiki/Object_Pascal" title="Object Pascal">Object Pascal</a></li> <li><a href="/wiki/Pascal_Script" title="Pascal Script">Pascal Script</a></li> <li><a class="mw-selflink selflink">Oxygene</a></li> <li><a href="/wiki/Clascal" title="Clascal">Clascal</a></li> <li><a href="/wiki/Concurrent_Pascal" title="Concurrent Pascal">Concurrent Pascal</a></li> <li><a href="/wiki/Joyce_(programming_language)" title="Joyce (programming language)">Joyce</a></li> <li><a href="/wiki/SuperPascal" title="SuperPascal">SuperPascal</a></li></ul> </div></td><td class="noviewer navbox-image" rowspan="6" style="width:1px;padding:0 0 0 2px"><div><span typeof="mw:File"><a href="/wiki/File:Niklaus_Wirth,_UrGU_(cropped).jpg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/2/22/Niklaus_Wirth%2C_UrGU_%28cropped%29.jpg/90px-Niklaus_Wirth%2C_UrGU_%28cropped%29.jpg" decoding="async" width="90" height="114" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/22/Niklaus_Wirth%2C_UrGU_%28cropped%29.jpg/135px-Niklaus_Wirth%2C_UrGU_%28cropped%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/22/Niklaus_Wirth%2C_UrGU_%28cropped%29.jpg/180px-Niklaus_Wirth%2C_UrGU_%28cropped%29.jpg 2x" data-file-width="306" data-file-height="389" /></a></span></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Compiler" title="Compiler">Compilers</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Current</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Delphi_(software)" title="Delphi (software)">Delphi</a> (<a href="/wiki/History_of_Delphi_(software)" title="History of Delphi (software)">history</a>)</li> <li><a class="mw-selflink selflink">Oxygene</a></li> <li><a href="/wiki/Pascal_(programming_language)#Compilers_and_interpreters" title="Pascal (programming language)">VSI Pascal</a></li> <li><a href="/wiki/IP_Pascal" title="IP Pascal">IP Pascal</a></li> <li><a href="/wiki/Free_Pascal" title="Free Pascal">Free Pascal</a> (<a href="/wiki/Lazarus_(software)" title="Lazarus (software)">Lazarus</a>)</li> <li><a href="/wiki/PascalABC.NET" title="PascalABC.NET">PascalABC.NET</a></li> <li><a href="/wiki/GNU_Pascal" title="GNU Pascal">GNU Pascal</a></li> <li><a href="/wiki/Turbo51" title="Turbo51">Turbo51</a></li> <li><a href="/wiki/Pic_Micro_Pascal" title="Pic Micro Pascal">Pic Micro Pascal</a></li> <li><a href="/wiki/Amsterdam_Compiler_Kit" title="Amsterdam Compiler Kit">ACK</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Discontinued</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Virtual_Pascal" title="Virtual Pascal">Virtual Pascal</a></li> <li><a href="/wiki/Apple_Pascal" title="Apple Pascal">Apple Pascal</a></li> <li><a href="/wiki/Borland_Kylix" title="Borland Kylix">Borland Kylix</a></li> <li><a href="/wiki/Turbo_Pascal" title="Turbo Pascal">Turbo Pascal</a></li> <li><a href="/wiki/Microsoft_Pascal" title="Microsoft Pascal">Microsoft Pascal</a></li> <li><a href="/wiki/UCSD_Pascal" title="UCSD Pascal">UCSD Pascal</a></li> <li><a href="/wiki/JRT_Pascal" title="JRT Pascal">JRT Pascal</a></li> <li><a href="/wiki/Pascal/MT%2B" title="Pascal/MT+">Pascal/MT+</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/API" title="API">API</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Component_Library_for_Cross_Platform" title="Component Library for Cross Platform">CLX</a></li> <li><a href="/wiki/Free_Component_Library" title="Free Component Library">FCL</a></li> <li><a href="/wiki/FireMonkey" title="FireMonkey">FireMonkey</a></li> <li><a href="/wiki/Lazarus_Component_Library" title="Lazarus Component Library">LCL</a></li> <li><a href="/wiki/Object_Windows_Library" title="Object Windows Library">Object Windows Library</a></li> <li><a href="/wiki/OpenWire_(library)" title="OpenWire (library)">OpenWire</a></li> <li><a href="/wiki/Free_Pascal_Runtime_Library" title="Free Pascal Runtime Library">RTL</a></li> <li><a href="/wiki/Turbo_Vision" title="Turbo Vision">Turbo Vision</a></li> <li><a href="/wiki/Visual_Component_Library" title="Visual Component Library">Visual Component Library</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Microcomputer" title="Microcomputer">Microcomputer</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Pascal_MicroEngine" title="Pascal MicroEngine">Pascal MicroEngine</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Comparison_of_programming_languages" title="Comparison of programming languages">Comparisons</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Comparison_of_Pascal_and_C" title="Comparison of Pascal and C">Pascal and C</a></li> <li><a href="/wiki/Comparison_of_Pascal_and_Delphi" title="Comparison of Pascal and Delphi">Pascal and Delphi</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Designer</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="3"><div> <ul><li><a href="/wiki/Generic_programming#Genericity_in_Pascal" title="Generic programming">Genericity</a></li></ul> <dl><dt><span class="nobold">Related to</span></dt> <dd><a href="/wiki/ALGOL" title="ALGOL">ALGOL</a> (1958)</dd> <dd><a href="/wiki/Modula-2" title="Modula-2">Modula-2</a> (1977)</dd> <dd><a href="/wiki/Ada_(programming_language)" title="Ada (programming language)">Ada</a> (1983)</dd> <dd><a href="/wiki/Oberon_(programming_language)" title="Oberon (programming language)">Oberon</a> (1986)</dd> <dd><a href="/wiki/Modula-3" title="Modula-3">Modula-3</a> (1988)</dd> <dd><a href="/wiki/Oberon-2" title="Oberon-2">Oberon-2</a> (1991)</dd> <dd><a href="/wiki/Component_Pascal" title="Component Pascal">Component Pascal</a> (1991)</dd></dl> </div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235" /></div><div role="navigation" class="navbox" aria-labelledby="Common_Language_Infrastructure106" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231" /><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Common_Language_Infrastructure" title="Template:Common Language Infrastructure"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Common_Language_Infrastructure" title="Template talk:Common Language Infrastructure"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Common_Language_Infrastructure" title="Special:EditPage/Template:Common Language Infrastructure"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Common_Language_Infrastructure106" style="font-size:114%;margin:0 4em"><a href="/wiki/Common_Language_Infrastructure" title="Common Language Infrastructure">Common Language Infrastructure</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Architecture</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Application_domain" title="Application domain">Application domain</a></li> <li><a href="/wiki/Code_Access_Security" title="Code Access Security">Code Access Security</a></li> <li><a href="/wiki/Common_Intermediate_Language" title="Common Intermediate Language">Common Intermediate Language</a> <ul><li><a href="/wiki/List_of_CIL_instructions" title="List of CIL instructions">instructions</a></li></ul></li> <li><a href="/wiki/Common_Type_System" title="Common Type System">Common Type System</a></li> <li><a href="/wiki/Platform_Invocation_Services" title="Platform Invocation Services">Platform Invocation Services</a></li> <li><a href="/wiki/Virtual_Execution_System" title="Virtual Execution System">Virtual Execution System</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Components</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Assembly_(CLI)" title="Assembly (CLI)">Assembly</a></li> <li><a href="/wiki/Delegate_(CLI)" title="Delegate (CLI)">Delegate</a></li> <li><a href="/wiki/Global_Assembly_Cache" title="Global Assembly Cache">Global Assembly Cache</a></li> <li><a href="/wiki/Manifest_(CLI)" title="Manifest (CLI)">Manifest</a></li> <li><a href="/wiki/Metadata_(CLI)" title="Metadata (CLI)">Metadata</a></li> <li><a href="/wiki/Standard_Libraries_(CLI)" title="Standard Libraries (CLI)">Standard Libraries</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Implementations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Microsoft</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/.NET" title=".NET">.NET</a></li> <li><a href="/wiki/.NET_Framework" title=".NET Framework">.NET Framework</a></li> <li><a href="/wiki/.NET_Compact_Framework" title=".NET Compact Framework">.NET Compact Framework</a></li> <li><a href="/wiki/.NET_Micro_Framework" title=".NET Micro Framework">.NET Micro Framework</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Mono_(software)" title="Mono (software)">Mono</a></li> <li><a href="/wiki/DotGNU" title="DotGNU">DotGNU</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/List_of_CLI_languages" title="List of CLI languages">Languages</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Major languages</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li> <li><a href="/wiki/Visual_Basic_.NET" class="mw-redirect" title="Visual Basic .NET">Visual Basic</a></li> <li><a href="/wiki/F_Sharp_(programming_language)" title="F Sharp (programming language)">F#</a></li> <li><a href="/wiki/PowerShell" title="PowerShell">PowerShell</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Axum_(programming_language)" title="Axum (programming language)">Axum</a></li> <li><a href="/wiki/A_Sharp_(.NET)" title="A Sharp (.NET)">A#</a></li> <li><a href="/wiki/Boo_(programming_language)" title="Boo (programming language)">Boo</a></li> <li><a href="/wiki/Cobra_(programming_language)" title="Cobra (programming language)">Cobra</a></li> <li><a href="/wiki/C%2B%2B/CLI" title="C++/CLI">C++/CLI</a></li> <li><a href="/wiki/IronScheme" title="IronScheme">IronScheme</a></li> <li><a href="/wiki/IronPython" title="IronPython">IronPython</a></li> <li><a href="/wiki/IronRuby" title="IronRuby">IronRuby</a></li> <li><a href="/wiki/JScript_.NET" title="JScript .NET">JScript .NET</a></li> <li><a href="/wiki/Visual_J_Sharp" title="Visual J Sharp">J#</a></li> <li><a href="/wiki/Nemerle" title="Nemerle">Nemerle</a></li> <li><a class="mw-selflink selflink">Oxygene</a></li> <li><a href="/wiki/Phalanger_(compiler)" title="Phalanger (compiler)">Phalanger</a></li> <li><a href="/wiki/Q_Sharp" title="Q Sharp">Q#</a></li> <li><a href="/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala</a></li> <li><a href="/wiki/Microsoft_Small_Basic" title="Microsoft Small Basic">Small Basic</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Comparison</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Comparison_of_C_Sharp_and_Java" title="Comparison of C Sharp and Java">C# and Java</a></li> <li><a href="/wiki/Comparison_of_C_Sharp_and_Visual_Basic_.NET" title="Comparison of C Sharp and Visual Basic .NET">C# and Visual Basic .NET</a></li> <li><a href="/wiki/Comparison_of_Visual_Basic_and_Visual_Basic_.NET" title="Comparison of Visual Basic and Visual Basic .NET">Visual Basic and Visual Basic .NET</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr></tbody></table></div> <div class="navbox-styles"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236075235" /></div><div role="navigation" class="navbox" aria-labelledby="Java_(software_platform)462" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="3"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374" /><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239400231" /><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Java_(software_platform)" title="Template:Java (software platform)"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Java_(software_platform)" title="Template talk:Java (software platform)"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:Java_(software_platform)" title="Special:EditPage/Template:Java (software platform)"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Java_(software_platform)462" style="font-size:114%;margin:0 4em"><a href="/wiki/Java_(software_platform)" title="Java (software platform)">Java (software platform)</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Platforms</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Java_virtual_machine" title="Java virtual machine">JVM</a></li> <li><a href="/wiki/Java_Platform,_Micro_Edition" title="Java Platform, Micro Edition">Java ME</a> (Micro)</li> <li><a href="/wiki/Java_Platform,_Standard_Edition" title="Java Platform, Standard Edition">Java SE</a> (Standard)</li> <li><a href="/wiki/Jakarta_EE" title="Jakarta EE">Jakarta EE</a> (Enterprise)</li> <li><a href="/wiki/Java_Card" title="Java Card">Java Card</a></li> <li><a href="/wiki/Android_software_development#SDK" title="Android software development">Android SDK</a></li> <li><a href="/wiki/GraalVM" title="GraalVM">GraalVM</a></li></ul> </div></td><td class="noviewer navbox-image" rowspan="7" style="width:1px;padding:0 0 0 2px"><div><span typeof="mw:File"><a href="/wiki/File:Duke_(Java_mascot)_waving.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Duke_%28Java_mascot%29_waving.svg/75px-Duke_%28Java_mascot%29_waving.svg.png" decoding="async" width="75" height="135" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Duke_%28Java_mascot%29_waving.svg/113px-Duke_%28Java_mascot%29_waving.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Duke_%28Java_mascot%29_waving.svg/150px-Duke_%28Java_mascot%29_waving.svg.png 2x" data-file-width="226" data-file-height="407" /></a></span></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Oracle technologies</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Squawk_virtual_machine" title="Squawk virtual machine">Squawk</a></li> <li><a href="/wiki/Java_Development_Kit" title="Java Development Kit">Java Development Kit</a></li> <li><a href="/wiki/OpenJDK" title="OpenJDK">OpenJDK</a></li> <li><a href="/wiki/Java_virtual_machine" title="Java virtual machine">Java virtual machine</a></li> <li><a href="/wiki/JavaFX" title="JavaFX">JavaFX</a></li> <li><a href="/wiki/Maxine_Virtual_Machine" title="Maxine Virtual Machine">Maxine VM</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Platform technologies</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Java_applet" title="Java applet">Applets</a></li> <li><a href="/wiki/Jakarta_Servlet" title="Jakarta Servlet">Servlets</a></li> <li><a href="/wiki/MIDlet" title="MIDlet">MIDlets</a></li> <li><a href="/wiki/Jakarta_Server_Pages" title="Jakarta Server Pages">JSP</a></li> <li><a href="/wiki/Jakarta_Faces" title="Jakarta Faces">JSF</a></li> <li><a href="/wiki/Java_Web_Start" title="Java Web Start">Web Start</a> (JNLP)</li> <li><a href="/wiki/Pack200" title="Pack200">Pack200</a></li> <li><a href="/wiki/Java_Platform_Module_System" title="Java Platform Module System">Modules</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Major third-party<br />technologies</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Blackdown_Java" title="Blackdown Java">Blackdown</a></li> <li><a href="/wiki/Eclipse_(software)" title="Eclipse (software)">Eclipse</a></li> <li><a href="/wiki/GNU_Classpath" title="GNU Classpath">GNU Classpath</a></li> <li><a href="/wiki/Google_Web_Toolkit" title="Google Web Toolkit">GWT</a></li> <li><a href="/wiki/Apache_Harmony" title="Apache Harmony">Harmony</a></li> <li><a href="/wiki/Hibernate_(framework)" title="Hibernate (framework)">Hibernate</a></li> <li><a href="/wiki/IcedTea" title="IcedTea">IcedTea</a></li> <li><a href="/wiki/Jazelle" title="Jazelle">Jazelle</a></li> <li><a href="/wiki/Spring_Framework" title="Spring Framework">Spring</a></li> <li><a href="/wiki/Apache_Struts" title="Apache Struts">Struts</a></li> <li><a href="/wiki/Oracle_TopLink" title="Oracle TopLink">TopLink</a></li> <li><a href="/wiki/WildFly" title="WildFly">WildFly</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">History</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Java_version_history" title="Java version history">Java version history</a></li> <li><a href="/wiki/Java_Community_Process" title="Java Community Process">Java Community Process</a></li> <li><a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a></li> <li><a href="/wiki/Free_Java_implementations" title="Free Java implementations">Free Java implementations</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/List_of_JVM_languages" title="List of JVM languages">JVM languages</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Java_(programming_language)" title="Java (programming language)">Java</a></li> <li><a href="/wiki/BeanShell" title="BeanShell">BeanShell</a></li> <li><a href="/wiki/Clojure" title="Clojure">Clojure</a></li> <li><a href="/wiki/Groovy_(programming_language)" class="mw-redirect" title="Groovy (programming language)">Groovy</a></li> <li><a href="/wiki/JRuby" title="JRuby">JRuby</a></li> <li><a href="/wiki/Jython" title="Jython">Jython</a></li> <li><a href="/wiki/Kotlin_(programming_language)" title="Kotlin (programming language)">Kotlin</a></li> <li><a href="/wiki/Processing" title="Processing">Processing</a></li> <li><a href="/wiki/Rhino_(JavaScript_engine)" title="Rhino (JavaScript engine)">Rhino</a></li> <li><a href="/wiki/Scala_(programming_language)" title="Scala (programming language)">Scala</a></li> <li><a class="mw-selflink selflink">Oxygene</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Community</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Professional_conference" title="Professional conference">Conferences</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/JavaOne" title="JavaOne">JavaOne</a></li> <li><a href="/wiki/Devoxx" title="Devoxx">Devoxx</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Organizations</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Apache_Software_Foundation" class="mw-redirect" title="Apache Software Foundation">Apache Software Foundation</a></li> <li><a href="/wiki/Eclipse_Foundation" title="Eclipse Foundation">Eclipse Foundation</a></li> <li><a href="/wiki/Java_Community_Process" title="Java Community Process">Java Community Process</a></li> <li><a href="/wiki/Oracle_Corporation" title="Oracle Corporation">Oracle Corporation</a></li> <li><a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>, <a href="/wiki/Sun_Microsystems_Laboratories" class="mw-redirect" title="Sun Microsystems Laboratories">Sun Microsystems Laboratories</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">People</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/James_Gosling" title="James Gosling">James Gosling</a></li> <li><a href="/wiki/Arthur_van_Hoff" title="Arthur van Hoff">Arthur van Hoff</a></li> <li><a href="/wiki/Urs_H%C3%B6lzle" title="Urs Hölzle">Urs Hölzle</a></li> <li><a href="/wiki/Patrick_Naughton" title="Patrick Naughton">Patrick Naughton</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><td class="navbox-abovebelow" colspan="3"><div><span class="noviewer" typeof="mw:File"><span title="Category"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x" data-file-width="180" data-file-height="185" /></span></span> <b><a href="/wiki/Category:Java_(programming_language)" title="Category:Java (programming language)">Category</a></b>   <span class="nowrap"><span class="noviewer" typeof="mw:File"><a href="/wiki/File:Octicons-terminal.svg" class="mw-file-description"><img alt="icon" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/24px-Octicons-terminal.svg.png" decoding="async" width="24" height="28" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/37px-Octicons-terminal.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Octicons-terminal.svg/49px-Octicons-terminal.svg.png 2x" data-file-width="896" data-file-height="1024" /></a></span> </span><a href="/wiki/Portal:Computer_programming" title="Portal:Computer programming">Computer programming portal</a></div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐api‐int.eqiad.main‐79868dc866‐mpv9s Cached time: 20250323085921 Cache expiry: 745246 Reduced expiry: true Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.579 seconds Real time usage: 0.742 seconds Preprocessor visited node count: 2214/1000000 Post‐expand include size: 79668/2097152 bytes Template argument size: 3081/2097152 bytes Highest expansion depth: 14/100 Expensive parser function count: 34/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 84273/5000000 bytes Lua time usage: 0.335/10.000 seconds Lua memory usage: 5909527/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 620.371 1 -total 26.55% 164.716 7 Template:Navbox 22.52% 139.679 1 Template:Reflist 21.38% 132.663 1 Template:Pascal_programming_language_family 19.68% 122.075 8 Template:Cite_web 18.32% 113.640 1 Template:Short_description 13.11% 81.341 1 Template:Infobox_programming_language 12.05% 74.764 1 Template:Infobox 11.01% 68.276 2 Template:Pagetype 7.94% 49.264 1 Template:Clarify --> <!-- Saved in parser cache with key enwiki:pcache:4249746:|#|:idhash:canonical and timestamp 20250323085921 and revision id 1257380261. Rendering was triggered because: api-parse --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&type=1x1&usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Oxygene_(programming_language)&oldid=1257380261">https://en.wikipedia.org/w/index.php?title=Oxygene_(programming_language)&oldid=1257380261</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:.NET_programming_languages" title="Category:.NET programming languages">.NET programming languages</a></li><li><a href="/wiki/Category:Class-based_programming_languages" title="Category:Class-based programming languages">Class-based programming languages</a></li><li><a href="/wiki/Category:Mono_(software)" title="Category:Mono (software)">Mono (software)</a></li><li><a href="/wiki/Category:Object-oriented_programming_languages" title="Category:Object-oriented programming languages">Object-oriented programming languages</a></li><li><a href="/wiki/Category:Pascal_(programming_language)_compilers" title="Category:Pascal (programming language) compilers">Pascal (programming language) compilers</a></li><li><a href="/wiki/Category:Pascal_programming_language_family" title="Category:Pascal programming language family">Pascal programming language family</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:Wikipedia_articles_needing_clarification_from_July_2014" title="Category:Wikipedia articles needing clarification from July 2014">Wikipedia articles needing clarification from July 2014</a></li><li><a href="/wiki/Category:All_articles_with_specifically_marked_weasel-worded_phrases" title="Category:All articles with specifically marked weasel-worded phrases">All articles with specifically marked weasel-worded phrases</a></li><li><a href="/wiki/Category:Articles_with_specifically_marked_weasel-worded_phrases_from_November_2021" title="Category:Articles with specifically marked weasel-worded phrases from November 2021">Articles with specifically marked weasel-worded phrases from November 2021</a></li><li><a href="/wiki/Category:Official_website_different_in_Wikidata_and_Wikipedia" title="Category:Official website different in Wikidata and Wikipedia">Official website different in Wikidata and Wikipedia</a></li><li><a href="/wiki/Category:Articles_with_example_Pascal_code" title="Category:Articles with example Pascal code">Articles with example Pascal code</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 14 November 2024, at 16:42<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Oxygene_(programming_language)&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/static/images/footer/wikimedia-button.svg" width="84" height="29"><img src="/static/images/footer/wikimedia.svg" width="25" height="25" alt="Wikimedia Foundation" lang="en" loading="lazy"></picture></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" lang="en" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Oxygene (programming language)</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>8 languages</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Add topic</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="mw-portlet mw-portlet-dock-bottom emptyPortlet" id="p-dock-bottom"> <ul> </ul> </div> <script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.eqiad.main-75687f9f4b-rln74","wgBackendResponseTime":202,"wgPageParseReport":{"limitreport":{"cputime":"0.579","walltime":"0.742","ppvisitednodes":{"value":2214,"limit":1000000},"postexpandincludesize":{"value":79668,"limit":2097152},"templateargumentsize":{"value":3081,"limit":2097152},"expansiondepth":{"value":14,"limit":100},"expensivefunctioncount":{"value":34,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":84273,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 620.371 1 -total"," 26.55% 164.716 7 Template:Navbox"," 22.52% 139.679 1 Template:Reflist"," 21.38% 132.663 1 Template:Pascal_programming_language_family"," 19.68% 122.075 8 Template:Cite_web"," 18.32% 113.640 1 Template:Short_description"," 13.11% 81.341 1 Template:Infobox_programming_language"," 12.05% 74.764 1 Template:Infobox"," 11.01% 68.276 2 Template:Pagetype"," 7.94% 49.264 1 Template:Clarify"]},"scribunto":{"limitreport-timeusage":{"value":"0.335","limit":"10.000"},"limitreport-memusage":{"value":5909527,"limit":52428800}},"cachereport":{"origin":"mw-api-int.eqiad.main-79868dc866-mpv9s","timestamp":"20250323085921","ttl":745246,"transientcontent":true}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Oxygene (programming language)","url":"https:\/\/en.wikipedia.org\/wiki\/Oxygene_(programming_language)","sameAs":"http:\/\/www.wikidata.org\/entity\/Q910482","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q910482","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2006-03-02T12:52:39Z","dateModified":"2024-11-14T16:42:51Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/en\/9\/9e\/Chrome-128.png","headline":"Object Pascal-based programming language"}</script> </body> </html>