A more formal definition of the familiar idea that types should be defined by abstractions with hidden implementations. An abstract data type is defined only in terms of allowed operations, i.e., without specifying fields, since they are part of the implementation. Abstract data types may or may not be immutable. Representative examples include maps, queues, and stacks, where multiple implementations are possible (including mutable and immutable, as long as all state-changing operations are defined to return a reference to the possibly new instance). Contrast with algebraic data type, where only a well-defined set of public subtypes are allowed.
The outwardly visible state, state transformations, and other operations supported by a type. This is separate from the encapsulated implementation (fields and methods) of the abstraction. Scala traits and abstract classes are often used to define abstractions and optionally implement them. Concrete types provide complete implementations.
A desired property of database transactions. They should support atomicity, consistency, isolation, and durability. See [ACID] for more details.
An autonomous sender and receiver of messages in the actor model of concurrency.
A concurrency model where autonomous actors coordinate work by exchanging messages. An actor’s messages are stored in a mailbox until the actor processes them.
An umbrella term for several lightweight ...