Lenguaje c1

9
Universidad Fermín Toro Facultad de Ingeniería Estudiante: Javier A. Paris R. C.I. 20.539.759 Materia: Computación para

Transcript of Lenguaje c1

Page 1: Lenguaje c1

Universidad Fermín ToroFacultad de Ingeniería

Estudiante:Javier A. Paris R.C.I. 20.539.759Materia:Computación para Ingenieros

Page 2: Lenguaje c1

C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador puede utilizar la totalidad del lenguaje.

Lenguaje C

La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en 1970 para el primer sistema UNIX en un DEC PDP-7. Estos son lenguajes sin tipos, al contrario que el C que proporciona varios tipos de datos. Los tipos que ofrece son caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones. El primer compilador de C fue escrito por Dennis Ritchie para un DEC PDP-11 y escribió el propio sistema operativo en C.

Page 3: Lenguaje c1

CaracterísticasPropiedades:• Un núcleo del lenguaje simple, con funcionalidades añadidas

importantes, como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas.

• Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de ruptura).

• Un sistema de tipos que impide operaciones sin sentido.• Usa un lenguaje de preprocesado, el preprocesador de C, para

tareas como definir macros e incluir múltiples archivos de código fuente.

• Acceso a memoria de bajo nivel mediante el uso de punteros.• Interrupciones al procesador con uniones.• Un conjunto reducido de palabras clave.

Page 4: Lenguaje c1

Características

Carencias• Recolección de basura nativa, sin embargo se encuentran a tal

efecto bibliotecas como la "libgc" desarrollada por Sun Microsystems, o el Recolector de basura de Boehm.

• Soporte para programación orientada a objetos, aunque la implementación original de C++ fue un preprocesador que traducía código fuente de C++ a C.

• Funciones anidadas, aunque GCC tiene esta característica como extensión.

Soporte nativo para programación multihilo.

Page 5: Lenguaje c1

FuncionesUn programa C está formado por un conjunto de funciones que al menos contiene la función main. Una función se declara con el nombre de la función precedido del tipo de valor que retorna y una lista de argumentos encerrados entre paréntesis. El cuerpo de la función está formado por un conjunto de declaraciones y de sentencias comprendidas entre llaves. Veamos un ejemplo de utilización de funciones:

#include <stdio.h>#define VALOR 5#define FACT 120int fact_i ( int v ){int r = 1, i = 0;while ( i <= v ){r = r * i;i = i + 1;}return r;}int fact_r ( int v )

{if ( v == 0 ) return 1;else return v * fact_r(v-1);}main() {int r, valor = VALOR;if ( (r = fact_i(valor)) != fact_r(valor) ) printf("Codificación errónea!!.\n");else if ( r == FACT ) printf("Codificación correcta.\n");else printf("Algo falla!!.\n");}

Page 6: Lenguaje c1

Ventajas

• 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.

Page 7: Lenguaje c1

Desventajas

• El mayor problema que presenta el lenguaje C frente a los lenguajes de tipo de dato dinámico es la gran diferencia en velocidad de desarrollo: 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. En otros lenguajes (como BASIC, Matlab o C#) la memoria es gestionada de forma transparente para el programador. Esto alivia la carga de trabajo humano y en muchas ocasiones evita errores, aunque también supone mayor carga de trabajo para el procesador.

• 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[cita requerida].

• Cabe destacar el contexto y época en la que fue desarrollado C. En aquellos tiempos existían muy pocos programadores, los cuales, a su vez, eran prácticamente todos expertos en el área. De esta manera, se asumía que los programadores eran conscientes de sus trabajos y capaces de manejar perfectamente el lenguaje. Por esta razón es muy importante que los recién iniciados adopten buenas prácticas a la hora de escribir en C y manejar la memoria, como por ejemplo un uso intensivo de indentación y conocer a fondo todo lo que implica el manejo de punteros y direcciones de memoria.

Page 8: Lenguaje c1

UtilidadEl lenguaje de programación C está caracterizado por ser de uso general, con una sintaxis sumamente compacta y de alta portabilidad, de fácil aprendizaje.Es común leer que se lo caracteriza como un lenguaje de “bajo nivel”. No debe confundirse el término “bajo” con “poco”, ya que el significado del mismo es en realidad “profundo”, en el sentido que C maneja los elementos básicos presentes en todas las computadoras: caracteres, números y direcciones.Esta particularidad, junto con el hecho de no poseer operaciones de entrada-salida, manejo de arreglo de caracteres, de asignación de memoria, etc , puede al principio parecer un grave defecto; sin embargo el hecho de que estas operaciones se realicen por medio de llamadas a Funciones contenidas en Librerías externas al lenguaje en sí, es el que confiere al mismo su alto grado de portabilidad, independizándolo del “Hardware” sobre el cual corren los programas, como se irá viendo a lo largo del aprendizaje de este novedoso lenguaje de programación.La descripción del lenguaje se realiza siguiendo las normas del ANSI C, por lo tanto, todo lo expresado será utilizable con cualquier compilador que se adopte; sin embargo en algunos casos particulares se utilizaron funciones Compilador ó Sistema Operativo-dependientes, explicitándose en estos casos la singularidad de las mismas.

Page 9: Lenguaje c1

Ejemplos/* Ejemplo 1. Programa DOCENA.C */#include <stdio.h>main (){int docena;docena = 12;printf ("Una docena son %d unidades\n", docena);}Este programa hace aparecer en pantalla la frase "Una docena son 12 unidades".