Callℇ: An effect system for method calls
Autor: | Marco Servetto, Isaac Oscar Gariano, James Noble |
---|---|
Rok vydání: | 2021 |
Předmět: |
FOS: Computer and information sciences
Object-oriented programming Computer Science - Programming Languages Computer science Random number generation Programming language Network communication Effect system Thread (computing) computer.software_genre Determinism Language primitive computer Programming Languages (cs.PL) Uncategorized |
Zdroj: | Onward! |
DOI: | 10.25455/wgtn.15982596 |
Popis: | Effect systems are used to statically reason about the effects an expression may have when evaluated. In the literature, such effects include various behaviours as diverse as memory accesses and exception throwing. Here we present CallƐ, an object-oriented language that takes a flexible approach where effects are just method calls: this works well because ordinary methods often model things like I/O operations, access to global state, or primitive language operations such as thread creation. CallƐ supports both flexible and fine-grained control over such behaviour, in a way designed to minimise the complexity of annotations. CallƐ’s effect system can be used to prevent OO code from performing privileged operations, such as querying a database, modifying GUI widgets, exiting the program, or performing network communication. It can also be used to ensure determinism, by preventing methods from (indirectly) calling non-deterministic primitives like random number generation or file reading. |
Databáze: | OpenAIRE |
Externí odkaz: |