La razón principal por la cual ningún idioma tiene soporte para esto en el nivel semántico es que las diversas necesidades son demasiado diferentes para encontrar un denominador común que sea lo suficientemente grande para tal característica. La ocultación de datos ya es bastante mala, y solo empeora cuando se necesita un control aún más preciso.
Habría ventajas en dicho lenguaje, por ejemplo, podría marcar ciertos datos como privados para cualquier persona que no fuera el objeto que lo creó (las contraseñas serían un gran ejemplo: ni siquiera el código que se ejecuta en la misma aplicación podría leerlas))
Desafortunadamente, esta "protección" sería superficial ya que a nivel del ensamblador, la protección no existiría. Para ser eficiente, el hardware debería ser compatible. En este caso, probablemente en el nivel de un solo byte en la RAM. Eso haría que una aplicación así sea extremadamente segura y dolorosamente lenta.
En el mundo real, encontrará esto en el TPM chip en su placa base y, en una forma muy tosca, con las tablas MMU de la CPU. Pero eso está en un nivel de página 4K, no a nivel de byte. Hay bibliotecas para manejar ambas, pero eso no cuenta como IMO de "soporte de idiomas".
Java tiene algo como esto en forma de Security API. Debe envolver el código en cuestión en un guardián que le pregunte al actual SecuityManager
si el acceso está permitido o no.
En Python, puede lograr algo similar con decoradores (para métodos y funciones) o implementando __setattr__
y __getattr__
para acceso de campo.
Me tomé la libertad de agregar PHP a la lista de idiomas que implementan el nivel de acceso basado en clases. –