lunes, 30 de abril de 2018

C lenguaje de programación

C (lenguaje de programación)


C es un lenguaje de programación originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell,2​ como evolución del anterior lenguaje B, a su vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la implementación de Sistemas operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.


Se trata de un lenguaje de tipos de datos estáticos, débilmente tipificado, de medio nivel, ya que 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.

Características

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.
Por defecto, el paso de parámetros a una función se realiza por valor. El paso por referencia se consigue pasando explícitamente a las funciones las direcciones de memoria de dichos parámetros.
Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo.

Tipos de datos agregados (struct) que permiten que datos relacionados (como un empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un todo (en una única variable "empleado").

¿Para qué sirve ?

C es un lenguaje de programación de larga historia si lo comparamos con otros surgidos más recientemente. C ha tenido distintos usos a lo largo de la historia, con aplicaciones en sistemas operativos, compiladores y desarrollo de software. No queremos entrar a profundizar en estos conceptos ya que exceden el objetivo que tenemos que es aprender fundamentos de programación. Simplemente diremos que un programa podemos verlo como “un servicio”. Podríamos hacer una analogía con una peluquería: el servicio de peluquería no puede ofrecerse “en el aire”, tiene que hacerse en un local que le proporcione las cosas más básicas necesarias (electricidad, agua, etc.). Este local o base sería para nosotros un sistema operativo (tipo MS-DOS, Windows, MacOS, Linux, Unix, etc.): una base que provee los servicios básicos para que los programas puedan funcionar.

Por otro lado para que las ideas se transformen en un peinado del cliente el peluquero necesita algo que se encargue de la transformación: pongamos por caso “máquinas o herramientas” como tijeras o secadoras de pelo que traducen las ideas (programas) en hechos. Esto sería en nuestro caso el compilador: a partir de la idea expresada por el programador (programa) el compilador se encarga de generar el código binario o transformado y útil para ser ejecutado en el ordenador (el producto). Por último tendríamos el software o producto. En el caso de la peluquería podría haber distintos productos como “servicio de corte, lavado y secado”, “servicio de tinte”, “servicio de peinado”, etc. y todos estos servicios son posibles gracias a que existen los servicios básicos y herramientas de transformación. En nuestro caso podremos generar programas, tantos como queramos, gracias a que disponemos de un sistema operativo (que nos facilita nuestros servicios básicos) y un compilador (nuestra herramienta para transformar las ideas en hechos).

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. Véase también la librería GObject.
Funciones anidadas, aunque GCC tiene esta característica como extensión.
Soporte nativo para programación multihilo. Disponible usando librerías como libpthread.
Aunque la lista de las características útiles de las que carece C es larga, este factor ha sido importante para su aceptación, porque escribir rápidamente nuevos compiladores para nuevas plataformas, mantiene lo que realmente hace el programa bajo el control directo del programador, y permite implementar la solución más natural para cada plataforma. Ésta es la causa de que a menudo C sea más eficiente que otros lenguajes. Típicamente, sólo la programación cuidadosa en lenguaje ensamblador produce un código más rápido, pues da control total sobre la máquina, aunque los avances en los compiladores de C y la complejidad creciente de los microprocesadores modernos han reducido gradualmente esta diferencia.

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.
Estructura de Programación en “C”
Encabezados <ficheros.h> en el se almacenan las funciones que trae el lenguaje propio o las funciones nuestras se les llaman Librerías. Las funciones de C dan mucha potencia al programador en podemos realizar los programas con mucha potencia y facilidad de código.

Constantes simbólicas en el se definen las constantes de nuestro programa es lo único que se escribe en mayúsculas. ej.: #define ENERO 31

Nota: (las constantes son variables que conservan el mismo valor todo el programa una vez que incluimos una constante en nuestro programa el compilador va a sustituir el texto contenido en la constante por el texto del mismo.)

Cabecera de funciones es la llamadas a las funciones que se encuentran el mismo programa y al final del.

Función principal MAIN() en el se desarrollara todo el código del programa las llamadas a funciones procedimientos etc. (es una función que sé autoejecuta cuando se compila el programa).

Follow me

@Way2themes

Follow Me