Hola y bienvenido de nuevo.
En esta conferencia, me gustaría para hablar sobre lo que
implica la creación de un programa c.
Entonces hay cuatro tareas fundamentales en la creación de cualquier programa c.
Y cuales son estas tareas incluyen editar, compilar, vincular
y ejecutar.
Hablamos de los diferentes pasos que empleará cuando escriba un programa
en c en términos de que va para comprender los requisitos, va a diseñar su
código, vas a escribir tu código, luego lo vas a
probar y depurar y así sucesivamente y luego mantenerlo.
De lo que estoy hablando aquí es de lo que lo que realmente necesita hacer cuando
comienza a escribir un programa. Como que hablamos también es importante editar,
compilar, pero vincular y ejecutar.
Y de lo que quiero hablar aquí están los detalles de esto.
Entonces estas tareas se convertirán en segunda naturaleza para ti porque lo vas
a hacer cada vez que escribe un programa en c.
Vas a editar tu código fuente,
lo compilará, lo vinculará, y luego vas a estar corriendo.
Vas a estar haciendo esto muy, muy a menudo.
Entonces, los procesos de edición, compilar, vincular y ejecutar son
los mismos para desarrollar programas en cualquier entorno con
cualquier lenguaje compilado.
Esto no es exclusivo de c.
Si está escribiendo java - un java programa, vas a escribir el
código fuente, vas a para compilar el código fuente.
Vinculación: es posible que no sea tan consciente de en Java, pero va a hacer
algún tipo de vinculación y hablaremos sobre qué es la vinculación, y
luego ejecutará el programa.
Vas a estar haciendo todo esto.
Lo que estoy describiendo aquí de nuevo es como se hace en c.
Así que editar es exactamente lo que pensarías que lo es.
Es el proceso de crear y modificando el
código real, el código fuente c.
El código fuente de c va estar dentro de un archivo.
Y va a contener todo las declaraciones y todas
las instrucciones que escriba.
Todos los archivos de código fuente de c terminan con el . c, y así es como puede
identificar que es un archivo de código fuente.
Antes de que . la extensión c va para que se le
llame el nombre base, desea que los nombres de sus archivos sean significativos.
Si escribe un programa en c que suma dos números, es posible que tenga
un archivo llamado agregar. c, que contiene un código fuente.
Y recuerda que la mayoría de c los programas van a tener
muchos archivos diferentes.
Entonces sus archivos deben tener buenos nombres.
Pero la forma en que puedes identificar c código fuente es el. extensión c.
Todos contienen el. extensión c.
Ahora, cuando editamos nuestro código para en esta clase, vamos a utilizar un
entorno de desarrollo integrado.
No solo vamos utilizar un editor simple.
Un ejemplo de un editor simple sería algo así como wordpad.
Vamos a usar algo que tiene un editor pero que también tiene
muchas otras cosas que te ayudan escriba su código de manera más eficiente.
El IDE - y esto se conoce como un IDE, entorno de desarrollo integrado.
El que vamos a usar para esta clase es
Bloques de código, voy a cubrir en detalle, pero usaremos bloques de
código para la tarea de edición.
Pero puedes usar lo que quieras.
Si desea utilizar el bloc de notas,
si quieres usar algo aún más minúsculo, puedes Atom, hay IDE de Visual Studio,
pero el que vamos a cubrir aquí es cómo para editar su código y bloques de código.
Y este es un buen ide y el razón por la que lo
elegí, hablaremos de más detalles, pero es multiplataforma y fácil de usar.
Así que editar es lo básico proceso, escribiendo el código.
Compilando.
Sabemos lo que hace un compilador.
Solo se necesita ese alto nivel código de idioma y lo convierte
a lenguaje de máquina, y también detecta y encuentra errores en su código.
Después de editar su código, estará va a ejecutar el compilador.
Entonces la entrada al compilador es va a ser todo
tu código fuente, todo tu. archivos c todo lo que estás editando.
Y de nuevo, un programa en c puede tienen muchos archivos fuente.
Pero la entrada al compilador es estos archivos fuente, la propia
compilación convierte este código es un proceso de dos etapas.
La primera etapa se llama la fase de preprocesamiento.
Durante el cual su código puede modificarse o agregarse.
Y la segunda etapa es la compilación real, genera el código
en lenguaje ensamblador.
Y hablaremos de esto en más detalle, esta fase de preprocesamiento.
Pero solo necesitas saber ahora que hay dos etapas cuando
haces la compilación.
En el que nos vamos a enfocar o el que es fácil de entender
es la generación del código objeto.
Entonces el compilador va a Mire cada declaración y
se asegurará de que el que la sintaxis sea correcta y que se
cumpla la semántica del lenguaje.
La sintaxis es asegurarse de que el La estructura del código es correcta, que
tiene punto y coma en el final de
la declaración, que está utilizando tipos de datos, que está - está siguiendo las reglas del idioma.
La semántica es el significado de las palabras.
Entonces, si usa un if palabra clave, esa es una condición.
La semántica ocurre en el fase de compilación creando una tabla de
símbolos y así sucesivamente.
Pero el compilador es importante.
Va a generar este código de objeto.
Te dirá si tu tiene algún error en su sintaxis.
A veces también puede reconocer si tiene o no código muerto donde
básicamente no se está utilizando código.
No encuentra errores lógicos.
Solo encuentra errores de sintaxis.
Una vez más, la sintaxis es la reglas y lenguaje.
Los errores lógicos son el significado.
Como si cometieras un error en lógica, puede cometer un
error en la funcionalidad.
Para que su código se pueda ejecutar, se pueda compilar, pero puede que no funcione como se esperaba, y esto
se conoce como un error lógico.
El compilador no va a decir usted si tiene un error lógico.
Si pretendía pedirle al usuario un número en lugar de una cadena de caracteres o le pide al usuario su
último nombre antes de su nombre, eso es
un error lógico. El compilador no va para decirte ese tipo de errores.
Errores típicos reportados por el compilador van
a ser cosas como variables no declaradas, expresión que
no se ajusta a la sintaxis, no tienes el derecho paréntesis, tienes bloques
que no tienen bloques finales.
Te vas a volver muy muy familiarizado con los errores del
compilador y lo que significan.
Con suerte, después de que hayas aprendido el lenguaje c y
ejecuta el compilador, verá un error
y podrá solucionarlo de inmediato.
Di whoops, olvidé una sintaxis o Ups olvidé un punto
y coma, oh, olvidé proporcionar un derecho corchete para terminar ese bloque de código.
Se convertirá en una segunda naturaleza.
Así que después de arreglar todos los errores y
su compilación es exitosa, va a traducir a lenguaje ensamblador y generar
este código objeto.
Entonces el objeto real el código es un. o archivo.
Es el resumen real código de idioma que se ejecuta.
Tiene una extensión. obj o. o. obj normalmente en Windows será la extensión. o en Linux o Macintosh el sistema será la extensión.
Vas a ver ese archivo generado después de compilar su código.
Y esa es solo la fase final
de la compilación, ese es el lenguaje ensamblador real.
Va a ser binario, no parece texto,
no podrá verlo.
Va a tener un . o extensión, y eso es lo que
genera el compilador.
La forma en que ejecuta el compilador en c, realmente usas un comando.
Probablemente no necesites hacer
esto mucho porque el ide, el editor en el desarrollo integrado es lo hará por usted con solo hacer
clic en una opción de menú, pero es importante saber qué está pasando.
Entonces, cuando emite el compilador comando,
normalmente usa un compilador GNU que es un comando gcc.
Pero en el nivel básico, simplemente corres un programa compilador cc o gcc.
Ejecuta ese programa y luego especificas la entrada.
Recuerde, el compilador toma como entrada los archivos fuente.
La entrada se especifica mediante un -c marca y luego
especificando los archivos fuente, uno tras otro.
Los ejemplos aquí son cc-cmyprog. c o si está utilizando el compilador GNU, que es uno de
los más populares gcc-c.
Y si omite la bandera c, su El programa también se vinculará
automáticamente, que es el siguiente paso.
Pero realmente es fácil ejecutar eso compilador si estás en la interfaz de
línea de comandos.
Es incluso más fácil si solo use una opción de menú que probablemente
haremos en esta clase.
Pero de nuevo, se necesita input, los archivos fuente c.
En bloques de código, como mencioné,
vas a hacer clic en una opción de menú y compila automáticamente
un enlace y luego puede hacer clic en otro menú opción se ejecutará automáticamente.
Pero de nuevo, ¿qué está pasando debajo? el capó es que en realidad estás emitiendo el comando
del compilador con la -c bandera y los archivos de origen de entrada.
Después de compilar, enlaza. Como dije, todos los lenguajes de programación tienen un
enlace, pero muchos muchas veces es transparente, ni siquiera sabrá lo
que está sucediendo.
En c, el proceso de vinculación es importante porque no siempre es transparente.
Pero con la mayoría de
los IDE modernos de hoy, lo es, pero debo enfatizar que es importante en c.
Entonces, después de que el programa haya ha sido traducido a esto. código antiguo su código objeto, entonces está
listo para ser vinculado.
La razón por la que nos vinculamos es
si estamos usando bibliotecas externas tenemos que tomar todas esas otras bibliotecas y ponerlos en un programa.
Entonces, vincular es solo obtener todo las dependencias en su lugar y
la construcción de un archivo ejecutable real.
Entonces el . o archivo son los objetos.
A continuación, enlaza todos los . os en un ejecutable.
Y de nuevo, esto
suele ser transparente, generalmente ocurre automáticamente cuando compila.
Pero de nuevo, puede que no y es posible que tenga que hacer un
comando por separado, como -l o algo así.
Pero toma todos esos objetos archivos y crea un ejecutable.
Y el ejecutable es lo que ejecuta.
Entonces va a combinar todos esos.
Y luego también se combinará.
Y es posible que lo hayas hecho. os que son bibliotecas adicionales, que otros programas que desee utilizar
que alguien más escribió u
otras bibliotecas que vienen con el lenguaje c.
Te vas a llevar todo esos y ponerlos juntos.
Y la fase de vinculación también detecta y reporta errores.
Son dos fases separadas.
Vincular, de nuevo, normalmente sería como errores de redefinición o está intentando llamar a
una función que no existe.
Entonces, si no tienes eso. o presentar a invente todo el programa, tendrá
un error de vinculación.
Y necesitará tener todos los. o's.
Y nuevamente, el. o's puede que ni siquiera sea tuyo.
Pueden venir con el mismo idioma, pueden ser parte de la biblioteca estándar o
pueden venir con otra programa que alguien más escribió.
Pero necesitas todos esos. o's para formar un ejecutable.
Por lo tanto, las bibliotecas de programas admiten y extender el lenguaje C proporcionando rutinas para realizar operaciones
que no forman parte del idioma.
Las bibliotecas de entrada y salida son ejemplo,
biblioteca matemática, bibliotecas de manipulación de cadenas.
Esto es lo mismo si estás familiarizado con el programa Java, es lo
mismo que la API de Java.
Es lo mismo que los paquetes.
Es este concepto de
quiero escribir datos en un archivo que no quiero implementar
yo mismo, estoy va a utilizar una biblioteca existente que viene con el idioma.
Todavía está escrito en c, es solo alguien c viene con eso.
Entonces hay
todo tipo de diferentes bibliotecas sobre las que aprenderemos y usaremos.
Esto sucede parte de la fase de vinculación.
Entonces, una falla durante la fase de
vinculación significa que una vez más tienes que
volver atrás y editar tu código fuente para hacer asegúrese de que puede
encontrar ese archivo de objeto, por lo que muchas de las fallas generalmente significa que solo necesita incluir un archivo o algo así. Esta también se convertirá en una segunda naturaleza.
Éxito, si terminaste compilando correctamente, ha terminado de vincular correctamente,
que producirá un archivo ejecutable.
En un entorno de Windows, el
archivo ejecutable tendrá la extensión. extensión .exe.
En Linux y Windows, solo tiene por defecto un. fuera.
Puede cambiar el nombre de un. fuera a algo más
significativo simplemente emitiendo algo junto con el comando del compilador.
Pero la mayoría de los
IDE en bloques de código también tendrá un programa de
compilación y enlace en una sola operación y producir el ejecutable y luego puede simplemente hacer doble clic en el ejecutable
o puede ejecutar el ejecutable desde un comando o desde la opción del menú.
Pero no en el nivel bajo si estás en
Linux, verá una a. de forma predeterminada como ejecutable. En Windows, verá un. exe.
Un programa de cualquier tamaño significativo consistirá en varios archivos de código
fuente, lo mencioné anteriormente.
Cada archivo de código fuente necesita compilador para generar
el archivo objeto, que debe estar vinculado.
El programa es mucho más fácil de administrar dividiéndolo en
varios archivos fuente más pequeños.
Querrás usar muchas fuentes archivos y no desea un archivo fuente
que contenga 5000 líneas de código.
Eso no es coherente.
Eso no es fácil de administrar.
Entonces vas a crear archivos que
contienen código fuente, y el código fuente será específico.
Va a tener un funcionalidad específica.
Hace que sea mucho más fácil desarrolla
y es mucho más fácil de depurar y es mucho más cohesivo.
Entonces vas a tener muchos archivos fuente más pequeños.
No quieres archivos de origen grandes con miles de líneas de código.
Y todos estos archivos fuente son va a hacer todo el programa.
Todos van a tener su propio . o's, y todos
serán ingresados al compilador.
Todos estos conceptos que hacen hasta
el programa, esencialmente también se consideran un proyecto.
Puedes pensar en ello como que a un nivel superior.
Es tu proyecto, es tu programa.
Después de que finalmente hayas hecho todo esto y lo ha vinculado, tiene
su archivo ejecutable, luego puede ejecutar el programa.
En la mayoría de los IDE, esto es solo va a ser un
clic de menú o puede hacer doble clic en Windows, puede hacer doble clic en el archivo exe.
Y si estás en Linux, simplemente escribe un. fuera.
Ahora, cuando a. tienes que tener ciertos permisos, por lo que tal vez deba emitir un comando
de cambio de modo, pero para ejecutarlo puedes decir. /a. y eso ejecutará el programa desde
la línea de comandos Linux.
Pero de nuevo, por lo general no tienes que hacerlo preocuparse por esto. Entonces, la etapa
de ejecución es donde ejecuta su programa.
Cada uno de los enunciados del programa se ejecuta secuencialmente a su vez.
Si el programa solicita alguna
datos del usuario, el programa se detendrá y obtendrá esa entrada.
Puede obtener la entrada a través del teclado o puede obtener la entrada a través de la interfaz gráfica
de usuario si tiene bibliotecas para eso en su código c.
Resultados que se muestran por el programa
aparecen en una ventana llamada consola.
Y vamos a mostrar ejemplos de esto cuando hablamos de
bloques de código.
Pero cuando ejecuta su programa, normalmente, verá la salida.
No siempre, a veces los programas hacer cosas que no producen resultados.
Pero por lo general, producen resultados
y ves la salida directamente en el terminal o en la consola.
La etapa de ejecución también genera una amplia variedad de condiciones de error.
Entonces puedes producir el mal
salida que es solo un error lógico y tienes que volver y edite su código fuente.
Puede quedarse ahí y no hacer nada porque tienes problemas de lógica.
Y luego, por último,
puede estrellarse su computadora, que es el peor de los casos, lo que significa que
hiciste algo realmente malo en tu programa y
fue tan malo que el programa acaba de morir o simplemente
o en realidad causó otros programas en su sistema operativo para bloquear toda su computadora.
Entonces, ejecutando la aplicación c real puede causar problemas. Si el programa no realiza el funcionalidad deseada, entonces tienes que volver atrás
y editar la fuente
código que puede que tenga que reorganizar o rediseñar y
aquí es donde habló sobre los diferentes pasos.
Esto se conoce como depuración fase para encontrar y corregir sus errores.
Vamos a tener un todo
sección sobre depuración porque es tan importante.
Mencioné antes que uno Una de las mejores formas de aprender es
aprender a través de sus errores.
Vas a volver constantemente y editar el código fuente y depurarlo.
Todo el proceso de compilación,
vincular y ejecutar el programa se repite hasta que haya terminado,
hasta que tenga todos los resultados que necesita para la funcionalidad de ese código.
Así que aquí hay otra vez Ilustración que me gusta proporcionar.
Esto está tomado de un libro. llamado Beginning C por Horton.
Pero este es el proceso que vas a tener.
Vas a editar tu código fuente.
Vas a crear un archivo con un . c extensión y un nombre significativo.
Vas a usar un editor para hacer eso o
un IDE, entorno de desarrollo integrado, algo así como Bloques de código.
Luego lo vas a compilar.
El compilador va a generar un archivo obj un archivo o.
Si no genera ese
archivo, eso significa que tiene errores y tiene que volver atrás y corregirlos.
Después de crear los archivos obj, los archivos de objeto, luego debe vincularlos
todos juntos para crear un archivo ejecutable.
Y también podrías tener errores en esa fase
en la que no están vinculados correctamente.
Tienes que volver y edite su código fuente.
Una vez que realmente no tenga
errores y tiene un archivo ejecutable, puede ejecutar su programa.
Y de nuevo, después de ejecutar su programa, aún puede tener errores porque
podría haber errores lógicos.
Entonces volverías y edite su código fuente.
Así que esto se convertirá en
un proceso repetitivo con el que estará muy familiarizado.
Edite, compile, vincule, ejecute.
Y esto de nuevo es típicamente lo que haces en todos los idiomas.
Vas a hacer esto una y otra vez una y otra vez
hasta que su programa cumpla con todos sus requisitos.