Esta es una comparación de las características de los sistemas de tipos y la verificación de tipos de varios lenguajes de programación .
Definiciones breves
- Un sistema de tipos nominal significa que el lenguaje decide si los tipos son compatibles y/o equivalentes basándose en declaraciones y nombres explícitos.
- Un sistema de tipos estructural significa que el lenguaje decide si los tipos son compatibles y/o equivalentes basándose en la definición y las características de los tipos.
- La comprobación de tipos determina si se verifican los tipos y cuándo. La comprobación estática implica que los errores de tipo se notifican en función del código fuente del programa. La comprobación dinámica implica que los errores de tipo se notifican en función del comportamiento dinámico (en tiempo de ejecución) del programa.
Notas
- ↑ Las operaciones no seguras están bien aisladas mediante el prefijo "Unchecked_".
- ↑ con conversión de tipo dinámica opcional (ver conversión dinámica )
- ↑ con tipo dinámico opcional (ver búsqueda de miembros dinámicos )
- 1 2 3 4 5 Es casi seguro, las características inseguras no se utilizan comúnmente.
- ↑ Opcionalmente, el tipo puede estar implícito explícitamente en la primera letra del identificador (conocido como tipado implícito dentro de la comunidad Fortran).
- ↑ comprobación dinámica de extensiones de tipo, es decir, tipos heredados
- ↑ explícito para tipos estáticos
- ↑ opcional para procedimientos formales y virtuales
Referencias
- ↑ Guía del usuario de Aldor (PDF) . Aldor.org. 2002. págs. 40, 61. Consultado el 3 de junio de 2021 .
- ↑ "Aprende los fundamentos del sistema de tipos de C# - C#" . learn.microsoft.com . Microsoft . Consultado el 25 de enero de 2026 .
- ↑ "Type Inference Crystal" . Crystal Language Reference . Consultado el 3 de junio de 2021 .
- ↑ "El sistema de tipos de Dart" . dart.dev . Consultado el 8 de abril de 2020 .
- ↑ Especificación del lenguaje de programación Go
- ↑ Löh, Andres. "¿Por qué Haskell no tiene registros con tipado estructural?" . Stack Overflow . Archivado del original el 14-03-2016 . Recuperado el 13-04-2020 .
- 1 2 King, Alexis (19 de enero de 2020). "No, los sistemas de tipos dinámicos no son inherentemente más abiertos" . lexi-lambda.github.io . Archivado del original el 1 de marzo de 2020. Recuperado el 13 de abril de 2020 .
- ↑ Sheng Liang, Gilad Bracha. Carga dinámica de clases en la máquina virtual Java . Volumen 33, número 10 de ACM SIGPLAN Notices, octubre de 1998.
- ↑ "Tipos · el lenguaje Julia" . Archivado del original el 24/07/2018 . Consultado el 24/07/2018 .
- ↑ Developer.apple.com Archivado el 10 de junio de 2009 en Wayback Machine
- ↑ "Registro · Motivo" . reasonml.github.io . Archivado del original el 31-03-2020 . Consultado el 13-04-2020 .
- ↑ "Sistema de tipos estructurales" , Wikipedia , 29 de marzo de 2019 , consultado el 13 de abril de 2020.
- ↑ "rust-lang/rustc-dev-guide" . GitHub . Consultado el 8 de abril de 2020 .
Categorías :
- Comparación de lenguajes de programación
- Sistemas de tipos