KAREN MARLENE ÁLVAREZ VALDEZ
1630724
Características:
Propiedades:
 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.
 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").
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.
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.
En algunos casos, una característica inexistente puede aproximarse. Por ejemplo, la
implementación original de C++ consistía en un preprocesador que traducía código
fuente C++ a C. La mayoría de las funciones orientadas a objetos incluyen un puntero
especial, que normalmente recibe el nombre "this", que se refiere al objeto al que
pertenece la función. Mediante el paso de este puntero como un argumento de
función, esta funcionalidad puede desempeñarse en C. Por ejemplo, en C++ se puede
escribir:
stack.push(val);
Mientras que en C se podría escribir:
push(stack, val);
Donde el argumento stack es un puntero a una struct equivalente al puntero this de
C++, que es un puntero a un objeto.
USOS:
Aplicabilidad:
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, parte de ellos conocidos
comomodelos 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 hardwarecomo 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 losusuarios 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 guion
(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.
*SistemasEmbebidos:es un sistema de computación diseñado para realizar una o
algunas pocas funciones dedicadas,1 2 frecuentemente en un sistema de computación
en tiempo real. Al contrario de lo que ocurre con los ordenadores de propósito general
(como por ejemplo una computadora personal o PC) que están diseñados para cubrir
un amplio rango de necesidades, los sistemas embebidos se diseñan para cubrir
necesidades específicas.
El código ligero que un compilador C genera, combinado con la capacidad de acceso a
capas del software cercanas al hardware son la causa de su popularidad en estas
aplicaciones.
Una 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 8 sin modificar los demás
*/
* mmr &= ~(1<<12) /* pone a 0 el bit 13 sin modificar los
demás */
Este tipo de manipulación es muy tediosa o sencillamente imposible en otros lenguajes
de alto nivel, dado que se utilizan operaciones comunes del lenguaje
ensamblador como las operaciones a nivel bit OR, AND, SHL y CPL pero que están
disponibles en el lenguaje C.
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.
Bibliografía:
Dennis M. Ritchie (Enero de 1993). «The Development of the C
Language»

Más contenido relacionado

PPTX
Lenguaje C y los Sistemas Operativos Actuales
DOC
Lenguaje De ProgramacióN C
PPTX
El Lenguaje C y Sistemas Operativos Actuales
DOCX
Lenguaje c++
PPTX
Edgar avila aplicaciones de lenguaje c
PPTX
aplicaciones de Lenguaje C
PPTX
aplicacion del lenguaje c
PDF
Santaella u5 Lenguaje C++
Lenguaje C y los Sistemas Operativos Actuales
Lenguaje De ProgramacióN C
El Lenguaje C y Sistemas Operativos Actuales
Lenguaje c++
Edgar avila aplicaciones de lenguaje c
aplicaciones de Lenguaje C
aplicacion del lenguaje c
Santaella u5 Lenguaje C++

La actualidad más candente (20)

PPTX
Aplicacion de c
PPTX
Lenguaje c
PPT
1 estructura programa-c
PDF
Compiladores para fortran, pascal y c
PPT
2 estructura programa-c
PPTX
Lenguaje de programacion c
PPTX
LENGUAJE DE PROGRAMACION C
PPTX
Jasmin andrea aguilar h..
PPTX
Lenguaje c1
PPTX
Lenguaje c hebert gonzalez
PPTX
Lenguaje c
PDF
Ensamblador y lenguaje c
DOCX
Poner a punto mediante el uso de un editor de lenguaje de programacion
PDF
Equipo 6 programacion hibrida
PPTX
6 lenguajec++
PDF
Reporte de visual c#(jose gonzalo estrada lopez)
DOCX
Unidad3 130504163038-phpapp02 (1)
PPTX
Lenguje c.PRESENTACION
PDF
Lenguaje c
Aplicacion de c
Lenguaje c
1 estructura programa-c
Compiladores para fortran, pascal y c
2 estructura programa-c
Lenguaje de programacion c
LENGUAJE DE PROGRAMACION C
Jasmin andrea aguilar h..
Lenguaje c1
Lenguaje c hebert gonzalez
Lenguaje c
Ensamblador y lenguaje c
Poner a punto mediante el uso de un editor de lenguaje de programacion
Equipo 6 programacion hibrida
6 lenguajec++
Reporte de visual c#(jose gonzalo estrada lopez)
Unidad3 130504163038-phpapp02 (1)
Lenguje c.PRESENTACION
Lenguaje c
Publicidad

Similar a Progra.jpg (20)

DOCX
Pul123
PPTX
Presentación lenguaje c (pedro luis rodriguez c.i. 16388340)
DOCX
ENSAYO SOBRE EL LENGUAJE C
PPTX
Aplicaciones de lenguaje c
DOCX
Programa en lenguaje C, Hildemaro Sequera, MI-42
PPTX
Programacion
DOCX
2 intcomp milexisromero
PDF
Historia y caracteristicas del lenguaje c opt
DOCX
PDF
01 - Introducción al lenguaje C
DOCX
Ansi c
DOCX
DOCX
Deber 130912163339-phpapp01
PDF
Programacion estructurada
DOCX
historia del lenguaje c++
PPTX
Lenguaje C Version Final 1.pptx
PPTX
Presentación orvelio vinasco
PDF
Lenguaje c 1
DOCX
Programacion en C
DOCX
Unidad 3
Pul123
Presentación lenguaje c (pedro luis rodriguez c.i. 16388340)
ENSAYO SOBRE EL LENGUAJE C
Aplicaciones de lenguaje c
Programa en lenguaje C, Hildemaro Sequera, MI-42
Programacion
2 intcomp milexisromero
Historia y caracteristicas del lenguaje c opt
01 - Introducción al lenguaje C
Ansi c
Deber 130912163339-phpapp01
Programacion estructurada
historia del lenguaje c++
Lenguaje C Version Final 1.pptx
Presentación orvelio vinasco
Lenguaje c 1
Programacion en C
Unidad 3
Publicidad

Último (20)

DOCX
Guía 5. Test de orientación Vocacional 2 NICOL.docx
PPTX
Formato de texto, párrafo, documentos, columnas periodísticas, referencias.
PDF
Presentación_u.01_digitalización_CFGS.pdf
PPTX
Todas las señales relativas a la seguridad en el trabajo están normalizadas, ...
PPTX
Sistema de Gestión Integral TCA Ingenieros.pptx
PDF
Teoría de estadística descriptiva y aplicaciones .pdf
DOCX
Guía 5. Test de orientación Vocacional 2[1] (Recuperado automáticamente).docx
DOCX
Informee_APA_Microbittrabajoogrupal.docx
PDF
Estrategia de apoyo valentina lopez/ 10-3
PDF
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
PPT
Protocolos de seguridad y mecanismos encriptación
PPTX
Circuito de LED en paralelo mediante Switch
PDF
Inteligencia_Artificial,_Informática_Básica,_22_06_2025_SO_2.pdf
DOCX
Nombre del estudiante Gabriela Benavides
PPTX
Procesamiento-del-Lenguaje-Natural-Un-Viaje-Paso-a-Paso.pptx
PDF
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
PPTX
TECNOLOGIAS DE INFORMACION Y COMUNICACION
PPTX
TECNOLOGIA EDUCATIVA...........pptx.....
DOCX
Trabajo informatica joel torres 10-.....................
PPTX
Navegación en neurocirugías y su implicación ética.pptx
Guía 5. Test de orientación Vocacional 2 NICOL.docx
Formato de texto, párrafo, documentos, columnas periodísticas, referencias.
Presentación_u.01_digitalización_CFGS.pdf
Todas las señales relativas a la seguridad en el trabajo están normalizadas, ...
Sistema de Gestión Integral TCA Ingenieros.pptx
Teoría de estadística descriptiva y aplicaciones .pdf
Guía 5. Test de orientación Vocacional 2[1] (Recuperado automáticamente).docx
Informee_APA_Microbittrabajoogrupal.docx
Estrategia de apoyo valentina lopez/ 10-3
NREN - red nacional de investigacion y educacion en LATAM y Europa: Caracteri...
Protocolos de seguridad y mecanismos encriptación
Circuito de LED en paralelo mediante Switch
Inteligencia_Artificial,_Informática_Básica,_22_06_2025_SO_2.pdf
Nombre del estudiante Gabriela Benavides
Procesamiento-del-Lenguaje-Natural-Un-Viaje-Paso-a-Paso.pptx
Final Tecno .pdfjdhdjsjdhsjshshhshshshhshhhhhhh
TECNOLOGIAS DE INFORMACION Y COMUNICACION
TECNOLOGIA EDUCATIVA...........pptx.....
Trabajo informatica joel torres 10-.....................
Navegación en neurocirugías y su implicación ética.pptx

Progra.jpg

  • 1. KAREN MARLENE ÁLVAREZ VALDEZ 1630724 Características: Propiedades:  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.  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"). 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.
  • 2. 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. En algunos casos, una característica inexistente puede aproximarse. Por ejemplo, la implementación original de C++ consistía en un preprocesador que traducía código fuente C++ a C. La mayoría de las funciones orientadas a objetos incluyen un puntero especial, que normalmente recibe el nombre "this", que se refiere al objeto al que pertenece la función. Mediante el paso de este puntero como un argumento de función, esta funcionalidad puede desempeñarse en C. Por ejemplo, en C++ se puede escribir: stack.push(val); Mientras que en C se podría escribir: push(stack, val); Donde el argumento stack es un puntero a una struct equivalente al puntero this de C++, que es un puntero a un objeto. USOS: Aplicabilidad: 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, parte de ellos conocidos comomodelos y simuladores), industriales (industria robótica, cibernética, sistemas de
  • 3. 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 hardwarecomo 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 losusuarios 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 guion (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. *SistemasEmbebidos:es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas,1 2 frecuentemente en un sistema de computación en tiempo real. Al contrario de lo que ocurre con los ordenadores de propósito general (como por ejemplo una computadora personal o PC) que están diseñados para cubrir un amplio rango de necesidades, los sistemas embebidos se diseñan para cubrir necesidades específicas. El código ligero que un compilador C genera, combinado con la capacidad de acceso a capas del software cercanas al hardware son la causa de su popularidad en estas aplicaciones.
  • 4. Una 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 8 sin modificar los demás */ * mmr &= ~(1<<12) /* pone a 0 el bit 13 sin modificar los demás */ Este tipo de manipulación es muy tediosa o sencillamente imposible en otros lenguajes de alto nivel, dado que se utilizan operaciones comunes del lenguaje ensamblador como las operaciones a nivel bit OR, AND, SHL y CPL pero que están disponibles en el lenguaje C. 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. Bibliografía: Dennis M. Ritchie (Enero de 1993). «The Development of the C Language»