Respuestas:
"Construir" es un término bastante general, y puede referirse a todo lo que se necesita para pasar de material fuente editable (código fuente, scripts, archivos de datos sin formato, etc.) a un producto de software que se puede enviar. La construcción puede (y generalmente lo hace) implicar varios pasos, como preprocesamiento, compilación, vinculación, conversión de archivos de datos, ejecución de pruebas automatizadas, empaquetado, etc.
"Compilar" es más específico, y casi invariablemente se refiere a un proceso que toma el código fuente como su entrada, y genera algo ejecutable, típicamente código de máquina para una máquina física o virtual, o código fuente en un idioma diferente.
Estos términos a menudo se usan indistintamente, pero los diferenciaría de la siguiente manera:
Por lo tanto, compilar es realmente un subconjunto de construcción.
La compilación se realiza por compilador, la compilación puede ser un proceso más complejo.
P.ej. en C ++ para hacer una compilación de un proyecto necesita un preprocesador (preprocesamiento de archivos fuente); compilador (compilación de archivos fuente); enlazador (fusionar todo en ejecutable - código compilado, iconos, cadenas, otros recursos juntos)
En general, compilar es traducir el código escrito en un idioma a otro (por ejemplo, código de máquina).