Ok.. bien puedes buscar información sobre "Teoría de los Compiladores" o bien puedes utilizar algún compilador existente y escribir dinámicamente código para este, o bien puedes desarrollar un programita, bastante parametrizable, como para que pueda tomar su confuguración de algun archivo propietario y actúe segun corresponda. Esto es lo que hacen la mayoría de los programas que nombrás.
Algunos compiladores de Pascal Open Source:
http://www.freepascal.org/
http://www.pascal-central.com