SlideShare una empresa de Scribd logo
1 de 28
Historia del Lenguaje C
   C es un lenguaje de programación
    creado en 1972 por Dennis M. Ritchie
    en los Laboratorios Bell de AT&T. 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.
   El antecesor del Lenguaje C fue el
    Lenguaje B, que fue creado en 1970,
    por Ken Thompson, con la finalidad de
    reestructurar al sistema UNIX, que
    originalmente había sido escrito y
    producido en lenguaje ensamblador.

      El Lenguaje B, sucedió al Lenguaje
    BCPL, que fue escrito éste último por el
    programador Martín Richard en 1967, el
    lenguaje   B    era     un      lenguaje
    evolucionado e independiente de la
    máquina.
   Dennis Ritchie, modifica el Lenguaje B,
    para así crear el Lenguaje C, para
    posteriormente rescribir el sistema UNÍS en
    éste lenguaje. La diferencia entre el
    Lenguaje B y el Lenguaje C, es que este C
    permitía el diseño de nuevos tipos de datos,
    es decir daba la libertad al usuario de
    diseñar sus propios tipos de datos para el
    manejo que mejor le convenga , esta utilidad
    es muy utilizada en la actualidad por que
    permite al programador a tener un pleno
    control del programa que realiza y así poder
    adaptar cada circunstancia que se le
    presente     a    las    necesidades     que
    independientemente        provocan      cada
    situación.
     Unas de las peculiaridades de C es
  su riqueza de operadores. También
  existen toda una serie de operaciones
  que pueden hacerse con el Lenguaje C,
  que realmente no están incluidas en el
  compilador, si no que las realiza un pre-
  procesador     justo     antes   de    la
  compilación.
 Las dos más importantes son # define
  (directriz de sustitución simbólica o de
  definición), esta directriz es utilizada
  cuando declaramos una constante en
  algún programa, dentro del editor del
  Lenguaje C; y también          # Include
  (Directriz de inclusión en el fichero
Qué es un
algoritmo?
   Un algoritmo es un método para
    resolver un problema.
                Diseño del   Programa de
     Programa
                algoritmo    Computadora
Los pasos para la resolución de un
problema son:
◦ I . Diseño del algoritmo que describe la
  secuencia ordenada de pasos que
  conducen a la solución de un problema
  dado. (Análisis del problema y desarrollo
  del algoritmo.)

◦ 2. Expresar el algoritmo como         un
  programa       en un  lenguaje        de
  programación adecuado. (Fase          de
  codificación.)

◦ 3. Ejecución y validación del programa
Características de los algoritmos
 Un algoritmo debe ser preciso e
  indicar el orden de realización de
  cada paso.
 Un algoritmo debe estar definido. Si
  se sigue un algoritmo dos veces, se
  debe obtener el mismo.
 Un algoritmo debe ser finito. Si se
  sigue un algoritmo, se debe terminar
  en algún momento; es decir, debe
  tener un número finito de pasos.
Ejemplo:
   Un cliente ejecuta un pedido u una fábrica.
    La fábrica examina en su banco de datos la
    ficha del cliente, si el cliente es solvente
    entonces la empresa acepta el pedido; en
    caso contrario, rechazará el pedido.
    Redactar el algoritmo correspondiente.

    ◦ 1. Inicio.
    ◦ 2. Leer el pedido.
    ◦ 3. Examinar la ficha del cliente.
    ◦ 4. Si el cliente es solvente, aceptar pedido; en
      caso contrario, rechazar pedido.
    ◦ 5. Fin.
Ejercicios en Clase.
 Diseñar una solución para resolver
  cada uno de los siguientes problemas
  en algoritmos adecuados:
 a) Realizar una llamada telefónica
  desde un teléfono público.
 b) Cocinar un pastel.
 c) Cambiar una llanta a un auto.
 d) Hacer una suma.
EL SOFTWARE (LOS PROGRAMAS)




Relación entre programas de aplicación y programas del
sistema.
LENGUAJES DE PROGRAMACIÓN
     Para que un procesador realice un proceso se le
      debe suministrar en primer lugar un algoritmo
      adecuado. El procesador debe ser capaz de
      interpretar el algoritmo, lo que significa:
      ◦ Comprender las instrucciones de cada paso.
      ◦ Realizar las operaciones correspondientes.

     Cuando el procesador es una computadora, el
      algoritmo se ha de expresar en un formato que se
      denomina programa. Un programa se escribe en un
      lenguaje de programación y las operaciones que
      conducen a expresar un algoritmo en forma de
      programa se llaman programación. Así pues, los
      lenguajes utilizados para escribir programas de
      computadoras son los lenguajes de programación y
      programadores son los escritores y diseñadores de
      programas.
   Los principales tipos de lenguajes
    utilizados en la actualidad son tres:

    ◦ Lenguajes máquina.
    ◦ Lenguaje de bajo nivel (ensamblador).
    ◦ Lenguajes de alto nivel.
   Los lenguajes máquina son aquellos
    que están escritos en lenguajes
    directamente inteligibles por la máquina
    (computadora), ya que sus instrucciones
    son cadenas binarias (cadenas o series
    de caracteres -dígitos- 0 y 1) que
    especifican una operación, y las
    posiciones (dirección) de memoria
    implicadas   en     la    operación   se
    denominan instrucciones de máquina o
    código máquina. El código máquina es el
 Las ventajas de programar en lenguaje
  máquina son la posibilidad de cargar
  (transferir un programa a la memoria) sin
  necesidad de traducción posterior, lo que
  supone una velocidad de ejecución
  superior a cualquier otro lenguaje de
  programación.
 Los inconvenientes son:
    ◦ Dificultad y lentitud en la codificación.
    ◦ Poca fiabilidad.
    ◦ Dificultad grande de verificar y poner a punto
      los programas.
    ◦ Los programas sólo son ejecutables en el
      mismo procesador (UPC, unidad Central de
   Los lenguajes de bajo nivel son más
    fáciles de utilizar que los lenguajes
    máquina, pero, al igual, que ellos,
    dependen de la máquina en particular. El
    lenguaje de bajo nivel por excelencia es
    el ensamblador(assembly languaje). Las
    instrucciones en lenguaje ensamblador
    son instrucciones conocidas como
    nemotécnicos       (mnemonics).      Por
    ejemplo, nemotécnicos típicos de
    operaciones aritméticas son: en inglés,
    ADD, SUB, DIV, etc.
Ejemplo
 Una instrucción típica de suma sería:
     ADD M, N, P
 su equivalente en código máquina:
     0110 1001 1010 1011



Hay que traducir al lenguaje de
 máquina.
Los     lenguajes   ensambladores
presentan la ventaja frente a los
lenguajes máquina de su mayor
facilidad de codificación y, en
general, su velocidad de cálculo.
   Los inconvenientes más notables de los
    lenguajes ensambladores son:

    ◦ Dependencia total de la máquina, lo que
      impide la transportabilidad de los programas
      (posibilidad de ejecutar un programa en
      diferentes    máquinas).      El     lenguaje
      ensamblador del PC es distinto del lenguaje
      ensamblador del Apple Macintosh.
    ◦ La formación de los programas es más
      compleja que la correspondiente a los
      programadores de alto nivel, ya que exige no
      sólo las técnicas de programación, sino
      también el conocimiento del interior de la
      máquina.
   Los lenguajes de alto nivel son los
    más utilizados por los programadores.
    Están diseñados para que las
    personas escriban y entiendan los
    programas de un modo mucho más
    fácil que los lenguajes máquina y
    ensambladores. Otra razón es que un
    programa escrito en lenguaje de alto
    nivel es independiente de la máquina;
    esto es, las instrucciones del
    programa de la       computadora no
    dependen del diseño del hardware o
    de una computadora en particular.
 Los lenguajes de alto nivel presentan las siguientes
  ventajas:
  ◦ El tiempo de formación de los programadores es
    relativamente corto comparado con otros lenguajes
  ◦ La escritura de programas se basa en reglas
    sintácticas similares a los lenguajes humanos.
  ◦ Las modificaciones y puestas a punto de los
    programas son más fáciles.
  ◦ Reducción del coste de los programas.
  ◦ Transportabilidad.
 Los inconvenientes se concretan en:
  ◦ Incremento del tiempo de puesta a punto, al
    necesitarse diferentes traducciones del programa.
  ◦ No se aprovechan los recursos internos de la
    máquina, que se explotan mucho mejor en lenguajes
    máquina y ensambladores.
  ◦ Aumento de la ocupación de memoria.
Traductores de lenguaje
   Los traductores se dividen en:
    ◦ Intérpretes.
    ◦ Compiladores.
La compilación y sus fases
Ventajas de C
 El lenguaje C es poderoso y flexible, con órdenes,
  operaciones y funciones de biblioteca que se pueden
  utilizar para escribir la mayoría de los programas que
  corren en la computadora.
 C se utiliza por programadores profesionales para
  desarrollar software en la mayoría de los modernos
  sistemas de computadora.
 Se puede utilizar C para desarrollar sistemas
  operativos, compiladores, sistemas de tiempo real y
  aplicaciones de comunicaciones.
 Un programa C puede ser escrito para un tipo de
  computadora y trasladarse a otra computadora con
  pocas o ninguna modificación -propiedad conocida
  como portabilidad-.
Características técnicas de C
   Una nueva sintaxis para declarar funciones. Una
    declaración de función puede añadir una descripción
    de los argumentos de la función. Esta información
    adicional sirve para que los compiladores detecten
    más fácilmente los errores causados por argumentos
    que no coinciden.
   Asignación      de    estructuras     (registros)    y
    enumeraciones.
   Preprocesador más sofisticado.
   Una nueva definición de la biblioteca que acompaña
    a C. Entre otras funciones se incluyen: acceso al
    sistema operativo (por ejemplo, lectura y escritura de
    archivos), entrada y salida con formato, asignación
    dinámica de memoria, manejo de cadenas de
    caracteres.
   Una colección de cabeceras estándar que
Versiones actuales de C
 En la actualidad son muchos los fabricantes de
  compiladores C, aunque los más populares entre
  los fabricantes de software son: Microsoft,
  Imprise, etc.
 Una evolución de C, el lenguaje C++ (C con
  clases) que contiene entre otras, todas las
  características de ANSI C. Los compiladores
  más empleados Visual C++ de microsoft. Builder
  C++, Borland, C++ bajo UNIX y LINUX.
 En el 2000, Microsoft patentó una nueva versión
  de C++, que es C#, una evolución del C++
  estándar, con propiedades de Java y diseñado
  para aplicaciones en línea, Internet (on line) y
 fuera de línea.

Más contenido relacionado

La actualidad más candente

Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacionguestd5974a6
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...Hugo Alberto Rivera Diaz
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfazXavi Flores
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de ContextoBrayhan Acosta
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Actividad 4 cuadro comparativo sobre lenguajes de programacion
Actividad 4 cuadro comparativo sobre lenguajes de programacionActividad 4 cuadro comparativo sobre lenguajes de programacion
Actividad 4 cuadro comparativo sobre lenguajes de programacionJuan Antonio Plascencia Zepeda
 
Algebra booleana
Algebra booleanaAlgebra booleana
Algebra booleanaaeeebi
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normalITCV
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARESAnel Sosa
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Historia de la programacion (linea del tiempo)
Historia de la programacion (linea del tiempo)Historia de la programacion (linea del tiempo)
Historia de la programacion (linea del tiempo)kevin antonio
 
Compiladores
CompiladoresCompiladores
CompiladoresIsabel
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salidaitzayana bacilio
 

La actualidad más candente (20)

Presentacion Programacion
Presentacion ProgramacionPresentacion Programacion
Presentacion Programacion
 
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...Conceptos Unidad 1 Lenguajes Automatas Introducción  a  la Teoría de Lenguaje...
Conceptos Unidad 1 Lenguajes Automatas Introducción a la Teoría de Lenguaje...
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Lenguajes de interfaz
Lenguajes de interfazLenguajes de interfaz
Lenguajes de interfaz
 
Gramática Libre de Contexto
Gramática Libre de ContextoGramática Libre de Contexto
Gramática Libre de Contexto
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Actividad 4 cuadro comparativo sobre lenguajes de programacion
Actividad 4 cuadro comparativo sobre lenguajes de programacionActividad 4 cuadro comparativo sobre lenguajes de programacion
Actividad 4 cuadro comparativo sobre lenguajes de programacion
 
Clases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programaciónClases/Tipos de lenguajes de programación
Clases/Tipos de lenguajes de programación
 
Estándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de NegociosEstándares para el Modelado de Procesos de Negocios
Estándares para el Modelado de Procesos de Negocios
 
Algebra booleana
Algebra booleanaAlgebra booleana
Algebra booleana
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
Segunda forma normal
Segunda forma normalSegunda forma normal
Segunda forma normal
 
ESPRESIONES REGULARES
ESPRESIONES REGULARESESPRESIONES REGULARES
ESPRESIONES REGULARES
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Historia de la programacion (linea del tiempo)
Historia de la programacion (linea del tiempo)Historia de la programacion (linea del tiempo)
Historia de la programacion (linea del tiempo)
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Dispositvos de entrada y salida
Dispositvos de entrada y salidaDispositvos de entrada y salida
Dispositvos de entrada y salida
 
Unidad 2 expresiones regulares
Unidad 2 expresiones regularesUnidad 2 expresiones regulares
Unidad 2 expresiones regulares
 
Modelo entidad
Modelo entidadModelo entidad
Modelo entidad
 

Destacado

Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacionnmqy28
 
Diseño estructurado de algoritmos
Diseño estructurado de algoritmosDiseño estructurado de algoritmos
Diseño estructurado de algoritmosGalo Fabara Vargas
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoGermania Rodriguez
 
Automatas Infinitos
Automatas Infinitos Automatas Infinitos
Automatas Infinitos Orlando
 
Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.Vikky Moscoso
 
Expresiones regulares y gramaticas
Expresiones regulares y gramaticasExpresiones regulares y gramaticas
Expresiones regulares y gramaticasRobin Pena
 
Estructuras algoritmicas representación
Estructuras algoritmicas representaciónEstructuras algoritmicas representación
Estructuras algoritmicas representaciónBenjamin Medina Ramirez
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.guestdf1874
 
Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6UTN-FRT Tucumán Argentina
 
Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)Moises Morales
 
Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1Yamid Navea
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmosYulyana López
 
Cuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en ScratchCuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en ScratchCamilo Garcia
 

Destacado (20)

Introduccion a la logica de programacion
Introduccion a la logica de programacionIntroduccion a la logica de programacion
Introduccion a la logica de programacion
 
Introduccion a los algoritmos
Introduccion  a los algoritmosIntroduccion  a los algoritmos
Introduccion a los algoritmos
 
Diseño estructurado de algoritmos
Diseño estructurado de algoritmosDiseño estructurado de algoritmos
Diseño estructurado de algoritmos
 
Clase 1. lógica de la programación
Clase 1. lógica de la programaciónClase 1. lógica de la programación
Clase 1. lógica de la programación
 
Automatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxicoAutomatas y compiladores tablas de transición análisis léxico
Automatas y compiladores tablas de transición análisis léxico
 
Automatas Infinitos
Automatas Infinitos Automatas Infinitos
Automatas Infinitos
 
Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.Conversión de un AFN a un AFD.
Conversión de un AFN a un AFD.
 
Expresiones regulares y gramaticas
Expresiones regulares y gramaticasExpresiones regulares y gramaticas
Expresiones regulares y gramaticas
 
Estructuras algoritmicas representación
Estructuras algoritmicas representaciónEstructuras algoritmicas representación
Estructuras algoritmicas representación
 
1.1. afn. conocer
1.1. afn. conocer1.1. afn. conocer
1.1. afn. conocer
 
Lenguajes Regulares.
Lenguajes Regulares.Lenguajes Regulares.
Lenguajes Regulares.
 
Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6Lenguajes Regulares y Autómatas Finitos - Clase 6
Lenguajes Regulares y Autómatas Finitos - Clase 6
 
Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)Autómatas finitos deterministas (afd)
Autómatas finitos deterministas (afd)
 
Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1Algoritmos y diagramacion clase 1
Algoritmos y diagramacion clase 1
 
Diseño Estructurado de Algoritmos
Diseño Estructurado de AlgoritmosDiseño Estructurado de Algoritmos
Diseño Estructurado de Algoritmos
 
Analisis y diseño de algoritmos
Analisis y diseño de algoritmosAnalisis y diseño de algoritmos
Analisis y diseño de algoritmos
 
Solución de problemas con algoritmos
Solución de problemas con algoritmosSolución de problemas con algoritmos
Solución de problemas con algoritmos
 
Fase De Analisis Del Problema
Fase De Analisis Del ProblemaFase De Analisis Del Problema
Fase De Analisis Del Problema
 
Cuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en ScratchCuaderno de trabajo Algoritmos programacion en Scratch
Cuaderno de trabajo Algoritmos programacion en Scratch
 
Diseño y elaboración de algoritmos
Diseño y elaboración de algoritmosDiseño y elaboración de algoritmos
Diseño y elaboración de algoritmos
 

Similar a Diseño de Algoritmos

Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacionmichelledelgado97
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONKathGon1
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónKatherine Gonzales
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Facultad de Ciencias y Sistemas
 
Powerpoint jimpulgar
Powerpoint jimpulgarPowerpoint jimpulgar
Powerpoint jimpulgarjimsaso
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdfNancyHerrera88
 
Universidad de panamá kathia j
Universidad de panamá kathia jUniversidad de panamá kathia j
Universidad de panamá kathia jJoel Boya
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretadorFrancisco Leal
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacionAnaisMar22
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senaNat Alia
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senadejuansi2
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senazeepulveediita20
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller senazeepulveediita20
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOadark
 

Similar a Diseño de Algoritmos (20)

Presentación lenguajedeprogramacion
Presentación lenguajedeprogramacionPresentación lenguajedeprogramacion
Presentación lenguajedeprogramacion
 
LENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACIONLENGUAJE DE PROGRAMACION. INVESTIGACION
LENGUAJE DE PROGRAMACION. INVESTIGACION
 
Universidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programaciónUniversidad de panam1.lenguaje de programación
Universidad de panam1.lenguaje de programación
 
Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01Introducción a la Programación :: Unidad 01 :: Parte 01
Introducción a la Programación :: Unidad 01 :: Parte 01
 
Powerpoint jimpulgar
Powerpoint jimpulgarPowerpoint jimpulgar
Powerpoint jimpulgar
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
 
Universidad de panamá kathia j
Universidad de panamá kathia jUniversidad de panamá kathia j
Universidad de panamá kathia j
 
Compilador e interpretador
Compilador e interpretadorCompilador e interpretador
Compilador e interpretador
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 
Tema1 b
Tema1 bTema1 b
Tema1 b
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacion
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
Especialidad presentacion taller sena
Especialidad presentacion taller senaEspecialidad presentacion taller sena
Especialidad presentacion taller sena
 
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADOCONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
CONOCIMIENTO DE PROGRAMACIÓN Y UN LENGUAJE ESTRUCTURADO
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 
Unidad-1.pptx.pdf
Unidad-1.pptx.pdfUnidad-1.pptx.pdf
Unidad-1.pptx.pdf
 

Último

Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosJonathanCovena1
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularMooPandrea
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 

Último (20)

Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática5    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática5    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática5 MPG 2024 Ccesa007.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
Sesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronósticoSesión de clase: Fe contra todo pronóstico
Sesión de clase: Fe contra todo pronóstico
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Ley 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circularLey 21.545 - Circular Nº 586.pdf circular
Ley 21.545 - Circular Nº 586.pdf circular
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 

Diseño de Algoritmos

  • 1. Historia del Lenguaje C  C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell de AT&T. 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.
  • 2. El antecesor del Lenguaje C fue el Lenguaje B, que fue creado en 1970, por Ken Thompson, con la finalidad de reestructurar al sistema UNIX, que originalmente había sido escrito y producido en lenguaje ensamblador.  El Lenguaje B, sucedió al Lenguaje BCPL, que fue escrito éste último por el programador Martín Richard en 1967, el lenguaje B era un lenguaje evolucionado e independiente de la máquina.
  • 3. Dennis Ritchie, modifica el Lenguaje B, para así crear el Lenguaje C, para posteriormente rescribir el sistema UNÍS en éste lenguaje. La diferencia entre el Lenguaje B y el Lenguaje C, es que este C permitía el diseño de nuevos tipos de datos, es decir daba la libertad al usuario de diseñar sus propios tipos de datos para el manejo que mejor le convenga , esta utilidad es muy utilizada en la actualidad por que permite al programador a tener un pleno control del programa que realiza y así poder adaptar cada circunstancia que se le presente a las necesidades que independientemente provocan cada situación.
  • 4. Unas de las peculiaridades de C es su riqueza de operadores. También existen toda una serie de operaciones que pueden hacerse con el Lenguaje C, que realmente no están incluidas en el compilador, si no que las realiza un pre- procesador justo antes de la compilación.  Las dos más importantes son # define (directriz de sustitución simbólica o de definición), esta directriz es utilizada cuando declaramos una constante en algún programa, dentro del editor del Lenguaje C; y también # Include (Directriz de inclusión en el fichero
  • 6. Un algoritmo es un método para resolver un problema. Diseño del Programa de Programa algoritmo Computadora
  • 7. Los pasos para la resolución de un problema son: ◦ I . Diseño del algoritmo que describe la secuencia ordenada de pasos que conducen a la solución de un problema dado. (Análisis del problema y desarrollo del algoritmo.) ◦ 2. Expresar el algoritmo como un programa en un lenguaje de programación adecuado. (Fase de codificación.) ◦ 3. Ejecución y validación del programa
  • 8. Características de los algoritmos  Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.  Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo.  Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; es decir, debe tener un número finito de pasos.
  • 9. Ejemplo:  Un cliente ejecuta un pedido u una fábrica. La fábrica examina en su banco de datos la ficha del cliente, si el cliente es solvente entonces la empresa acepta el pedido; en caso contrario, rechazará el pedido. Redactar el algoritmo correspondiente. ◦ 1. Inicio. ◦ 2. Leer el pedido. ◦ 3. Examinar la ficha del cliente. ◦ 4. Si el cliente es solvente, aceptar pedido; en caso contrario, rechazar pedido. ◦ 5. Fin.
  • 10. Ejercicios en Clase.  Diseñar una solución para resolver cada uno de los siguientes problemas en algoritmos adecuados:  a) Realizar una llamada telefónica desde un teléfono público.  b) Cocinar un pastel.  c) Cambiar una llanta a un auto.  d) Hacer una suma.
  • 11. EL SOFTWARE (LOS PROGRAMAS) Relación entre programas de aplicación y programas del sistema.
  • 12.
  • 13. LENGUAJES DE PROGRAMACIÓN  Para que un procesador realice un proceso se le debe suministrar en primer lugar un algoritmo adecuado. El procesador debe ser capaz de interpretar el algoritmo, lo que significa: ◦ Comprender las instrucciones de cada paso. ◦ Realizar las operaciones correspondientes.  Cuando el procesador es una computadora, el algoritmo se ha de expresar en un formato que se denomina programa. Un programa se escribe en un lenguaje de programación y las operaciones que conducen a expresar un algoritmo en forma de programa se llaman programación. Así pues, los lenguajes utilizados para escribir programas de computadoras son los lenguajes de programación y programadores son los escritores y diseñadores de programas.
  • 14. Los principales tipos de lenguajes utilizados en la actualidad son tres: ◦ Lenguajes máquina. ◦ Lenguaje de bajo nivel (ensamblador). ◦ Lenguajes de alto nivel.
  • 15. Los lenguajes máquina son aquellos que están escritos en lenguajes directamente inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias (cadenas o series de caracteres -dígitos- 0 y 1) que especifican una operación, y las posiciones (dirección) de memoria implicadas en la operación se denominan instrucciones de máquina o código máquina. El código máquina es el
  • 16.  Las ventajas de programar en lenguaje máquina son la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior, lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación.  Los inconvenientes son: ◦ Dificultad y lentitud en la codificación. ◦ Poca fiabilidad. ◦ Dificultad grande de verificar y poner a punto los programas. ◦ Los programas sólo son ejecutables en el mismo procesador (UPC, unidad Central de
  • 17. Los lenguajes de bajo nivel son más fáciles de utilizar que los lenguajes máquina, pero, al igual, que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador(assembly languaje). Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos (mnemonics). Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: en inglés, ADD, SUB, DIV, etc.
  • 18. Ejemplo  Una instrucción típica de suma sería: ADD M, N, P  su equivalente en código máquina: 0110 1001 1010 1011 Hay que traducir al lenguaje de máquina.
  • 19. Los lenguajes ensambladores presentan la ventaja frente a los lenguajes máquina de su mayor facilidad de codificación y, en general, su velocidad de cálculo.
  • 20. Los inconvenientes más notables de los lenguajes ensambladores son: ◦ Dependencia total de la máquina, lo que impide la transportabilidad de los programas (posibilidad de ejecutar un programa en diferentes máquinas). El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Macintosh. ◦ La formación de los programas es más compleja que la correspondiente a los programadores de alto nivel, ya que exige no sólo las técnicas de programación, sino también el conocimiento del interior de la máquina.
  • 21. Los lenguajes de alto nivel son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores. Otra razón es que un programa escrito en lenguaje de alto nivel es independiente de la máquina; esto es, las instrucciones del programa de la computadora no dependen del diseño del hardware o de una computadora en particular.
  • 22.  Los lenguajes de alto nivel presentan las siguientes ventajas: ◦ El tiempo de formación de los programadores es relativamente corto comparado con otros lenguajes ◦ La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos. ◦ Las modificaciones y puestas a punto de los programas son más fáciles. ◦ Reducción del coste de los programas. ◦ Transportabilidad.  Los inconvenientes se concretan en: ◦ Incremento del tiempo de puesta a punto, al necesitarse diferentes traducciones del programa. ◦ No se aprovechan los recursos internos de la máquina, que se explotan mucho mejor en lenguajes máquina y ensambladores. ◦ Aumento de la ocupación de memoria.
  • 23.
  • 24. Traductores de lenguaje  Los traductores se dividen en: ◦ Intérpretes. ◦ Compiladores.
  • 25. La compilación y sus fases
  • 26. Ventajas de C  El lenguaje C es poderoso y flexible, con órdenes, operaciones y funciones de biblioteca que se pueden utilizar para escribir la mayoría de los programas que corren en la computadora.  C se utiliza por programadores profesionales para desarrollar software en la mayoría de los modernos sistemas de computadora.  Se puede utilizar C para desarrollar sistemas operativos, compiladores, sistemas de tiempo real y aplicaciones de comunicaciones.  Un programa C puede ser escrito para un tipo de computadora y trasladarse a otra computadora con pocas o ninguna modificación -propiedad conocida como portabilidad-.
  • 27. Características técnicas de C  Una nueva sintaxis para declarar funciones. Una declaración de función puede añadir una descripción de los argumentos de la función. Esta información adicional sirve para que los compiladores detecten más fácilmente los errores causados por argumentos que no coinciden.  Asignación de estructuras (registros) y enumeraciones.  Preprocesador más sofisticado.  Una nueva definición de la biblioteca que acompaña a C. Entre otras funciones se incluyen: acceso al sistema operativo (por ejemplo, lectura y escritura de archivos), entrada y salida con formato, asignación dinámica de memoria, manejo de cadenas de caracteres.  Una colección de cabeceras estándar que
  • 28. Versiones actuales de C  En la actualidad son muchos los fabricantes de compiladores C, aunque los más populares entre los fabricantes de software son: Microsoft, Imprise, etc.  Una evolución de C, el lenguaje C++ (C con clases) que contiene entre otras, todas las características de ANSI C. Los compiladores más empleados Visual C++ de microsoft. Builder C++, Borland, C++ bajo UNIX y LINUX.  En el 2000, Microsoft patentó una nueva versión de C++, que es C#, una evolución del C++ estándar, con propiedades de Java y diseñado para aplicaciones en línea, Internet (on line) y  fuera de línea.