Pascal Server Pages (PSP), son documentos HTML con subprogramas y expresiones Pascal introducidas en el documento entre los símbolos "<%" y "%>". Este tipo de documentos de servidor son muy parecidos a JSP y PHP/FI.

Un ejemplo de PSP:

Un ejemplo muy sencillo del programa es la muestra de la cadena "Hello World!".

<% // -> Marca de Inicio de Código PSP 
begin // -> Inicio de Bloque de Código Pascal 
Result := 'Hello world!'; // -> Resultado devuelto en Código Pascal 
end; // -> Cierre de Bloque de Código Pascal
%> // -> Marca de Cierre de Código PSP 

Para probar este sencillo programa copia las líneas de código, en un editor, desde la Marca de Inicio de Código PSP hasta la Marca de Cierre del mismo y guarda estas líneas en un archivo con el nombre "hello.psp".

Es importante tomar en cuenta que si te encuentras en Linux deberás agregar 2 líneas más, en Unix son la cabecera de un archivo para saber cual es su intérprete. El formato es el siguiente:

#!/ruta/al/binario/pspc | -> Esta es la cabecera 
						  | -> Esto es una línea en blanco

A pesar de que la línea en blanco no es obligatoria es recomendada, debido a que en el futuro, PSP podría funcionar en otros sistemas operativos (seguramente Unix, y de hecho, con la emulación de binarios Linux, hoy en día se podría ejecutar en sistemas operativos como: *BSD, Solaris, etc).

Funcionamiento de PSP

Al igual que PHP, ASP, JSP, se necesita una Máquina Virtual que interprete los documentos PSP, un módulo para el servidor web o un binario para ejecutarlo al estilo CGI, que es el motor llamado "pspc". Actualmente solo se ofrece como binario para ejecución (como ya hemos comentado) al estilo CGI (Common Gateway Interface).

Tipos de documentos  

Pascal Server Pages tiene varios tipos de documentos: el Documento Monoprograma, Documento Simple y Documento Complejo.  

Ejemplos:  

Documento Monoprograma: Solo contiene una expresión Pascal.

<% sqrt(24) %>

Documento simple: Código HTML y una expresión Pascal.

<html><body>
<% sqrt(24) %>
</body></html>

Documento Complejo: El documento contiene código HTML, 2 expresiones y una evaluación.

<html><body>
Hoy es :<% Date %>
<p> La raíz cuadrada de 24 es <% sqrt(24) %>
</p>
<hr>
<%
begin
if DateTimeToStr(Now) = '01/01/2001 08:00:00 ' then begin 
Result := 'Ya es complicado conseguir esto!';
else
Result := 'Esto es lo normal que se debería ver';
end;
end;
%>
</body></html>

Expectativas futuras de funcionamiento

En un futuro no muy lejano, se crearán módulos específicos para Apache (Versiones 2.X) y también para Internet Information Server (IIS).

Además se creará un servidor Web "específico" para PSP, que también podrá servir contenidos estáticos. Este servidor permitirá Pool de Recursos y Conexiones, Balanceo de Carga, entre otras funciones. Esto se encuadraría dentro del futuro proyecto Nemesis Pascal Enterprise Edition (NPEE).

La Máquina Virtual o Intérprete

El Intérprete o Máquina Virtual de Código Pascal es el intérprete que se ofrece con el Proyecto JEDI para Delphi, el componente JvInterpreterPascal. Actualmente se utiliza la versión 2.00 del mencionado componente. Para obtener una versión actualizada de este componente puede ingresarse al sitio del proyecto JEDI ICL (JVCL).

A manera de conclusión una de las cosas que hay que tomar en cuenta es que el software corre bajo Linux y también Win32. Esta creado en Kylix 3 Open Edition, su descarga e instalación es muy sencilla.