SlideShare una empresa de Scribd logo
Lenguaje de Programación C.
C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en
los Laboratorios Bell como evolución del anterior es decir el 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 débilmente 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.

La primera estandarización del lenguaje C fue en ANSI, con el estándar
X3.159-1989. El lenguaje que define este estándar fue conocido
vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como
estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy
amplia por lo que, si los programas creados lo siguen, el código es portátil
entre plataformas y/o arquitecturas. En la práctica, los programadores
suelen usar elementos no-portátiles dependientes del compilador o del
sistema operativo.




Aplicaciones.
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 Linux. Igualmente para aplicaciones de escritorio como
OpenOffice.org, 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,
parte de ellos conocidos como modelos y simuladores), industriales
(industria robótica, cibernética, sistemas de información y base de datos
para la industria petrolera y petroquímica.
Predominan también todo lo que se refiere a simulación de máquinas de
manufactura), simulaciones de vuelo (es la más delicada, ya que se tienen
que usar demasiados recursos tanto de hardware como de software para
desarrollar aplicaciones que permitan simular el vuelo real de una aeronave.
Se aplica por tanto, en diversas áreas desconocidas por gran parte de los
usuarios noveles.
Los ordenadores de finales de los 90 son varios órdenes de magnitud más
potentes que las máquinas en que C se desarrolló originalmente. Programas
escritos en lenguajes de tipo dinámico y fácil codificación (Ruby, Python,
Perl...) que antaño hubieran resultado demasiado lentos, son lo bastante
rápidos como para desplazar en uso a C. Aun así, se puede seguir
encontrando código C en grandes desarrollos de animaciones, modelados y
escenas en 3D en películas y otras aplicaciones multimedia.
Actualmente, los grandes proyectos de software se dividen en partes,
dentro de un equipo de desarrollo. Aquellas partes que son más
"burocráticas" o "de gestión" con los recursos del sistema, se suelen
realizar en lenguajes de tipo dinámico o de guión (script), mientras que
aquellas partes "críticas", por su necesidad de rapidez de ejecución, se
realizan en un lenguaje de tipo compilado, como C o C++. Si, después de
hacer la división, las partes críticas no superan un cierto porcentaje del
total (aproximadamente el 10%) entonces todo el desarrollo se realiza con
lenguajes dinámicos. Si la parte crítica no llega a cumplir las expectativas
del proyecto, se comparan las alternativas de una inversión en nuevo
hardware frente a invertir en el coste de un programador para que
reescriba dicha parte crítica.


Aplicaciones embebidas
C es el lenguaje común para programar sistemas embebidos. El código ligero
que un compilador C genera, combinado con la capacidad de acceso capas del
software cercanas al hardware son la causa de su popularidad en estas
aplicaciones.
Un característica donde C demuestra comodidad de uso particularmente
valiosa en sistemas embebidos es la manipulación de bits. Los sistemas
contienen registros mapeados en memoria (en inglés, MMR) a través de los
cuales los periféricos se configuran. Estos registros mezclan varias
configuraciones en la misma dirección de memoria, aunque en bits distintos.
Con C es posible modificar fácilmente uno de estos bits sin alterar el resto.
Por ejemplo:
int *mmr; /* puntero al registro que queremos modificar */
mmr = 0x40008ABC; /* dirección de memoria del registro */

* mmr |= 1<<7; /* pone a 1 el bit 7 sin modificar los demás */
* mmr &= ~(1<<12) /* pone a 0 el bit 12 sin modificar los demás */
Este tipo de manipulación es muy tediosa o sencillamente imposible en otros
lenguajes de alto nivel.
Otras características de C consideradas desventajas en la programación
para PC -como la ausencia de control de memoria automático- se convierten
en ventajas cuando los sistemas embebidos necesitan código pequeño y
optimizado. Ese es el caso de los sistemas basados en microcontroladores
de poca potencia como el intel 8051 o muchos sistemas ARM.



Códigos.
La compilación de un programa C se realiza en varias fases que normalmente
son automatizadas y ocultadas por los entornos de desarrollo:

   1. Preprocesado consistente en modificar el código fuente en C según
      una serie de instrucciones (denominadas directivas de preprocesado)
      simplificando de esta forma el trabajo del compilador. Por ejemplo,
      una de las acciones más importantes es la modificación de las
      inclusiones (#include) por las declaraciones reales existentes en el
      archivo indicado.
   2. Compilación que genera el código objeto a partir del código ya
      preprocesado.
   3. Enlazado que une los códigos objeto de los distintos módulos y
      bibliotecas externas (como las bibliotecas del sistema) para generar
      el programa ejecutable final.




Ejemplo de código
El siguiente programa imprime en pantalla la frase "Hola Mundo" (C99).
# include <stdio.h> // necesario para utilizar printf()
int main(void)
{
         printf("Hola Mundon");
         // return 0 implícito en C99 para main().
}
El siguiente escribe "Hola Mundo" en C89
/* comentarios con '//' no permitidos en C89, sí en C99 */
# include <stdio.h> /* necesario para utilizar printf */

main() /* tipo 'int' de retorno implícito */
{
        printf ("Hola Mundon") ;
        return 0;
}


Programas.
Ejemplos.

Vala, C#, Objective-C, C++, AWK, bc, Java

Más contenido relacionado

La actualidad más candente

Historia de los compiladores
Historia de los compiladoresHistoria de los compiladores
Historia de los compiladoresAlex Toapanta
 
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++DarioManzano
 
PRESENTACION LENGUAJE C
 PRESENTACION LENGUAJE C  PRESENTACION LENGUAJE C
PRESENTACION LENGUAJE C Niel Velasquez
 
Mi lenguaje de programación de preferencia c++
Mi lenguaje de programación de preferencia c++Mi lenguaje de programación de preferencia c++
Mi lenguaje de programación de preferencia c++bastard1
 
Programa en lenguaje C, Hildemaro Sequera, MI-42
Programa en lenguaje C, Hildemaro Sequera, MI-42Programa en lenguaje C, Hildemaro Sequera, MI-42
Programa en lenguaje C, Hildemaro Sequera, MI-42Hildemaro Sequera
 
Historia y caracteristicas del lenguaje c opt
Historia y caracteristicas del lenguaje c optHistoria y caracteristicas del lenguaje c opt
Historia y caracteristicas del lenguaje c optMarvin Romero
 
Resolucion de problemas y algoritmos
Resolucion de problemas y algoritmosResolucion de problemas y algoritmos
Resolucion de problemas y algoritmosmiguelskillet
 
Introduccion al lenguaje_c
Introduccion al lenguaje_cIntroduccion al lenguaje_c
Introduccion al lenguaje_cNelson1914
 
Historia del C++ y JAVA
Historia del C++ y JAVAHistoria del C++ y JAVA
Historia del C++ y JAVANohemi Cuesta
 
6 lenguajec++
6 lenguajec++6 lenguajec++
6 lenguajec++alithu1
 
Breve Historia de C/C/++
Breve Historia de C/C/++Breve Historia de C/C/++
Breve Historia de C/C/++Luna Hermes
 
Qué es el lenguaje c
Qué es el lenguaje cQué es el lenguaje c
Qué es el lenguaje cevelynabigail
 

La actualidad más candente (20)

Historia de los compiladores
Historia de los compiladoresHistoria de los compiladores
Historia de los compiladores
 
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
HISTORIA DEL LENGUAJE DE PROGRAMACIÓN C++
 
Programacion 1 feli
Programacion 1 feliProgramacion 1 feli
Programacion 1 feli
 
01 - Introducción al lenguaje C
01 - Introducción al lenguaje C01 - Introducción al lenguaje C
01 - Introducción al lenguaje C
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
1 estructura programa-c
1 estructura programa-c1 estructura programa-c
1 estructura programa-c
 
PRESENTACION LENGUAJE C
 PRESENTACION LENGUAJE C  PRESENTACION LENGUAJE C
PRESENTACION LENGUAJE C
 
2 estructura programa-c
2 estructura programa-c2 estructura programa-c
2 estructura programa-c
 
Mi lenguaje de programación de preferencia c++
Mi lenguaje de programación de preferencia c++Mi lenguaje de programación de preferencia c++
Mi lenguaje de programación de preferencia c++
 
Lenguaje PHP
Lenguaje PHPLenguaje PHP
Lenguaje PHP
 
11
1111
11
 
Programa en lenguaje C, Hildemaro Sequera, MI-42
Programa en lenguaje C, Hildemaro Sequera, MI-42Programa en lenguaje C, Hildemaro Sequera, MI-42
Programa en lenguaje C, Hildemaro Sequera, MI-42
 
Historia y caracteristicas del lenguaje c opt
Historia y caracteristicas del lenguaje c optHistoria y caracteristicas del lenguaje c opt
Historia y caracteristicas del lenguaje c opt
 
Resolucion de problemas y algoritmos
Resolucion de problemas y algoritmosResolucion de problemas y algoritmos
Resolucion de problemas y algoritmos
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Introduccion al lenguaje_c
Introduccion al lenguaje_cIntroduccion al lenguaje_c
Introduccion al lenguaje_c
 
Historia del C++ y JAVA
Historia del C++ y JAVAHistoria del C++ y JAVA
Historia del C++ y JAVA
 
6 lenguajec++
6 lenguajec++6 lenguajec++
6 lenguajec++
 
Breve Historia de C/C/++
Breve Historia de C/C/++Breve Historia de C/C/++
Breve Historia de C/C/++
 
Qué es el lenguaje c
Qué es el lenguaje cQué es el lenguaje c
Qué es el lenguaje c
 

Similar a Lenguaje De ProgramacióN C

Similar a Lenguaje De ProgramacióN C (20)

Presentación lenguaje c (pedro luis rodriguez c.i. 16388340)
Presentación lenguaje c (pedro luis rodriguez c.i. 16388340)Presentación lenguaje c (pedro luis rodriguez c.i. 16388340)
Presentación lenguaje c (pedro luis rodriguez c.i. 16388340)
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1
 
Diseño de Algoritmos
 Diseño de Algoritmos Diseño de Algoritmos
Diseño de Algoritmos
 
Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacion
 
Pul123
Pul123Pul123
Pul123
 
Lenguaje c nardy y daniela
Lenguaje c nardy y danielaLenguaje c nardy y daniela
Lenguaje c nardy y daniela
 
Informe.
Informe.Informe.
Informe.
 
Aplicacion de c
Aplicacion de cAplicacion de c
Aplicacion de c
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Lenguaje c++
Lenguaje c++Lenguaje c++
Lenguaje c++
 
Karen y Vivian
Karen y VivianKaren y Vivian
Karen y Vivian
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Tema 1 Programación I. 05-02-23.pdf
Tema 1 Programación I. 05-02-23.pdfTema 1 Programación I. 05-02-23.pdf
Tema 1 Programación I. 05-02-23.pdf
 
Programacion 1 feli
Programacion 1 feliProgramacion 1 feli
Programacion 1 feli
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Lenguje c.PRESENTACION
Lenguje c.PRESENTACIONLenguje c.PRESENTACION
Lenguje c.PRESENTACION
 
Reconocimiento de voz c#
Reconocimiento de voz c#Reconocimiento de voz c#
Reconocimiento de voz c#
 
2 intcomp milexisromero
2 intcomp milexisromero2 intcomp milexisromero
2 intcomp milexisromero
 

Más de jengibre

Sabrositas-Organizacion.Modernizacion.
Sabrositas-Organizacion.Modernizacion.Sabrositas-Organizacion.Modernizacion.
Sabrositas-Organizacion.Modernizacion.jengibre
 
Sistema Experto
Sistema ExpertoSistema Experto
Sistema Expertojengibre
 
PráCtica Numero 8
PráCtica Numero 8PráCtica Numero 8
PráCtica Numero 8jengibre
 
Practica NúMero 7
Practica NúMero 7Practica NúMero 7
Practica NúMero 7jengibre
 
Practica NúMero 6
Practica NúMero 6Practica NúMero 6
Practica NúMero 6jengibre
 
Practica NúMero 5
Practica NúMero 5Practica NúMero 5
Practica NúMero 5jengibre
 
PráCtica Numero 4
PráCtica Numero 4PráCtica Numero 4
PráCtica Numero 4jengibre
 
PráCtica 3
PráCtica 3PráCtica 3
PráCtica 3jengibre
 
Componentes Internos De Un Cpu
Componentes Internos De Un CpuComponentes Internos De Un Cpu
Componentes Internos De Un Cpujengibre
 
Empresa.♣
Empresa.♣Empresa.♣
Empresa.♣jengibre
 
Empresa.♦
Empresa.♦Empresa.♦
Empresa.♦jengibre
 
Empresa.♥♥
Empresa.♥♥Empresa.♥♥
Empresa.♥♥jengibre
 
Base De Datos♥
Base De Datos♥Base De Datos♥
Base De Datos♥jengibre
 
Base De Datos
Base De DatosBase De Datos
Base De Datosjengibre
 
Sistemas AutÓmatas.
Sistemas AutÓmatas.Sistemas AutÓmatas.
Sistemas AutÓmatas.jengibre
 
COmpuertas LÓgicas.
COmpuertas LÓgicas.COmpuertas LÓgicas.
COmpuertas LÓgicas.jengibre
 
Empresa.♥
Empresa.♥Empresa.♥
Empresa.♥jengibre
 
Lenguajes de ProgramacióN♥
Lenguajes de ProgramacióN♥Lenguajes de ProgramacióN♥
Lenguajes de ProgramacióN♥jengibre
 
Lenguajes de PrOgramaciÓn.
Lenguajes de PrOgramaciÓn.Lenguajes de PrOgramaciÓn.
Lenguajes de PrOgramaciÓn.jengibre
 

Más de jengibre (20)

Sabrositas-Organizacion.Modernizacion.
Sabrositas-Organizacion.Modernizacion.Sabrositas-Organizacion.Modernizacion.
Sabrositas-Organizacion.Modernizacion.
 
Sistema Experto
Sistema ExpertoSistema Experto
Sistema Experto
 
PráCtica Numero 8
PráCtica Numero 8PráCtica Numero 8
PráCtica Numero 8
 
Practica NúMero 7
Practica NúMero 7Practica NúMero 7
Practica NúMero 7
 
Practica NúMero 6
Practica NúMero 6Practica NúMero 6
Practica NúMero 6
 
Practica NúMero 5
Practica NúMero 5Practica NúMero 5
Practica NúMero 5
 
PráCtica Numero 4
PráCtica Numero 4PráCtica Numero 4
PráCtica Numero 4
 
PráCtica 3
PráCtica 3PráCtica 3
PráCtica 3
 
MS-DOS.
MS-DOS.MS-DOS.
MS-DOS.
 
Componentes Internos De Un Cpu
Componentes Internos De Un CpuComponentes Internos De Un Cpu
Componentes Internos De Un Cpu
 
Empresa.♣
Empresa.♣Empresa.♣
Empresa.♣
 
Empresa.♦
Empresa.♦Empresa.♦
Empresa.♦
 
Empresa.♥♥
Empresa.♥♥Empresa.♥♥
Empresa.♥♥
 
Base De Datos♥
Base De Datos♥Base De Datos♥
Base De Datos♥
 
Base De Datos
Base De DatosBase De Datos
Base De Datos
 
Sistemas AutÓmatas.
Sistemas AutÓmatas.Sistemas AutÓmatas.
Sistemas AutÓmatas.
 
COmpuertas LÓgicas.
COmpuertas LÓgicas.COmpuertas LÓgicas.
COmpuertas LÓgicas.
 
Empresa.♥
Empresa.♥Empresa.♥
Empresa.♥
 
Lenguajes de ProgramacióN♥
Lenguajes de ProgramacióN♥Lenguajes de ProgramacióN♥
Lenguajes de ProgramacióN♥
 
Lenguajes de PrOgramaciÓn.
Lenguajes de PrOgramaciÓn.Lenguajes de PrOgramaciÓn.
Lenguajes de PrOgramaciÓn.
 

Último

Arquitectura Ecléctica e Historicista en Latinoamérica.pdf
Arquitectura Ecléctica e Historicista en Latinoamérica.pdfArquitectura Ecléctica e Historicista en Latinoamérica.pdf
Arquitectura Ecléctica e Historicista en Latinoamérica.pdfslaimenbarakat
 
CUADROSINOPTICOPAOLAPEREZARQUITECTURABARROCA.pdf
CUADROSINOPTICOPAOLAPEREZARQUITECTURABARROCA.pdfCUADROSINOPTICOPAOLAPEREZARQUITECTURABARROCA.pdf
CUADROSINOPTICOPAOLAPEREZARQUITECTURABARROCA.pdfPaola575380
 
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA EUROPEA Y LATINOAM...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA EUROPEA Y LATINOAM...DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA EUROPEA Y LATINOAM...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA EUROPEA Y LATINOAM...GersonManuelRodrigue1
 
NATURALEZA DE LOS “ONTOS” mapa mental. Edu
NATURALEZA DE LOS “ONTOS” mapa mental. EduNATURALEZA DE LOS “ONTOS” mapa mental. Edu
NATURALEZA DE LOS “ONTOS” mapa mental. EduMxAvalos
 
Trabajo slides , mapa trabajo de sistema político
Trabajo slides , mapa trabajo de sistema políticoTrabajo slides , mapa trabajo de sistema político
Trabajo slides , mapa trabajo de sistema políticodkzrbgsm5t
 
Infografía profesional cronología horizontal bloques de colores fondo negro.pdf
Infografía profesional cronología horizontal bloques de colores fondo negro.pdfInfografía profesional cronología horizontal bloques de colores fondo negro.pdf
Infografía profesional cronología horizontal bloques de colores fondo negro.pdfsalazar1611ale
 
Patrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en CancunPatrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en CancunDianaArtemizaCP
 
Arquitectura Ecléctica e Historicista en Latinoamérica
Arquitectura Ecléctica e Historicista en LatinoaméricaArquitectura Ecléctica e Historicista en Latinoamérica
Arquitectura Ecléctica e Historicista en LatinoaméricaLeonardoDantasRivas
 
juansolaruniversidaduptccreadrionegro.pptx
juansolaruniversidaduptccreadrionegro.pptxjuansolaruniversidaduptccreadrionegro.pptx
juansolaruniversidaduptccreadrionegro.pptxjuansanchez5210
 
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y AME...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y AME...DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y AME...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y AME...GersonManuelRodrigue1
 
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdfEstilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdfJosueJuanez1
 
Eclecticismo en Arquitectura. Jennifer Rodriguez F.pdf
Eclecticismo en Arquitectura. Jennifer Rodriguez F.pdfEclecticismo en Arquitectura. Jennifer Rodriguez F.pdf
Eclecticismo en Arquitectura. Jennifer Rodriguez F.pdfJennifer436518
 
ARQ BARROCA - ADRIANN DIAZ 30.118.599 ESC 41.pdf
ARQ BARROCA - ADRIANN DIAZ 30.118.599 ESC 41.pdfARQ BARROCA - ADRIANN DIAZ 30.118.599 ESC 41.pdf
ARQ BARROCA - ADRIANN DIAZ 30.118.599 ESC 41.pdfAdriannDiaz
 
DIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en lineaDIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en lineaEduarRamos7
 
Propuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseñoPropuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseñoMariano Salgado
 
Planos y modelado con piezas en 3D con CAD
Planos y modelado con piezas en 3D con CADPlanos y modelado con piezas en 3D con CAD
Planos y modelado con piezas en 3D con CADAUTOCAD LIBRO
 
La Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por KarinaLa Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por KarinaKarinaRodriguezG2
 
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y LAT...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y LAT...DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y LAT...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y LAT...GersonManuelRodrigue1
 
ARQ BIZANTINA Y PALEOCRISTIANA .pptx
ARQ BIZANTINA Y PALEOCRISTIANA      .pptxARQ BIZANTINA Y PALEOCRISTIANA      .pptx
ARQ BIZANTINA Y PALEOCRISTIANA .pptxdnmxd1213
 
Presentacion credito hipotecario y libre inversion.pdf
Presentacion credito hipotecario y libre inversion.pdfPresentacion credito hipotecario y libre inversion.pdf
Presentacion credito hipotecario y libre inversion.pdfsebaspenaf6
 

Último (20)

Arquitectura Ecléctica e Historicista en Latinoamérica.pdf
Arquitectura Ecléctica e Historicista en Latinoamérica.pdfArquitectura Ecléctica e Historicista en Latinoamérica.pdf
Arquitectura Ecléctica e Historicista en Latinoamérica.pdf
 
CUADROSINOPTICOPAOLAPEREZARQUITECTURABARROCA.pdf
CUADROSINOPTICOPAOLAPEREZARQUITECTURABARROCA.pdfCUADROSINOPTICOPAOLAPEREZARQUITECTURABARROCA.pdf
CUADROSINOPTICOPAOLAPEREZARQUITECTURABARROCA.pdf
 
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA EUROPEA Y LATINOAM...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA EUROPEA Y LATINOAM...DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA EUROPEA Y LATINOAM...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA EUROPEA Y LATINOAM...
 
NATURALEZA DE LOS “ONTOS” mapa mental. Edu
NATURALEZA DE LOS “ONTOS” mapa mental. EduNATURALEZA DE LOS “ONTOS” mapa mental. Edu
NATURALEZA DE LOS “ONTOS” mapa mental. Edu
 
Trabajo slides , mapa trabajo de sistema político
Trabajo slides , mapa trabajo de sistema políticoTrabajo slides , mapa trabajo de sistema político
Trabajo slides , mapa trabajo de sistema político
 
Infografía profesional cronología horizontal bloques de colores fondo negro.pdf
Infografía profesional cronología horizontal bloques de colores fondo negro.pdfInfografía profesional cronología horizontal bloques de colores fondo negro.pdf
Infografía profesional cronología horizontal bloques de colores fondo negro.pdf
 
Patrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en CancunPatrimundi Recuperadora Bancaria en Cancun
Patrimundi Recuperadora Bancaria en Cancun
 
Arquitectura Ecléctica e Historicista en Latinoamérica
Arquitectura Ecléctica e Historicista en LatinoaméricaArquitectura Ecléctica e Historicista en Latinoamérica
Arquitectura Ecléctica e Historicista en Latinoamérica
 
juansolaruniversidaduptccreadrionegro.pptx
juansolaruniversidaduptccreadrionegro.pptxjuansolaruniversidaduptccreadrionegro.pptx
juansolaruniversidaduptccreadrionegro.pptx
 
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y AME...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y AME...DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y AME...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y AME...
 
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdfEstilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
Estilos de cajas Flexibles CSS-Flexbox-y-Grid.pdf
 
Eclecticismo en Arquitectura. Jennifer Rodriguez F.pdf
Eclecticismo en Arquitectura. Jennifer Rodriguez F.pdfEclecticismo en Arquitectura. Jennifer Rodriguez F.pdf
Eclecticismo en Arquitectura. Jennifer Rodriguez F.pdf
 
ARQ BARROCA - ADRIANN DIAZ 30.118.599 ESC 41.pdf
ARQ BARROCA - ADRIANN DIAZ 30.118.599 ESC 41.pdfARQ BARROCA - ADRIANN DIAZ 30.118.599 ESC 41.pdf
ARQ BARROCA - ADRIANN DIAZ 30.118.599 ESC 41.pdf
 
DIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en lineaDIAGRAMA DE FLUJO.pptx : Ventas en linea
DIAGRAMA DE FLUJO.pptx : Ventas en linea
 
Propuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseñoPropuesta de diseño de marca para Fred, muebles de diseño
Propuesta de diseño de marca para Fred, muebles de diseño
 
Planos y modelado con piezas en 3D con CAD
Planos y modelado con piezas en 3D con CADPlanos y modelado con piezas en 3D con CAD
Planos y modelado con piezas en 3D con CAD
 
La Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por KarinaLa Arquitectura del Eclecticismo, por Karina
La Arquitectura del Eclecticismo, por Karina
 
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y LAT...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y LAT...DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y LAT...
DIFERENCIAS ENTRE LA ARQUITECTURA ECLECTICA E HISTORICISTA ENTRE EUROPA Y LAT...
 
ARQ BIZANTINA Y PALEOCRISTIANA .pptx
ARQ BIZANTINA Y PALEOCRISTIANA      .pptxARQ BIZANTINA Y PALEOCRISTIANA      .pptx
ARQ BIZANTINA Y PALEOCRISTIANA .pptx
 
Presentacion credito hipotecario y libre inversion.pdf
Presentacion credito hipotecario y libre inversion.pdfPresentacion credito hipotecario y libre inversion.pdf
Presentacion credito hipotecario y libre inversion.pdf
 

Lenguaje De ProgramacióN C

  • 1. Lenguaje de Programación C. C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior es decir el 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 débilmente 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. La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portátil entre plataformas y/o arquitecturas. En la práctica, los programadores suelen usar elementos no-portátiles dependientes del compilador o del sistema operativo. Aplicaciones. 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 Linux. Igualmente para aplicaciones de escritorio como OpenOffice.org, 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, parte de ellos conocidos como modelos y simuladores), industriales
  • 2. (industria robótica, cibernética, sistemas de información y base de datos para la industria petrolera y petroquímica. Predominan también todo lo que se refiere a simulación de máquinas de manufactura), simulaciones de vuelo (es la más delicada, ya que se tienen que usar demasiados recursos tanto de hardware como de software para desarrollar aplicaciones que permitan simular el vuelo real de una aeronave. Se aplica por tanto, en diversas áreas desconocidas por gran parte de los usuarios noveles. Los ordenadores de finales de los 90 son varios órdenes de magnitud más potentes que las máquinas en que C se desarrolló originalmente. Programas escritos en lenguajes de tipo dinámico y fácil codificación (Ruby, Python, Perl...) que antaño hubieran resultado demasiado lentos, son lo bastante rápidos como para desplazar en uso a C. Aun así, se puede seguir encontrando código C en grandes desarrollos de animaciones, modelados y escenas en 3D en películas y otras aplicaciones multimedia. Actualmente, los grandes proyectos de software se dividen en partes, dentro de un equipo de desarrollo. Aquellas partes que son más "burocráticas" o "de gestión" con los recursos del sistema, se suelen realizar en lenguajes de tipo dinámico o de guión (script), mientras que aquellas partes "críticas", por su necesidad de rapidez de ejecución, se realizan en un lenguaje de tipo compilado, como C o C++. Si, después de hacer la división, las partes críticas no superan un cierto porcentaje del total (aproximadamente el 10%) entonces todo el desarrollo se realiza con lenguajes dinámicos. Si la parte crítica no llega a cumplir las expectativas del proyecto, se comparan las alternativas de una inversión en nuevo hardware frente a invertir en el coste de un programador para que reescriba dicha parte crítica. Aplicaciones embebidas C es el lenguaje común para programar sistemas embebidos. El código ligero que un compilador C genera, combinado con la capacidad de acceso capas del software cercanas al hardware son la causa de su popularidad en estas aplicaciones. Un característica donde C demuestra comodidad de uso particularmente valiosa en sistemas embebidos es la manipulación de bits. Los sistemas contienen registros mapeados en memoria (en inglés, MMR) a través de los cuales los periféricos se configuran. Estos registros mezclan varias configuraciones en la misma dirección de memoria, aunque en bits distintos. Con C es posible modificar fácilmente uno de estos bits sin alterar el resto.
  • 3. Por ejemplo: int *mmr; /* puntero al registro que queremos modificar */ mmr = 0x40008ABC; /* dirección de memoria del registro */ * mmr |= 1<<7; /* pone a 1 el bit 7 sin modificar los demás */ * mmr &= ~(1<<12) /* pone a 0 el bit 12 sin modificar los demás */ Este tipo de manipulación es muy tediosa o sencillamente imposible en otros lenguajes de alto nivel. Otras características de C consideradas desventajas en la programación para PC -como la ausencia de control de memoria automático- se convierten en ventajas cuando los sistemas embebidos necesitan código pequeño y optimizado. Ese es el caso de los sistemas basados en microcontroladores de poca potencia como el intel 8051 o muchos sistemas ARM. Códigos. La compilación de un programa C se realiza en varias fases que normalmente son automatizadas y ocultadas por los entornos de desarrollo: 1. Preprocesado consistente en modificar el código fuente en C según una serie de instrucciones (denominadas directivas de preprocesado) simplificando de esta forma el trabajo del compilador. Por ejemplo, una de las acciones más importantes es la modificación de las inclusiones (#include) por las declaraciones reales existentes en el archivo indicado. 2. Compilación que genera el código objeto a partir del código ya preprocesado. 3. Enlazado que une los códigos objeto de los distintos módulos y bibliotecas externas (como las bibliotecas del sistema) para generar el programa ejecutable final. Ejemplo de código El siguiente programa imprime en pantalla la frase "Hola Mundo" (C99). # include <stdio.h> // necesario para utilizar printf()
  • 4. int main(void) { printf("Hola Mundon"); // return 0 implícito en C99 para main(). } El siguiente escribe "Hola Mundo" en C89 /* comentarios con '//' no permitidos en C89, sí en C99 */ # include <stdio.h> /* necesario para utilizar printf */ main() /* tipo 'int' de retorno implícito */ { printf ("Hola Mundon") ; return 0; } Programas. Ejemplos. Vala, C#, Objective-C, C++, AWK, bc, Java