Lo olvidaba: hace unos años escribí la especificación de un lenguaje que llamé PROCAS (PROgramación en CAStellano). No era, símplemente, traducir las palabras clave de otro lenguaje (como Pascal) sino diseñar normas más acordes con la estructura del idioma castellano. Estaba orientado a objeto (mucho más que Delphi e incluso que Java... un poco al estilo de SmallTalk) y podías escribir cosas como esta:
Código:
PARA BuscaLibro DONDE NombreAutor ES CADENA, Librería ES CONTENEDOR:
POR CADA Libro DE Librería,
SI EL Autor DEL Libro ES NombreAutor, ENTONCES DEVUELVE Libro.
REPITE.
FIN DE BuscaLibro.
Lo que en Objetive Pascal sería (más o menos):
Código Delphi
[-]FUNCTION BuscaLibro (NombreAutor: STRING; Libreria: TLIBRERIA): TLIBRO;
VAR
Libro := TLIBRO;
BEGIN
RESULT := NIL;
Libro := Librería.PrimerElemento;
REPEAT
IF Libro.Autor := NombreAutor THEN
BEGIN
RESULT := Libro;
EXIT;
END;
Libro := Libro.Siguiente;
UNTIL Libro = NIL;
END;
Si funcionara sería impresionante, ¿no creen? Tal vez la recupere cuando empiece a escribir compiladores para la máquina virtual que he diseñado
.