A feature model of actor, agent, and object programming languages

Entrada/salida

Se encarga de la entrada y salida de usuarios

Estados

Mutable

Inmutable

Objeto o variable que pueden ser modificados después de su creación

Objeto o variable que no puede ser modificado después de cu creación

Control imperativo

Permite especificar el orden de ejecución o evaluación

Modularidad

La división del programa en partes más pequeñas, que permite que interactuen entre si

Metaprogramación

Código que genera o modifica otro código

Expresiones declarativas

Separación de lógica y control, donde el programador crea la parte lógica, mientras que el control es incorporado por el compilador

Sistema de tipos

Sirven para clasificar valores, determinar sus operaciones aplicables y de informar al compilador cuanta memoria se debe alocar

Concurrencia explicita

Dos actividades son concurrentes si pueden ser ejecutados en cualquier orden o ejecutadas en paralelo, determinado por la plataforma según su número de núcleos disponibles