Language-based security: access control and static analysis