Tengo una duda teorica sobre la programación. El lenguaje C es un lenguaje con símbolos y reglas. Puedo escribir un programa en un papel con un lapiz que sea sumar dos números enteros y que alguien ejecute ese algoritmo por ejemplo
int a, b;
a=25; b=5;
printf("%d", a+b);
entonces alguien al ejecutarlo tendrá que hacer la suma y mostrala. Ahora cuando queremos que ese algoritmo se ejecute en un circuito electrónico necesitamos de un compilador.
Pero hay dos posibles circuitos electrónicos que se pueden programar, un microcontrolador y una PC. En el caso del microcontrolador el compilador llevará ese algoritmo a código máquina, es decir, en manera fácil, dispondrá 2 registros generales en los cuales establecerá los valores númericos 25 y 5, pasará esos datos a un circuito sumador en la ALU y luego al resultado lo dispondrá en un tercer registro.
En cambio cuando realizamos ese programa para que corra en la consola de windows, el compilador no generará un código máquina para el procesador, sino que tengo entendido que al programa en C lo llevará a una códificación de llamadas al SO. Es decir, a diferencia de lo que hace con el microcontrolador de manera de hacerlo funcionar ahora el compilador lo que hace es pasarle las instrucciones al SO de manera de que este maneje el hardware.
¿es correcto eso? o estoy equivocado.
Saludos.
int a, b;
a=25; b=5;
printf("%d", a+b);
entonces alguien al ejecutarlo tendrá que hacer la suma y mostrala. Ahora cuando queremos que ese algoritmo se ejecute en un circuito electrónico necesitamos de un compilador.
Pero hay dos posibles circuitos electrónicos que se pueden programar, un microcontrolador y una PC. En el caso del microcontrolador el compilador llevará ese algoritmo a código máquina, es decir, en manera fácil, dispondrá 2 registros generales en los cuales establecerá los valores númericos 25 y 5, pasará esos datos a un circuito sumador en la ALU y luego al resultado lo dispondrá en un tercer registro.
En cambio cuando realizamos ese programa para que corra en la consola de windows, el compilador no generará un código máquina para el procesador, sino que tengo entendido que al programa en C lo llevará a una códificación de llamadas al SO. Es decir, a diferencia de lo que hace con el microcontrolador de manera de hacerlo funcionar ahora el compilador lo que hace es pasarle las instrucciones al SO de manera de que este maneje el hardware.
¿es correcto eso? o estoy equivocado.
Saludos.