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