Estoy tratando de comprender completamente el código pro process de escritura en algún idioma para la ejecución por el sistema operativo. En mi caso, el idioma sería C y el sistema operativo sería Windows. Hasta ahora, he leído muchos artículos diferentes, pero no estoy seguro, si entiendo el proceso correctamente, y me gustaría preguntarle si conoce algunos buenos artículos sobre algunos temas que no pude encontrar.Algunas preguntas generales C
Por lo tanto, lo que creo que sé de C (y, básicamente, otros idiomas):
C propio compilador sólo se ocupa de los tipos de datos, operaciones básicas de matemáticas, operaciones de punteros, y trabajar con funciones. Al trabajar con funciones, me refiero a cómo transmitirle argumentos y cómo obtener resultados de la función. Durante la compilación, la llamada a función se reemplaza por pasar argumentos a la pila, y que si la función no está en línea, su llamada se reemplaza por algún símbolo para el vinculador. Enlazar que encontrar la definición de función, y reemplazar el símbolo para saltar a esa función (y por supuesto que saltar de nuevo al programa).
Si lo anterior es generalmente cierto y lo hago bien, ¿dónde está el archivo .exe final realmente vinculador guarda las funciones? Después de la función main()? ¿Y qué crea el encabezado .exe? Compilador o enlazador?
Ahora, las capacidades adicionales de C, hoy conocidas como biblioteca estándar C, son un conjunto de funciones y las declaraciones de ellas, que otros programadores escribieron para extender y simplificar el uso del lenguaje C. Pero estas funciones como printf() fueron (¿o podrían ser?) Escritas en diferentes idiomas o ensambladores. Y llega mi siguiente pregunta, ¿puede ser, por ejemplo, la función printf() escrita en C puro sin usar ensamblador?
Sé que esta es una gran pregunta, pero solo quiero saber si tengo razón o no. Y créeme, leí muchos artículos en la web y no te preguntaría si podría encontrar estas informaciones juntas en un solo lugar, en un artículo. Insistido, debo recopilar información pormenorizada, así que no estoy seguro de si estoy en lo cierto. Gracias.
Le recomiendo que aprenda a programar primero. Cualquier buen libro de programación le dirá el flujo de trabajo general de vinculación y compilación. –