Download Estructura de un programa C

Document related concepts

Programación funcional wikipedia , lookup

Haxe wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

APL wikipedia , lookup

Lisp wikipedia , lookup

Transcript
Estructura de un programa C
Lenguajes de Programación
1.- Lenguaje de alto nivel
2.- Lenguaje de bajo nivel (ensamblador)
3.- Lenguaje de máquina
1
C y otros Lenguajes
Ada
Alto Nivel
Modula-2
Pascal
Cobol
Fortran
BASIC
C
Bajo Nivel
Lenguaje macro-ensamblador
Lenguaje ensamblador.
1
Traductores
• Traducen el lenguaje de alto nivel a
lenguaje de máquina. Hay que distinguir
entre:
– Compiladores
– Interpretes
1
Lenguaje C
Es un lenguaje de propósito general.
Altamente transportable. Se considera un
lenguaje de alto nivel orientado a la
máquina
C fue creado por Brian Kernighan y Dennis
Ritchie en los laboratorios Bell de AT&T.
El sistema operativo Unix está escrito
principalmente en C. El sistema Linux es de
la familia Unix
Lenguaje C
• Características:
Programación Estructurada.
Economía de expresiones.
Gran cantidad de operadores y tipos de datos.
Codificación en alto y bajo nivel simultáneamente.
Reemplaza ventajosamente la programación en
ensamblador.
– Utilización natural de las funciones primitivas del sistema
operativo (Unix)
– De propósito general.
–
–
–
–
–
Lenguaje C
• Desventajas:
– No posee de instrucciones de entrada y salida.
– No posee de instrucciones de manejo de cadena
de caracteres.
– La libertad en la escritura en los programas
lleva a errores en la programación que, por ser
correctos sintácticamente no se detectan a
simple vista.
– La precedencia de operadores convierten las
expresiones en pequeños rompecabezas.
1
Historia
•
•
•
•
•
1967, Martin Richard crea el lenguaje BCPL
1970, Ken Thompson crea el lenguaje B.
– Transportable.
– Lenguaje evolucionado e independiente de la máquina.
1972, Dennis Ritchie y Brian Kernighan en los Laboratorios
Bell de AT&T crea el lenguaje C modicando el lenguaje B. Ken
Thompson reescribe Unix en C.
– Se diseñan tipos y estructuras de datos.
– Incluye punteros y funciones.
– Riqueza de operadores.
1983, el instituto de estándares americano (ANSI) crea un
estándar que definiera el lenguaje C.
1990, el estándar es adoptado.
1
Compiladores C
• Para el sistema operativo Linux:
– Gcc/ g++
• Para el sistema operativo Windows:
–
–
–
–
Turbo C/C++
Borland C/C++
Visual C++
Etc.
• Editores de texto para Linux:
– Vi, gedit, kedit, jed, emacs, etc..
1
Compilación y Ejecución
de un programa en C
• Compilación en el sistema operativo Linux:
gcc nombre_programa.c -o nombre_ejecutable
• Ejecución de un programa en Linux:
./nombre_ejecutable
1
Estructura de un programa
•Variables que “ven”
las sentencias
de todas las funciones
•Variables que “ven”
sólo las sentencias
de esta función
•La función con
nombre “main”
inicia la ejecución
variables globales
main(){
variables locales
secuencia de sentencias
}
f1(){
variables locales
secuencia de sentencias
}
....
•Otras ‘n’ posibles funciones
con sus variables locales.
(los nombres pueden ser otros)
fn(){
variables locales
secuencia de sentencias
}
1
Estructura de un programa
• Todos los programas en C consisten en una
o más funciones.
• La única función que debe estar
absolutamente presente es la denominada
main() , es la función por la que comienza la
ejecución del programa.
1
Estructura de memoria de C
Pila
Montón
Variables Globales
Instrucciones del
programa
1
Primer Programa
• Ejemplo, el primer programa:
•Es un encabezado
•Es un comentario
No es ejecutado
•Lo que está entre comillas
sale en pantalla
#include <stdio.h>
/*Incluye los prototipos de una librería de
entrada y salida estándar*/
void main(){
printf(“Hola Mundo!!\n”);
printf(“Bienvenidos a Lenguaje Programación\n”);
}
1
Programa ejecutable
• Pasos para obtener un programa ejecutable:
Programas usuario:
Programa
Fuente 1
Compilador
Programa
Objeto
Programas
Programas
Programas
Fuente
Fuente
Fuente
Programa
Fuente n
Compilador
Compilador
Compilador
Compilador
Programa
Objeto
Librerías:
Programas
Programas
Programas
Objeto
Objeto
Objeto
Enlace
Programa
Ejecutable
1