logo móvil

Una breve descripción del lenguaje de programación Pawns

Autores: Naish, Lee

Idioma: Inglés

Editor: MDPI

Año: 2024

Descargar PDF

Acceso abierto

Artículo científico


Categoría

Ingeniería y Tecnología

Licencia

CC BY-SA – Atribución – Compartir Igual

Consultas: 10

Citaciones: Sin citaciones


Descripción
Este documento describe el lenguaje de programación Pawns, actualmente en desarrollo, que utiliza varias características novedosas para combinar los paradigmas de programación funcional e imperativa. Soporta programación funcional pura (incluyendo tipos de datos algebraicos, programación de orden superior y polimorfismo paramétrico), donde la representación de los valores no necesita ser considerada. También soporta programación imperativa de bajo nivel similar a C, con punteros y la actualización destructiva de todos los campos de las estructuras utilizadas para representar los tipos de datos algebraicos. Toda actualización destructiva de variables es evidente en el código de Pawns, a través de anotaciones en las declaraciones y en las firmas de tipo. Las firmas de tipo también deben declarar el uso compartido entre cualquier argumento y resultado que pueda ser actualizado. Por ejemplo, si dos argumentos de una función son árboles que comparten un subárbol y el subárbol se actualiza dentro de la función, ambas variables deben ser anotadas en ese punto del código, y el uso compartido y la actualización de ambos argumentos deben ser declarados en la firma de tipo de la función. El compilador realiza un análisis exhaustivo de uso compartido para verificar que las declaraciones y anotaciones sean correctas. Este análisis permite que la actualización destructiva esté encapsulada: una función sin anotaciones de actualización en su firma de tipo está garantizada para comportarse como una función pura, aunque el valor devuelto pueda haber sido construido utilizando actualización destructiva dentro de la función. Además, el análisis de uso compartido ayuda a soportar una forma restringida de variables globales que también permite que la actualización destructiva esté encapsulada y que se realice una actualización segura de variables con tipos polimórficos.

Documentos Relacionados

Temas Virtualpro