Oberon (programming language)

Oberon
ParadigmsImperative, structured, modular, object-oriented
FamilyWirth Oberon
Designed byNiklaus Wirth Edit this on Wikidata
DeveloperNiklaus Wirth Edit this on Wikidata
First appeared1987; 37 years ago (1987)
Stable release
Oberon-07 / 6 March 2020; 4 years ago (2020-03-06)
Typing disciplineStrong, hybrid (static and dynamic)
ScopeLexical
PlatformARM, StrongARM; IA-32, x86-64; SPARC, Ceres (NS32032)
OSWindows, Linux, Solaris, classic Mac OS, Atari TOS, AmigaOS
Websiteprojectoberon.net
Influenced by
Modula-2
Influenced
Oberon-2, Oberon-07, Active Oberon, Component Pascal, Zonnon, Go, V (Vlang), Nim

Oberon is a general-purpose programming language first published in 1987 by Niklaus Wirth and the latest member of the Wirthian family of ALGOL-like languages (Euler, ALGOL W, Pascal, Modula, and Modula-2).[1][2][3][4] Oberon was the result of a concentrated effort to increase the power of Modula-2, the direct successor of Pascal, and simultaneously to reduce its complexity. Its principal new feature is the concept of data type extension of record types.[5] It permits constructing new data types on the basis of existing ones and to relate them, deviating from the dogma of strict static typing of data. Type extension is Wirth's way of inheritance reflecting the viewpoint of the parent site. Oberon was developed as part of the implementation of an operating system, also named Oberon at ETH Zurich in Switzerland. The name was inspired both by the Voyager space probe's pictures of the moon of the planet Uranus, named Oberon, and because Oberon is famous as the king of the elves.[6]

Oberon was maintained by Wirth and the latest Project Oberon compiler update is dated 6 March 2020.[7]

Design

Oberon is designed with a motto attributed to Albert Einstein in mind: "Make things as simple as possible, but not simpler." The principal guideline was to concentrate on features that are basic and essential and to omit ephemeral issues. Another factor was recognition of the growth of complexity in languages such as C++ and Ada. In contrast to these, Oberon emphasizes the use of the library concept to extend the language. Enumeration and subrange types, which were present in Modula-2, were omitted, and set types are limited to sets of integers. All imported items must be qualified by the name of the module where they are declared. Low-level facilities are highlighted by only allowing them to be used in a module which includes the identifier SYSTEM in its import list. Strict type checking, even across modules, and index checking at runtime, null pointer checking, and the safe type extension concept largely allow programming to rely on the language rules alone.

The intent of this strategy was to produce a language that is easier to learn, simpler to implement, and very efficient. Oberon compilers have been viewed as compact and fast, while providing code quality comparable to commercial compilers.[8]

Characteristics

Features characterizing the Oberon language include:[9]

  • Case sensitive syntax with uppercase keywords
  • Type-extension with type test
  • Modules and separate compiling
  • String operations
  • Isolating unsafe code
  • Support for system programming

Object orientation

Oberon supports extension of record types for the construction of abstractions and heterogeneous structures. In contrast to the later dialects, Oberon-2 and Active Oberon, the original Oberon lacks a dispatch mechanism as a language feature but has it as a programming technique or design pattern. This gives great flexibility in OOP. In the Oberon operating system, two programming techniques are used together for the dispatch call: Method suite and Message handler.

Method suite

In this technique, a table of procedure variables is defined and a global variable of this type is declared in the extended module and assigned back in the generic module:

MODULE Figures; (* Abstract module *)

TYPE
   Figure*    = POINTER TO FigureDesc;
   Interface* = POINTER TO InterfaceDesc;

   InterfaceDesc* = RECORD
      draw*  : PROCEDURE (f : Figure);
      clear* : PROCEDURE (f : Figure);
      mark*  : PROCEDURE (f : Figure);
      move*  : PROCEDURE (f : Figure; dx, dy : INTEGER);
   END;

   FigureDesc* = RECORD
      if : Interface;
   END;

PROCEDURE Init* (f : Figure; if : Interface);
BEGIN
   f.if := if
END Init;

PROCEDURE Draw* (f : Figure);
BEGIN
   f.if.draw(f)
END Draw;

(* Other procedures here *)

END Figures.

We extend the generic type Figure to a specific shape:

MODULE Rectangles;

IMPORT Figures;

TYPE
   Rectangle* = POINTER TO RectangleDesc;

   RectangleDesc* = RECORD
      (Figures.FigureDesc)
      x, y, w, h : INTEGER;
   END;

VAR
   if : Figures.Interface;

PROCEDURE New* (VAR r : Rectangle);
BEGIN
   NEW(r);
   Figures.Init(r, if)
END New;

PROCEDURE Draw* (f : Figure);
   VAR
      r : Rectangle;
BEGIN
   r := f(Rectangle); (* f AS Rectangle *)
   (* ... *)
END Draw;

(* Other procedures here *)

BEGIN (* Module initialisation *)
   NEW(if);
   if.draw  := Draw;
   if.clear := Clear;
   if.mark  := Mark;
   if.move  := Move
END Rectangles.

Dynamic dispatch is only done via procedures in Figures module that is the generic module.

Message handler

This technique consists of replacing the set of methods with a single procedure, which discriminates among the various methods:

MODULE Figures; (* Abstract module *)

TYPE
   Figure*    = POINTER TO FigureDesc;

   Message*   = RECORD END;
   DrawMsg*   = RECORD (Message) END;
   ClearMsg*  = RECORD (Message) END;
   MarkMsg*   = RECORD (Message) END;
   MoveMsg*   = RECORD (Message) dx*, dy* : INTEGER END;

   Handler*   = PROCEDURE (f : Figure; VAR msg : Message);

   FigureDesc* = RECORD
      (* Abstract *)
      handle : Handler;
   END;

PROCEDURE Handle* (f : Figure; VAR msg : Message);
BEGIN
   f.handle(f, msg)
END Handle;

PROCEDURE Init* (f : Figure; handle : Handler);
BEGIN
   f.handle := handle
END Init;

END Figures.

We extend the generic type Figure to a specific shape:

MODULE Rectangles;

IMPORT Figures;

TYPE
   Rectangle* = POINTER TO RectangleDesc;

   RectangleDesc* = RECORD
      (Figures.FigureDesc)
      x, y, w, h : INTEGER;
   END;

PROCEDURE Draw* (r : Rectangle);
BEGIN
  (* ... *)
END Draw;

(* Other procedures here *)

PROCEDURE Handle* (f: Figure; VAR msg: Figures.Message);
   VAR
      r : Rectangle;
BEGIN
   r := f(Rectangle);
   IF    msg IS Figures.DrawMsg THEN Draw(r)
   ELSIF msg IS Figures.MarkMsg THEN Mark(r)
   ELSIF msg IS Figures.MoveMsg THEN Move(r, msg(Figures.MoveMsg).dx, msg(Figures.MoveMsg).dy)
   ELSE  (* ignore *)
   END
END Handle;

PROCEDURE New* (VAR r : Rectangle);
BEGIN
   NEW(r);
   Figures.Init(r, Handle)
END New;

END Rectangles.

In the Oberon operating system both of these techniques are used for dynamic dispatch. The first one is used for a known set of methods; the second is used for any new methods declared in the extension module. For example, if the extension module Rectangles were to implement a new Rotate() procedure, within the Figures module it could only be called via a message handler.

Implementations and variants

Oberon

No-cost implementations of Oberon (the language) and Oberon (the operating system) can be found on the Internet (several are from ETHZ itself).

Oberon-2

A few changes were made to the first released specification. For example, object-oriented programming (OOP) features were added, the FOR loop was reinstated. The result was Oberon-2. One release, named Native Oberon which includes an operating system, and can directly boot on IBM PC compatible class hardware. A .NET implementation of Oberon with some added minor .NET-related extensions was also developed at ETHZ. In 1993, an ETHZ university spin-off company brought a dialect of Oberon-2 to the market named Oberon-L. In 1997, it was renamed Component Pascal.

Oberon-2 compilers developed by ETH include versions for Microsoft Windows, Linux, Solaris, and classic Mac OS. Implementations from other sources exist for some other operating systems, including Atari TOS and AmigaOS.

There is an Oberon-2 Lex scanner and Yacc parser by Stephen J Bevan of Manchester University, UK, based on the one in the Mössenböck and Wirth reference. It is at version 1.4.

Other compilers include Oxford Oberon-2,[10] which also understands Oberon-07, and Vishap Oberon.[11] The latter is based on Josef Templ's Oberon to C language source-to-source compiler (transpiler) named Ofront,[12] which in turn is based on the OP2 Compiler developed by Regis Crelier at ETHZ.

Oberon-07

Oberon-07, defined by Niklaus Wirth in 2007 and revised in 2008, 2011, 2013, 2014, 2015, and 2016 is based on the original version of Oberon rather than Oberon-2. The main changes are: explicit numeric conversion functions (e.g., FLOOR and FLT) must be used; the WITH, LOOP and EXIT statements were omitted; WHILE statements were extended; CASE statements can be used for type extension tests; RETURN statements can only be connected to the end of a function; imported variables and structured value parameters are read-only; and, arrays can be assigned without using COPY.[13]

Oberon-07 compilers have been developed for use with many different computer systems. Wirth's compiler targets a reduced instruction set computer (RISC) processor of his own design that was used to implement the 2013 version of the Project Oberon operating system on a Xilinx field-programmable gate array (FPGA) Spartan-3 board. Ports of the RISC processor to FPGA Spartan-6, Spartan-7, Artix-7 and a RISC emulator for Windows (compilable on Linux and macOS, and binaries available for Windows) also exist. OBNC compiles via C and can be used on any Portable Operating System Interface (POSIX) compatible operating system. The commercial Astrobe implementation targets 32-bit ARM Cortex-M3, M4 and M7 microcontrollers. The Patchouli compiler produces 64-bit Windows binaries. Oberon-07M produces 32-bit Windows binaries and implements revision 2008 of the language. Akron's produces binaries for both Windows and Linux. OberonJS translates Oberon to JavaScript. There is online IDE for Oberon. oberonc is an implementation for the Java virtual machine.

Active Oberon

Active Oberon is yet another variant of Oberon, which adds objects (with object-centered access protection and local activity control), system-guarded assertions, preemptive priority scheduling and a changed syntax for methods (named type-bound procedures in Oberon vocabulary). Objects may be active, which means that they may be threads or processes. Further, Active Oberon has a way to implement operators (including overloading), an advanced syntax for using arrays (see OberonX language extensions and Proceedings[14] of the 7th Joint Modular Languages Conference 2006 Oxford, UK), and knows about namespaces.[15] The operating system A2 (formerly Active Object System (AOS),[16] then Bluebottle), especially the kernel, synchronizes and coordinates different active objects.

ETHZ has released Active Oberon which supports active objects, and the operating systems based thereon (Active Object System (AOS), Bluebottle, A2), and environment (JDK, HTTP, FTP, etc.) for the language. As with many prior designs from ETHZ, versions of both are available for download on the Internet. As of 2003, supported central processing units (CPUs) include single and dual core x86, and StrongARM.

Development continued on languages in this family. A further extension of Oberon-2 was originally named Oberon/L but later renamed to Component Pascal (CP). CP was developed for Windows and classic Mac OS by Oberon microsystems, a commercial spin-off company from ETHZ, and for .NET by Queensland University of Technology. Further, the languages Lagoona[17][18][19] and Obliq carry Oberon methods into specialized areas.

Later .NET development efforts at ETHZ focused on a new language named Zonnon. This includes the features of Oberon and restores some from Pascal (enumerated types, built-in IO) but has some syntactic differences. Other features include support for active objects, operator overloading, and exception handling.

Oberon-V (originally named Seneca, after Seneca the Younger) is a descendant of Oberon designed for numerical applications on supercomputers, especially vector or pipelined architectures. It includes array constructors and an ALL statement.[20]

See also

Resources

General

Evolution of Oberon

References

  1. ^ Wirth, Niklaus (1987). From Modula to Oberon and the programming language Oberon (Report). ETH Technical Reports D-INFK. Vol. Band 82. Wiley. doi:10.3929/ethz-a-005363226.
  2. ^ Wirth, Niklaus (July 1988). "The Programming Language Oberon". Software: Practice and Experience. 18 (7): 661–670. doi:10.1002/spe.4380180707.
  3. ^ Wirth, Niklaus (July 1988). "From Modula to Oberon". Software: Practice and Experience. 18 (7): 671–690. doi:10.1002/spe.4380180706. S2CID 13092279.
  4. ^ Wirth, Niklaus (April 1988). "Type Extensions". ACM Transactions on Programming Languages. 10 (2): 204–214. doi:10.1145/42190.46167. S2CID 15829497.
  5. ^ Pountain, D. March 1991. "Modula's Children, Part II: Oberon". Byte. Vol. 16, no. 3. pp. 135–142.{{cite magazine}}: CS1 maint: numeric names: authors list (link)
  6. ^ Wirth, Niklaus; Gutknecht, Jürg (1987–2021). "Project Oberon" (PDF).
  7. ^ Wirth, Niklaus. "Oberon Change Log". ETH Zurich. Retrieved 16 January 2021.
  8. ^ Mössenböck, Hanspeter. "Compiler Construction: The Art of Niklaus Wirth" (PDF). Johannes Kepler University.
  9. ^ Wirth, Niklaus; Gutknecht, Jürg (1987–2021). "Project Oberon".
  10. ^ Spivey (8 April 2019). "Oxford Oberon-2 compiler". Retrieved 17 January 2021.
  11. ^ dcwbrown (16 June 2020). "Vishap Oberon Compiler". GitHub. Retrieved 17 January 2021.
  12. ^ jtempl (2 January 2020). "Ofront". GitHub. Retrieved 17 January 2021.
  13. ^ Wirth, Niklaus (3 May 2016). The Programming Language Oberon-07 (PDF). ETH Zurich, Department of Computer Science (Report). Retrieved 17 January 2021.
  14. ^ Friedrich, Felix; Gutknecht, Jürg (2006). "Array-Structured Object Types for Mathematical Programming". In Lightfoot, David E.; Szyperski, Clemens (eds.). Modular Programming Languages. Lecture Notes in Computer Science. Vol. 4228. Springer, Berlin Heidelberg. pp. 195–210. doi:10.1007/11860990_13. ISBN 978-3-540-40927-4. S2CID 34210781.
  15. ^ "Proposal for Module Contexts" (PDF).
  16. ^ Muller, Pieter Johannes (2002). The active object system design and multiprocessor implementation (PDF) (PhD). Swiss Federal Institute of Technology, Zürich (ETH Zurich).
  17. ^ Fröhlich, Peter H.; Franz, Michael. On Certain Basic Properties of Component-Oriented Programming Languages (PDF) (Report). University of California, Irvine. Retrieved 18 January 2021.
  18. ^ Fröhlich, Peter H.; Gal, Andreas; Franz, Michael (April 2005). "Supporting software composition at the programming language level". Science of Computer Programming. 56 (1–2). Elsevier B.V.: 41–57. doi:10.1016/j.scico.2004.11.004. Retrieved 18 January 2021.
  19. ^ Franz, Michael; Fröhlich, Peter H.; Kistler, Thomas (20 November 1999). "Towards language support for component-oriented real-time programming". Proceedings: Fifth International Workshop on Object-Oriented Real-Time Dependable Systems. Institute of Electrical and Electronics Engineers (IEEE). pp. 125–129. doi:10.1109/WORDSF.1999.842343. ISBN 0-7695-0616-X. S2CID 6891092. Retrieved 21 January 2021.
  20. ^ Griesemer, Robert (1993). "A Language for Numerical Applications on Vector Computers". Proceedings CONPAR 90: VAPP IV Conference, Diss Nr. 10277. ETH Zurich.

Read other articles:

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Desember 2023. Ini adalah daftar maskapai penerbangan yang saat ini beroperasi di Liberia. Maskapai penerbangan IATA ICAO Tanda panggil Mulaiberoperasi Catatan Liberia Airways LBA LIBERIA AIRWAYS Satgur Air Transport 2S TGR SATGURAIR Lihat pula Daftar maskapai pener...

 

 

Cape on Hong Kong Island, Hong Kong Cape D'AguilarCape D'AguilarTraditional Chinese鶴咀Literal meaningCrane BeakTranscriptionsYue: CantoneseJyutpingHok6 Zeoi2 Kau Pei Chau Cape D'Aguilar (Chinese: 鶴咀) is a cape on Hong Kong Island, Hong Kong. The cape is on the southeastern end of D'Aguilar Peninsula. To its north are Shek O and D'Aguilar Peak. Name It is named after Major-General George Charles d'Aguilar. Geography Cape D'Aguilar is in the Southern District.[1] Nea...

 

 

Sky SportsDiluncurkan25 March 1990PemilikBritish Sky BroadcastingPangsa pemirsa0.7% (1)0.2% (2)0.1% (3)0.1% (4) (July 2012, BARB)Saluran seindukChallenge,Pick,Sky Max,Sky Replay,Sky Arts,Sky Atlantic,Sky Witness,Sky Showcase,Sky Cinema,Sky News,Sky Sports F1,Sky Sports NewsSitus webskysports.comTelevisi InternetSky GoWatch live (UK & Ireland only)Virgin Media PlayerWatch on demand (UK only) Sky Sports adalah nama merek dari sebuah grup saluran televisi yang berorientasi kepada olahraga, y...

Gereja Kristen Sulawesi BaratLogo GKSBPenggolonganCalvinisWilayahSulawesi Barat, IndonesiaDidirikan31 Oktober 1977Jemaat106 jemaatUmat19.700 jiwa Gereja Kristen Sulawesi Barat (disingkat GKSB) ialah suatu organisasi gereja Kristen Calvinis di Indonesia yang pada mulanya merupakan bagian dari Gereja Toraja Mamasa. Pergolakan politik pada tahun 1950-an menyebabkan terputusnya hubungan antara Mamasa dengan daerah Kalumpang yang merupakan pusat kekristenan di wilayah ini. Karena itu jemaat-jemaat...

 

 

Elezioni presidenziali negli Stati Uniti d'America del 1836 Stato  Stati Uniti Data 3 novembre / 7 dicembre Collegio elettorale 294 elettori Affluenza 57,8% ( 2,4%) Candidati Martin Van Buren William H. Harrison Hugh L. White Partiti Democratico Whig Whig Voti 764.17650,8% 550.81636,6% 146.1099,7% Elettori 170 / 294 73 / 294 26 / 294 Elettori per stato federato Presidente uscente Andrew Jackson (Partito Democratico) 1832 1840 Le elezioni presidenziali negli Stati Uniti d'America del 183...

 

 

African football tournament final Football match2024 CAF Confederation Cup finalEvent2023–24 CAF Confederation Cup RS Berkane Zamalek First leg RS Berkane Zamalek Date12 May 2024 (2024-05-12)VenueStade Municipal de Berkane, BerkaneRefereePeter Waweru (Kenya)Second leg Zamalek RS Berkane Date19 May 2024 (2024-05-19)VenueCairo International Stadium, CairoRefereeIssa Sy (Senegal)← 2023 2025 → The 2024 CAF Confederation Cup final will be the final match...

土库曼斯坦总统土库曼斯坦国徽土库曼斯坦总统旗現任谢尔达尔·别尔德穆哈梅多夫自2022年3月19日官邸阿什哈巴德总统府(Oguzkhan Presidential Palace)機關所在地阿什哈巴德任命者直接选举任期7年,可连选连任首任萨帕尔穆拉特·尼亚佐夫设立1991年10月27日 土库曼斯坦土库曼斯坦政府与政治 国家政府 土库曼斯坦宪法 国旗 国徽 国歌 立法機關(英语:National Council of Turkmenistan) ...

 

 

هذه المقالة بحاجة لمراجعة خبير مختص في مجالها. يرجى من المختصين في مجالها مراجعتها وتطويرها. (يوليو 2016)Learn how and when to remove this message ولاة مصر في عهد العثمانيين منذ فتح مصر سنة 1517م / 923 هـ وحتى عزل خورشيد باشا عام 1805 ، وكانوا يعرفون في أوقات شتى بألقاب مختلفة ولكنها مرادفة لبعضها، من ...

 

 

This article relies largely or entirely on a single source. Relevant discussion may be found on the talk page. Please help improve this article by introducing citations to additional sources.Find sources: Intrapulmonary nodes – news · newspapers · books · scholar · JSTOR (October 2022) This article's factual accuracy may be compromised due to out-of-date information. The reason given is: Over hundred year old source- May have factual inaccuracies and/ ...

يو بي-15 الجنسية  ألمانيا النازية الشركة الصانعة إيه جي فيزر  المالك البحرية الإمبراطورية الألمانية المشغل البحرية النمساوية المجريةالبحرية الإمبراطورية الألمانية  المشغلون الحاليون وسيط property غير متوفر. المشغلون السابقون وسيط property غير متوفر. التكلفة وسيط property غي...

 

 

Ekranoplan kendaran gabungan kelebihan kapal dan pesawat. Sebuah ekranoplan (bahasa Rusia: экранопла́н) adalah sebuah kendaraan menyerupai pesawat terbang, tetapi beroperasi atas efek tanah. Efek ini dapat diarasakan ketikan mendarat dalam sebuah penerbangan komersial; sesaat sebelum mendarat, kecepatan merendah dapat dirasakan berkurang. Kendaraan Ground effect (GEV) terbang dapat terbang di permukaan datar apa pun, dengan ketinggian dari permukaan tanah bervariasi sesuai deng...

 

 

Disambiguazione – Se stai cercando altri significati, vedi Ringo Starr (disambigua). Ringo StarrRingo Starr nel 2019 Nazionalità Regno Unito GenereRockPop Periodo di attività musicale1957 – in attività Strumentobatteria, voce, percussioni, pianoforte, organo, harmonium, chitarra, armonica a bocca, scacciapensieri Gruppi attualiRingo Starr & His All-Starr Band Gruppi precedentiRory Storm and the Hurricanes - The Beatles Album pubblicati26 Studio14 Live8 Colo...

2008 Green Party of England and Wales leadership election 5 September 2008 (2008-09-05) 2010 → Turnout2,769 (37.9%)   Candidate Caroline Lucas Ashley Gunstock Popular vote 2,559 210 Percentage 92.4% 7.6% Leader before election New position Elected leader Caroline Lucas The 2008 Green Party of England and Wales leadership election took place in September 2008 to select the first leader of the Green Party of England and Wales. It was won by Caroline Lucas wh...

 

 

Commune d'arrondissement in Dakar Region, SenegalNgorCommune d'arrondissementLocation of Ngor within DakarCountry SenegalRegionDakar RegionDepartmentDakar DepartmentArea • Total4.5 km2 (1.7 sq mi)Elevation5 m (16 ft)Population (2013) • Total17,383 • Density3,900/km2 (10,000/sq mi)Time zoneUTC+0 (GMT)Websitehttp://sip.sn/ngor/commune.htm Ngor (lit. 'honorable' in Wolof)[1] is a commune d'arrondissement of...

 

 

Mário Figueira Fernandes oleh Anton Zaitsev 2018Informasi pribadiNama lengkap Mário Figueira FernandesTanggal lahir 19 September 1990 (umur 33)Tempat lahir Sao Vaetano do Sul, BrazilTinggi 187 cm (6 ft 2 in)Posisi bermain BekInformasi klubKlub saat ini CSKA MoscowNomor 2Karier senior*Tahun Tim Tampil (Gol)2012 – CSKA Moscow 151 (1)Tim nasional2017 – Rusia 9 (0) * Penampilan dan gol di klub senior hanya dihitung dari liga domestik Mário Figueira Fernandes (lahir 19 ...

American screenwriter Clara S. BerangerClara Beranger in 1918BornClara Strouse(1886-01-14)January 14, 1886Baltimore, Maryland, U.S.DiedSeptember 10, 1956(1956-09-10) (aged 70)Hollywood, California, U.S.OccupationScreenwriterEducationGoucher College (BA)SpouseAlbert Berwanger (1907 – ?) William C. DeMille ​ ​(m. 1928; died 1955)​Children1 Clara Beranger (née Strouse; January 14, 1886 – September 10, 1956) was an American screenwrit...

 

 

Ilustrasi Protoavis, genus kontroversial yang diduga merupakan fosil khimaira Dalam paleontologi, khimaira adalah fosil yang direkonstruksi dengan elemen yang berasal dari lebih dari satu spesies atau genus hewan. Dengan kata lain, fosil khimaira merupakan kesalahan atau terkadang hoaks yang dibuat oleh paleontolog, yang menyatukan semua bagian tubuh yang tidak berasal dari organisme yang sama. Contoh khimaira klasik yang terkini adalah Protoavis. Daftar khimaira paleontologis Archaeoraptor&#...

 

 

Greater Toronto Airports AuthorityCompany typeNon-profit organizationIndustryAir TransportFoundedDecember 2, 1996[1]HeadquartersToronto Pearson International AirportMississauga, OntarioKey peopleDeborah Flint, CEO and PresidentProductsAirport operations and servicesRevenue$1.1 billion CAD[2]Number of employees1104Websitehttps://www.torontopearson.com/en The Greater Toronto Airports Authority (GTAA; French: Autorité aéroportuaire du Grand Toronto) is a Canadian non-profit org...

1986 U.S. Navy freedom-of-navigation operation in waters claimed by Libya Action in the Gulf of Sidra (1986)Part of the Cold WarA VMFA-314 F/A-18A lands on USS Coral SeaDate24 March 1986LocationGulf of Sidra, Mediterranean SeaResult American victoryBelligerents  United States  LibyaCommanders and leaders Ronald Reagan Muammar GaddafiStrength 30 warships 225 aircraft 2 missile corvettes 3 patrol boats Casualties and losses none 72 killed 6 Soviet technicians wounded[1] 1 corv...

 

 

Croatian political partyThis article is about the political party. For actual bridges in Croatia, see List of bridges in Croatia.This article needs to be updated. Please help update this article to reflect recent events or newly available information. (April 2024) The Bridge MostPresidentBožo PetrovVice PresidentsNikola GrmojaRonaldo Barišić[1]Founded17 November 2012 (2012-11-17)HeadquartersZagrebMembership (2021)775[2]IdeologyNational conservatism[3]...