2022
DOI: 10.1145/3527635
|View full text |Cite
|
Sign up to set email alerts
|

Containerless Plurals: Separating Number from Type in Object-Oriented Programming

Abstract: To let expressions evaluate to no or many objects, most object-oriented programming languages require the use of special constructs that encode these cases as single objects or values. While the requirement to treat these standard situations idiomatically seems to be broadly accepted, I argue that its alternative, letting expressions evaluate to any number of objects directly, has several advantages that make it worthy of consideration. As a proof of concept, I present a core object-oriented programming langua… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1

Citation Types

0
0
0
5

Year Published

2022
2022
2024
2024

Publication Types

Select...
3

Relationship

0
3

Authors

Journals

citations
Cited by 3 publications
(5 citation statements)
references
References 53 publications
0
0
0
5
Order By: Relevance
“…Betrachtet man Methoden mit Parametern und fügt einem Methodenaufruf entsprechend ein Argument hinzu, stellt sich die Frage, ob auch über dieses Argument distributiert werden soll, so wie das bei den zweistelligen Operationen in Abschnitt 18.2 der Fall war, oder ob ein Bunch an der Stelle eines Arguments als Ganzes an den formalen Parameter übergeben werden soll. Entscheidet man sich für letzteres, so kann das "Kreuzprodukt" 8 von Empfängerund Argument-Bunch immer noch durch die Methode des Double dispatching (Ingalls 1986;Steimann 2022) Wenn nun b1 und b2 zwei Bunches von Zahlen sind, dann führt der Aufruf von b1.plus(b2) zunächst zur Ausführung der Methode plus(b2) auf allen Konsituenten von b1, wobei in deren Rumpf in der Folge auf jedem der Konstituenten von b2 die Methode plus2 mit dem aktuellen Empfänger (je einem Konstituenten aus b1, einem Singular) als Argument aufgerufen wird. Im Rumpf der Methode plus2 steht dann das Paar bestehend aus singular und this für genau ein Element aus dem kartesischen Produkt von b1 und b2, dessen Argumente so alle aufgezählt werden.…”
Section: Semantik Der Parameterunclassified
See 4 more Smart Citations
“…Betrachtet man Methoden mit Parametern und fügt einem Methodenaufruf entsprechend ein Argument hinzu, stellt sich die Frage, ob auch über dieses Argument distributiert werden soll, so wie das bei den zweistelligen Operationen in Abschnitt 18.2 der Fall war, oder ob ein Bunch an der Stelle eines Arguments als Ganzes an den formalen Parameter übergeben werden soll. Entscheidet man sich für letzteres, so kann das "Kreuzprodukt" 8 von Empfängerund Argument-Bunch immer noch durch die Methode des Double dispatching (Ingalls 1986;Steimann 2022) Wenn nun b1 und b2 zwei Bunches von Zahlen sind, dann führt der Aufruf von b1.plus(b2) zunächst zur Ausführung der Methode plus(b2) auf allen Konsituenten von b1, wobei in deren Rumpf in der Folge auf jedem der Konstituenten von b2 die Methode plus2 mit dem aktuellen Empfänger (je einem Konstituenten aus b1, einem Singular) als Argument aufgerufen wird. Im Rumpf der Methode plus2 steht dann das Paar bestehend aus singular und this für genau ein Element aus dem kartesischen Produkt von b1 und b2, dessen Argumente so alle aufgezählt werden.…”
Section: Semantik Der Parameterunclassified
“…in ( this ); } } wobei hier die Methode in(_) der Bunch-Inklusion "∶" aus Abschnitt 18.2 entsprechen soll. Führt man hingegen Methoden ein, bei deren Aufruf this (oder besser eine Pseudovariable these, die den Plural repräsentiert und this in solchen Methoden ersetzt) auf das gesamte Bunch verweist, auf dem aufgerufen wurde, dann tut obige Methode genau das, was sie soll (Steimann 2022). Allerdings muss eine solche Plural-Methode statisch gebunden werden (schon allein deswegen, weil sie auch auf einem leeren Bunch aufgerufen werden kann; man beachte, dass leere Bunches zwar einen statischen, aber mangels Masse keinen dynamischen Typ haben können; mehr dazu unten).…”
Section: Plural-semantikunclassified
See 3 more Smart Citations