BETA (programming language): Difference between revisions

Content deleted Content added
removed link
Tags: Reverted references removed Visual edit Mobile edit Mobile web edit
m Disambiguating links to Object-orientation (link changed to Object-oriented programming) using DisamAssist.
 
(4 intermediate revisions by 4 users not shown)
Line 2:
{{More citations needed|date=September 2014}}
{{Technical|date=September 2010}}
{{Cleanup bare URLs|date=August 2022}}
 
}}
{{Infobox programming language}}
| name = BETA
| logo =
| paradigm = [[Object-oriented programming|Object-oriented]]
| year =
| designer = [[Bent Bruun Kristensen]], [[Ole Lehrmann Madsen]], [[Birger Møller-Pedersen]], [[Kristen Nygaard]]
| developer =
| latest_release_version =
| latest_release_date =
| latest_test_version =
| latest_test_date =
| typing =
| implementations =
| dialects =
| influenced_by = [[Simula]]
| influenced =
| operating_system =
| license =
| website = {{URL|beta.cs.au.dk}}
}}
 
'''BETA''' is a pure [[Object-oriented programming|object-oriented]] language originating within the [[Kristen Nygaard|"Scandinavian School"]] in object-orientation where the first object-oriented language [[Simula]] was developed.<ref name="overview">Source: [http://daimi.au.dk/~beta/Papers/BetaOverview/BetaOverview.pdf] Ole Lehrmann Madsen: An overview of BETA</ref> Among its notable features, it introduced [[nested class]]es, and unified classes with procedures into so called patterns.
 
It has been in development since 1976, with implementations known since 1986, by [[Kristen Nygaard]] together with Bent Bruun Kristensen, Ole Lehrmann Madsen, and [[Birger Møller-Pedersen]], at the [[University of Oslo]].
, and unified classes with procedures into so called patterns.
 
The project is inactive as of October 20292020.<ref>{{Cite web|url=https://beta.cs.au.dk/|title=The BETA Language Home Page|website=beta.cs.au.dk}}</ref>
 
==Features==
Line 17 ⟶ 35:
From a technical perspective, BETA provides several unique features. Classes and Procedures are unified to one concept, a [[BETA pattern|Pattern]]. Also, classes are defined as properties/attributes of objects. This means that a class cannot be instantiated without an explicit object context. A consequence of this is that BETA supports [[nested class]]es. Classes can be virtually defined, much like virtual methods can be in most object-oriented programming languages. Virtual entities (such as methods and classes) are never overwritten; instead they are redefined or specialized.
 
BETA supports the object-oriented perspective on programming and has comprehensive facilities for procedural and functional programming. It has powerful abstraction mechanisms to support identification of objects, classification and composition. BETA is a statically typed language like Simula, [[Eiffel (programming language)|Eiffel]] and [[C++]], with most type checking done at compile-time.<ref name="overview">Source: [http://daimi.au.dk/~beta/Papers/BetaOverview/BetaOverview.pdf] Ole Lehrmann Madsen: An overview of BETA</ref> BETA aims to achieve an optimal balance between compile-time type checking and run-time type checking.
 
===Patterns===
Line 77 ⟶ 95:
 
==Further reading==
*Ole Lehrmann Madsen, Birger Møller-Pedersen, Kristen Nygaard: Object-Oriented Programming in the BETA Programming Language, [http://daimi.au.dk/~beta/Books/index.html The Mjølner System: Books]
*Bent Bruun Kristensen, Ole Lehrmann Madsen, Birger Møller-Pedersen: The When, Why and Why Not of the BETA Programming Language, ACM History of Programming Languages III, Conference, San Diego 2007, [https://beta.alexandra.dk/sites/default/files/pdf/BETA-HOPL-V4.7_ref.pdf ] {{Webarchive|url=https://web.archive.org/web/20170211155057/https://beta.alexandra.dk/sites/default/files/pdf/BETA-HOPL-V4.7_ref.pdf |date=2017-02-11 }}
 
==References==