# Pauscal

Pauscal es un lenguaje de programación para Microsoft Windows de 32 bits desarrollado por Paul Guerra. La característica particular de este lenguaje de programación es que su sintaxis está basada en el idioma español. Esto lo hace ideal para aquellos que desean iniciarse en la programación. Sin embargo, este lenguaje es potente y no se limita a fines educativos.
El compilador de Pauscal genera código nativo para Microsoft Windows de 32 bits. Por este motivo, los programas hechos en Pauscal no requieren ningún tipo de soporte externo para poder ejecutarse.
El editor de Pauscal incluye un sistema de resalte sintáctico, el cual permite ver el código de sus programas de una forma más cómoda. Para simplificar la creación de aplicaciones con interfaces visuales, Pauscal incluye Visual Pauscal, el cual permite diseñar visualmente las ventanas de sus programas. Los programas creados en Pauscal son de su propiedad y los puede distribuir libremente.

## Características

* Sintaxis en español, sencilla, de fácil comprensión, interpretación, lectura y escritura.
** No utiliza puntos y comas, como tampoco corchetes.
* Orientado a objetos.
** Soporta herencia y encapsulamiento.
* Basado en prototipos.
** Al igual que JavaScript, Self y otros tantos lenguajes, Pauscal permite crear objetos mediante la escritura de código plano.
* Contiene una amplia variedad de API's, funciones, clases, estructuras, prototipos, uniones y constantes declaradas y disponibles para su uso.
* El compilador genera código nativo.
** Compilados independientes de bajo peso.
** Las aplicaciones no requieren ningún tipo de soporte externo para poder ejecutarse.
** Los compilados son funcionales en Windows 95, Windows 98, Windows 98 SE, Windows ME, Windows XP, Windows Vista, Windows 7 y Windows 8 (no ha sido probado en versiones más actuales).
* Contiene un editor gráfico (Visual Pauscal).
* Soporta los protocolos TCP y UDP.
* Puede llamar a funciones en archivos Win32 DLL.
* Soporta fuertemente los punteros.
** Permite almacenar direcciones y crear referencias a objetos de cualquier tipo.
** Permite la aritmética de punteros.
* Soporta paralelización.
** Capacidad multihilo, lo que permite realizar más de una tarea a la vez.
* Las bibliotecas DLL generadas en Pauscal, son compatibles con la convención de llamadas stdcall.
** Bibliotecas funcionales en Visual Basic, C/C++, Autoit, AutoHotkey y muchos otros lenguajes compatibles con stdcall.
* Contiene bibliotecas nativas del lenguaje que permiten la automatización de Windows.
** Además contiene declaradas las APIS de AutoItX3 de Autoit que permite la automatización avanzada de Windows.
* Soporta la instrucción GoTo (nombrada "IrHacia" en el lenguaje) a diferencia de otros lenguajes que desecharon su uso.
* Incluye el lenguaje de programación esotérico BrainFuck.
* Permite crear bibliotecas precompiladas (código objeto) que aumentan la velocidad de compilación y reduce el tamaño de los ejecutables.

## Historia

La idea de un lenguaje en español surgió cuando el desarrollador principal vio a sus compañeros programar en pseudocódigo. El proyecto fue iniciado en 2001 con un compilador hecho en Visual Basic, C y Ensamblador.
El nombre Pauscal (Paul + Pascal = Pauscal) fue dado por los compañeros de colegio del desarrollador. Es una combinación entre el nombre del desarrollador y el lenguaje Pascal, que era el que usaban en clases.
Actualmente la comunidad de Pauscal tiene la meta de que sea un lenguaje potente orientado a objetos, fácil de usar, con un buen entorno de desarrollo, y gratuito.

## Sentencias y variables

Pauscal a pesar de ser un lenguaje de programación estructural permite el uso de la sentencia GoTo que este tipo de paradigma considera "innecesario y contraproducente".
Los identificadores de las variables son opcionales, puede evitarse el nombrado de estos en procedimientos, clases, estructuras, uniones y prototipos. La siguiente línea de código es permitida y totalmente funcional.
Pauscal posee funciones indocumentadas pertenecientes a la máquina virtual de Microsoft Visual Basic 6.0 (MSVBVM60) que son compatibles con el lenguaje y fácilmente utilizables, esta biblioteca es actualmente incluida por defecto en Windows 7, 8 y 10.
Pauscal tiene un bucle que nunca se acaba o también denominado como "bucle infinito" (Repetir ... PorSiempre), pero esto no es ningún error como se describe en la referencia recién establecida, sino que es una característica del lenguaje y es muy útil cuando se trabaja con aplicaciones sin interfaz gráfica.