Upload
guaicaipuro-nunez
View
218
Download
1
Embed Size (px)
DESCRIPTION
Articulos sobre Lenguaje C
Citation preview
Lenguaje C
Luisa Hernández
Guaicaipuro Núñez
Alfredo Ali Avila Barrios
Carlos Augusto Lopes Alvarez
Jim Alexander Pulgar Torres
Integrantes:
Se trata de un lenguaje fuertemente tipificado de medio nivel pero con
muchas características de bajo nivel. Dispone de las estructuras típicas
de los lenguajes de alto nivel pero, a su vez, dispone de construcciones
del lenguaje que permiten un control a muy bajo nivel. Los
compiladores suelen ofrecer extensiones al lenguaje que posibilitan
mezclar código en ensamblador con código C o acceder directamente
a memoria o dispositivos periféricos.
Desde su nacimiento se fue implantando como el lenguaje de
programación de sistemas favorito para muchos programadores,
sobre todo por ser un lenguaje que conjugaba la abstracción de
los lenguajes de alto nivel con la eficiencia del lenguaje máquina.
Los programadores de sistemas que trabajaban sobre MS-DOS y
Macintosh también utilizaban C, con lo cual la práctica totalidad
de aplicaciones de sistema para microordenadores y para sistemas
UNIX está escrita en este lenguaje.
Creado entre 1970 y 1972 por Brian Kernighan y Dennis Ritchie para escribir
el código del sistema operativo UNIX.
Autor: Luisa Hernández
•Orientado a la programación de sistemas
•Es altamente transportable
•Es muy flexible
•Genera código muy eficiente
•Es muy expresivo (se pueden realizar muchas funciones
escribiendo pocas líneas de código)
•Es muy poco modular
•Hace pocas comprobaciones
•Da poca disciplina al programador
•Es difícil leer código escrito por otras personas
Características
El preprocesador
Transforma el programa fuente, convirtiéndolo en otro
archivo fuente “predigerido”. Las transformaciones incluyen:
Eliminar los comentarios.
Incluir en el fuente el contenido de los ficheros declarados
con#include <fichero> (a estos ficheros se les suele
llamarcabeceras)
Sustituir en el fuente las macros declaradas con #define (ej.
#define CIEN 100)
Fases de desarrollo de un programa en C
El compilador
Convierte el fuente entregado por el
preprocesador en un archivo en
lenguaje máquina: fichero objeto.
Algunos compiladores pasan por una
fase intermedia en lenguaje
ensamblador.
El enlazador
Un fichero objeto es código máquina, pero no se puede ejecutar, porque le falta
código que se encuentra en otros archivos binarios.
El enlazador genera el ejecutable binario, a partir del contenido de los ficheros
objetos y de las bibliotecas. Las bibliotecas contienen el código de funciones
precompiladas, a las que el archivo fuente llama (por ejemplo printf)
El lenguaje C es muy simple. Carece de tipos y servicios que forman parte de otros lenguajes.
No tiene tipo booleano, ni manejo de cadenas, ni manejo de memoria dinámica.
No obstante, el estándar de C define un conjunto de bibliotecas de funciones, que
necesariamente vienen con todo entorno de compilación de C y que satisfacen estos servicios
elementales.
Las interfaces de estos servicios vienen definidas en unos ficheros cabeceras (header files ).
El nombre de estos ficheros suele terminar en .h
Algunos de los servicios proporciona los por las bibliotecas estándares son:
Entrada y salida de datos (stdio.h)
Manejo de cadenas (string.h)
Memoria dinámica (stdlib.h)
Rutinas matemáticas (math.h)
Bibliotecas estándares
Componentes del lenguaje C
Estructuras de datos
•Literales
•Tipos básicos (todos numéricos)
•Tipos enumerados
•Tipos estructurados (struct, union)
•Punteros y vectores.
Construcciones algorítmicas
•Construcciones condicionales (if,switch)
•Construcciones Iterativas(while,for,do...while)
•Subrutinas (funciones)
Además de lo anterior, el C tiene otros elementos:
•Comentarios
•Inclusión de ficheros
•Macros
•Compilación condicional
El preprocesador es quien normalmente se encarga de
interpretar estas construcciones.
Sigue el paradigma de la programación estructurada:
Algoritmos+estructuras de datos = programas
Ejemplo de código
El siguiente programa imprime en pantalla
la frase "Hola Mundo" (C99).
#include <stdio.h>
main()
{ /* Aqui se escribe el mensaje*/
printf (“Mensaje que escribimos anteriormente”);}
Se trata de una maquina de alimentos que tiene productos de tres tipos, A, B, C, valen respectivamente $270, $340, $390. La maquina
acepta y da vuelto monedas de $10, $50 y $100. El usuario debe elegir el producto y luego debe ingresar las monedas hasta alcanzar el monto apagar. Si el monto ingresado es mayor que el precio del
producto, el programa debe entregar las monedas de vuelto, una por una.
EJEMPLO DE PROGRAMACIÓN EN LENGUAJE C
Autor: Guaicaipuro Núñez
El programa se elaboró considerando las especificaciones el cual establecía
la venta de tres artículos de diferentes precios aceptando solo tres
denominaciones de monedas y con la posibilidad de dar vuelto al pagar
mas. Lo primero que se escribe es la cabecera , colocándose la directiva y
las librerías que se necesitan (funciones que el programa ya tiene
preestablecidos). Posteriormente se designaron las variables (que son un
espacio de memoria al que se le asignan un nombre y en el que se
almacenan datos que pueden cambiar o variar) a través de la palabra int
(son variables de tipo numéricos). Se coloco el main , que es la función
principal del programa, todo el código de programación va dentro de las
llaves, el while para seleccionar alguno de los tres productos y presionando
el numero cero terminamos el programa. Una vez seleccionado el articulo a
comprar en el programa principal se llama al procedimiento pagar, acá va
solicitando que se introduzca el dinero una moneda a la vez, cada moneda
se valida para que sea de uno de los 3 valores permitidos y el monto
restante va disminuyendo hasta que se ha pagado completamente o incluso
mas, luego se llama al procedimiento vuelto, el cual devuelve el dinero
adicional con las monedas cantidad presentando las monedas en pantalla.
•Lenguaje muy eficiente puesto
que es posible utilizar sus
características de bajo nivel para
realizar implementaciones
óptimas.
•A pesar de su bajo nivel es el
lenguaje más portado en
existencia,
habiendo compiladores para casi
todos los sistemas conocidos.
•Proporciona facilidades para
realizar programas modulares
y/o utilizar código o bibliotecas
existentes.
Ventajas
•Es más lento programar en C, sobre todo para el
principiante. La razón estriba en que el compilador de C se
limita a traducir código sin apenas añadir nada.
•La gestión de la memoria es un ejemplo clásico: en C el
programador ha de reservar y liberar la memoria
explícitamente.
•El mantenimiento en algunos casos puede ser más difícil y
costoso que con ciertos lenguajes de más alto nivel. El código
en C se presta a sentencias cortas y enrevesadas de difícil
interpretación.
•Aunque el lenguaje admite código escrito de forma
fácilmente legible, si no se siguen normas en el equipo de
programación algunos programadores pueden acabar
escribiendo código difícil de leer. Esto complica la revisión y
el mantenimiento.
Desventajas
•Hecho principalmente para la fluidez de programación en sistemas UNIX. Se usa
también para el desarrollo de otros sistemas operativos como Windows o GNU/Linux.
Igualmente para aplicaciones de escritorio como GIMP, cuyo principal lenguaje de
programación es C.
•De la misma forma, es muy usado en aplicaciones científicas (para experimentos
informáticos, físicos, químicos, matemáticos, entre otros), industriales
(industria robótica, cibernética, sistemas de información y base de datos para
la industria petrolera y petroquímica), simulaciones de vuelo.
•Se puede seguir encontrando código C en grandes desarrollos de animaciones,
modelados y escenas en 3D en películas y otras aplicaciones multimedia.
Aplicaciones
Autor: Carlos Augusto Lopes Alvarez
C es un lenguaje de programación de nivel medio ya que combina los
elementos del lenguaje de alto nivel con la funcionalidad del ensamblador
Autor: Alfredo Ávila
Lenguaje C
Palabras Reservadas en C Las palabras reservadas son aquellas en las cuales solo se usan para especificar
una orden, condición o sentencia.
Comentario (// ó /* */)
Identificadores : Se utilizan para nombrar variables, funciones,
etiquetas y elementos que definen los usuarios
Constantes
Variables
Operadores: son palabras o símbolos que implican una acción
sobre alguna variable
Instrucciones
Macros del pre- procesador
Elementos de un Programa
Autor: Alfredo Ávila
•ERROR DE SINTAXIS: Estos errores son producidos, cuando se hace mal uso de las reglas del
lenguaje de programación, y se violan las normas de sintaxis, de ese lenguaje (en nuestro caso C);
estos errores son fáciles de detectar por que generalmente es el compilador, que los identifica (Y hasta
muestra la línea donde se encuentra dicho error, pero eso depende de la versión del compilador que
estemos usando).
•ERRORES DE EJECUCIÓN: Estos errores se producen , cuando le indicamos a la computadora,
realizar una determinada acción, y esta la comprende, pero no puede ejecutarla. Por ejemplo,
indicarle a la computadora una división entre cero, sumar dos variables a las cuales no se les ha
signado valor alguno, etc.
•ERRORES DE LÓGICA: Muchas veces, cuando estamos programando, el compilador no nos indica
errores de sintaxis, ni de lógica; pero el resultado de nuestro programa, esta fuera del rango esperado,
esto es producto de un error de lógica en el código de nuestro programa. Este tipo de errores son
muy difíciles de identificar y por supuesto de corregir, ya que generalmente hay que revisar línea por
línea de nuestro programa. Ejemplo: El sueldo negativo de un empleado, etc.
Errores Típicos en C
Autor: Alfredo Ávila
A mediados de los años 60s, Martin Richards diseñó el lenguaje BCPL con la finalidad de usarlo para escribir software de
sistemas operativos y compiladores.
En 1969, Ken Thompson escribió el Lenguaje B, en Bell Laboratories, con el objetivo de recodificar UNIX (escrito
hasta ese momento en lenguaje ensamblador) usando un lenguaje de alto nivel más portable y flexible.
Durante los siguientes años, Dennis Ritchie modificó el lenguaje B, llegando a crear el lenguaje C y reescribiendo
el sistema UNIX en dicho lenguaje; añadió características nuevas, como son el diseño de tipos y las estructuras de datos.
En 1978, Dennis Ritchie y Brian Kernighan publicaron la primera edición del libro El lenguaje de programación C.
Este libro fue durante años la especificación informal del lenguaje. El lenguaje descrito en la primera edición de este libro, fue
conocido como "el C de Kernighan y Ritchie" o simplemente "K&R C". En este libro se introdujeron nuevas características al
lenguaje: los tipo de datos struct, long int y unsigned int; los operadores =+ y =- fueron sustituidos por += y -=.
A mediados de los años 80, Bjarne Stroustrup (también de los laboratorios Bell), crea el lenguaje C++, un lenguaje
basado en C, con numerosas características adicionales, siendo la principal que está orientado a objetos. Si bien se han creado
muchos lenguajes basados en C, C++ es el que ha permanecido más asociado a C.
En los años siguientes a la publicación del C de Kernighan y Ritchie, se añadieron al lenguaje muchas características
no oficiales, que estaban presentes en algunos compiladores y no en otros. Fue por ello que en 1989 ANSI (American National
Standards Institute) publicó el primer estándar oficial de C, que es conocido como ANSI C.
Autor: Jim Pulgar
EVOLUCIÓN DEL LENGUAJE C
En este estándar se tomaron muchas de las funcionalidades no oficiales y se agregaron funcionalidades nuevas como
los prototipos de función, y un preprocesador mejorado. También se cambió la sintaxis de la declaración de
parámetros de funciones, para que incluyeran el tipo junto con el nombre.
Al año siguiente, en 1990 se publicó la estandarización ISO del lenguaje. Este estándar es básicamente el
estándar ANSI, con unas pocas modificaciones de formato. A este estándar se lo conoce, entonces, como C89, o
C90, y se trata del mismo lenguaje.
Basándose en el estándar ANSI que estaba en preparación, en 1988 Kernighan y Ritchie publicaron la segunda
edición de su libro, que es aún hoy utilizada como una de las referencias principales del lenguaje.
Durante los siguientes años, el lenguaje C permaneció sin demasiados cambios. Sin embargo, como había
sucedido antes, los distintos compiladores fueron incorporando características adicionales, que otros compiladores
no tenían, siendo C++ la principal influencia.
Fue por ello que a finales de los noventa se decidió revisar el estándar de C, lo que llevó a la publicación
del estándar C99. Este estándar incluye varias nuevas características como son: las funciones inline; la posibilidad de
declarar variables en cualquier parte del código; los comentarios de una sola línea utilizando //; los tipos de datos
long long int, bool y complex, entre otras.
Aún hoy el proceso de evolución del lenguaje sigue avanzando, y desde 2007 se está trabajando en el
armado de un nuevo estándar.