2009-10-13 9 views
8

¿Alguien sabe de clases de curso/universidad en línea que comprenden un curso típico de compilador? Tuve la teoría de la informática, pero lamentablemente mi escuela no ofreció un curso de construcción de compiladores.cursos de compilación autodidactas/buenos libros introductorios de compiladores?

Sé que hay conferencias por ahí; Esperaba recomendaciones para ofertas particularmente buenas.

Además, ¿hay libros para novatos en el campo? Algo más que el libro de dragones, al menos. El nivel de principiante está bien, sé que hay muchos textos intermedios avanzados en el mercado.

Gracias!

+1

Duplicado (varias veces) http://stackoverflow.com/questions/1669/learning -to-write-a-compiler y otros – cletus

+0

Nunca he visto una mejor explicación de compilación que en el libro de Dragon. Podrías hacer algo peor que perseverar con eso. –

+1

No estoy de acuerdo. Creo que la implementación del compilador moderno en {ML, Java, C} por Andrew Appel es mejor que el libro del dragón. El libro del dragón está bien como referencia, pero creo que si buscas un aprendizaje puramente autodirigido, Modern Compiler Implementation es un trabajo más completo y coherente. – Gian

Respuesta

8

Editar: en caso de que esto para preguntas no recibe cerrada, activa esta duplicate SO posting que responde a la pregunta de una manera mucho más exhaustiva.

Un par de Recursos en el sitio OpenCourseWare del MIT:

6.035 Computer Language Engineering
6.827 Multithreaded Parallelism: Languages and Compilers

El primero probablemente a lo largo de las líneas de lo que tenía en mente. También incluye algunos de los videos de las conferencias.
Este último ... positivamente un curso de posgrado. También se enfoca más en el multi-threading que en la cadena de compilación tradicional. (Pero, una vez más, para unir de manera eficiente los hilos del código, uno debe tener una comprensión decente de la semántica expresada en el programa original ...)

+0

¿Alguien tiene las respuestas de esa publicación duplicada de SO? Se ha eliminado debido a razones de moderación. – TravisG

5

Se puede extraer de este curso: http://ecee.colorado.edu/ecen4553

la información del curso lenguajes de programación

de alto nivel como Python hacer la programación de una brisa, pero ¿cómo funcionan? Hay una gran brecha entre Python y las instrucciones de la máquina para las computadoras modernas. Aprenda a traducir los programas de Python hasta el ensamblado de Intel x86 idioma.

mayoría de los cursos del compilador enseñan una fase del compilador a la vez, como análisis, el análisis semántico y asignación de registros. El problema con ese enfoque es que es difícil comprender cómo todo el compilador se ajusta a juntos y por qué cada fase es diseñada tal como está. En cambio, cada semana implementamos un subconjunto más grande del lenguaje Python. El primer subconjunto es un lenguaje pequeño de de declaraciones aritméticas, y cuando terminamos el lenguaje incluye objetos, herencia y funciones de primera clase.

Prerrequisitos: Fluidez en al menos un lenguaje de programación (Java, C, C++, Python, etc.). Los estudiantes harán mucho de programación en Python, pero el conocimiento anterior de no es necesario. El curso comenzará con un curso de falla en Python y Python es uno de los idiomas más fáciles de aprender. El conocimiento anterior de un lenguaje ensamblador ayuda, pero no es obligatorio.

+0

Gracias por el enlace. Tendré que ver si tiene más información del curso en línea de lo que indica el sitio web, parece que mucho material de lectura no está allí o está oculto a la vista del público. – larryq

+0

Nuevo enlace: http://ecee.colorado.edu/ecen4553/fall10/ – prasopes

+1

@prasopes, gracias. Agregué un enlace sin el año, porque podría romperse nuevamente en el futuro. –

Cuestiones relacionadas