07 Lenguajes De Programación Y El Lenguaje C - Eafranco

Transcription

Tema 07: Lenguajes de programación y ellenguaje C1M. en C. Edgardo Adrián Franco dfrancomedgardoadrianfrancomEstructuras de datos (Prof. Edgardo A. Franco)

Lenguaje de programación Programa computacional Clasificaciones de los lenguajes de programación Clasificación según su nivel de abstracción Clasificación según su modo de ejecución final Clasificación según su paradigma de programaciónAlgoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezContenido Lenguaje C Historia del lenguaje C Ventajas y desventajas del lenguaje C El estándar ANSI C2

Un lenguaje de programación es un idioma artificialdiseñado para expresar computaciones que pueden serllevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen elcomportamiento físico y lógico de una máquina, estopermite expresar algoritmos con precisión e interacciónhumano-maquina.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezLenguaje de programación3

Sintáctica (reglas que gobiernan la combinatoria de los símbolos y laformación de unidades superiores a estos) Semántica (aspectos del significado, sentido o interpretación delsignificado de un determinado elemento, símbolo, palabra, expresióno representación formal)Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez Está formado de un conjunto de símbolos y reglassintácticas y semánticas que definen su estructura y elsignificado de sus elementos y expresiones.4

Un programa computacional es un conjunto deinstrucciones que una vez ejecutadas realizarán una ovarias tareas en una computadora. La razón de ser de un programa computacional es permitirresolver problemas con apoyo de equipos computacionalespor lo que al crearlos es necesario abstraer loscomponentes de este y modelarlos en un ambientecomputacional.Abstracción: Acto mental en el queconceptualmente se aísla un objeto o unapropiedad de un objeto.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezPrograma computacional5

En la actualidad hay muchos tipos de lenguajesde programación, cada uno de ellos con suspropias reglas, terminología, sintaxis y manerade crear un programa computacional.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezClasificación de los lenguaje deprogramación La clasificación de los lenguajes de programaciónpuede realizarse desde tres aspectos básicos. Según su nivel de abstracción Según su modo de ejecución final Según su paradigma de programación6

Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezClasificación de los lenguaje deprogramación según su nivel de abstracción7

Lenguajes de programación de bajo nivel:Son mucho mas fáciles de utilizar que ellenguaje máquina, pero dependen muchode la máquina o computadora al igual queel lenguaje máquina. El lenguaje ensamblador fue el primer lenguajede programación que trato de sustituir ellenguaje máquina por otro mucho másparecido al de los seres humanos.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez Lenguaje Máquina: es el lenguaje deprogramación que entiende directamentela computadora o máquina. Este lenguajede programación utiliza el alfabeto binario,es decir, el 0 y el 1.8

Lenguaje maquina (Instrucciones en binario)Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezLenguaje de bajo nivel(Instrucciones en código maquina)9

Son precisos para ciertas aplicaciones como la creaciónde sistemas operativos, ya que permiten un manejoabstracto (independiente de la máquina, a diferencia delensamblador), pero sin perder mucho del poder yeficiencia que tienen los lenguajes de bajo nivel.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez Lenguaje de medio nivel: Lenguaje de medio nivel es unlenguaje de programación que se encuentran entre loslenguajes de alto nivel y los lenguajes de bajo nivel.Suelen ser clasificados muchas veces de alto nivel, peropermiten ciertos manejos de bajo nivel.10

11Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez

Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez Lenguajes de programación de alto nivel: Este tipo delenguajes de programación son independientes de lamáquina, lo podemos usar en cualquier computador conmuy pocas modificaciones o sin ellas, son muy similaresal lenguaje humano, pero precisan de un programainterprete o compilador que traduzca este lenguaje deprogramación de alto nivel a lenguaje de máquina que lacomputadora pueda entender.12

El modo de ejecución final de un lenguaje deprogramación, se refiere al proceso necesario paraponer en ejecución las instrucciones de dicho lenguajeen un equipo de cómputo. Para finalmente proporcionarlas entradas que serán tomadas para obtener una salidade todo el conjunto de instrucciones (programacomputacional).Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezClasificación de los lenguaje de programaciónsegún su modo de ejecución final13

Lenguaje de programación que requiere de un proceso decompilación antes de poder ser ejecutado.CódigoFuenteEntradaCompiladorPrograma enlenguaje maquinau objetoProgramaen lenguajemaquina uobjetoAlgoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez Lenguaje compiladoSalida14

Es un lenguaje de programación que está diseñado para serejecutado por medio de un mia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez Lenguaje interpretadoSalidaCompilador15

El paradigma de programación es un modelo que rigecomo construir un programa de computación bajo unlenguaje de programación, por lo que algunos lenguajeshan surgido orientándose a ellos. También existenlenguajes de programación capaces de soportar más deun paradigma de programaciónAlgoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezClasificación de los lenguaje de programaciónsegún su paradigma de programaciónUn paradigma de programaciónrepresenta un enfoque particular ofilosofía para la construcción delsoftware.16

También hay situaciones donde un paradigma resulta másapropiado que otro. En la actualidad el paradigma orientado a objetos es el másutilizado debido a la facilidad para abstraer a su filosofía lamayoría de las soluciones a los problemas actuales, para suimplementación y a reemplazado al paradigma deprogramación estructurada muy empleado en la década delos 80’s y 90’s.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez Un paradigma de programación no es mejor uno que otrosino que cada uno tiene ventajas y desventajas.17

C es un lenguaje de programación creado en 1972 por DennisMacAlistair Ritchie en los Laboratorios Bell como evolucióndel anterior lenguaje B, creado por Ken Thompson. Se trata de un lenguaje fuertemente tipificado de medio nivelpero con muchas características de bajo nivel.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezLenguaje C Dispone de las estructuras típicas de los lenguajes de altonivel pero, a su vez, dispone de construcciones del lenguajeque permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje queposibilitan mezclar código en ensamblador con código C oacceder directamente a memoria o dispositivos periféricos.18

Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezVentajas del Lenguaje C Programación Estructurada Economía de expresiones Gran cantidad de operadores y tipos de datos Codificación en alto y bajo nivel simultáneamente Reemplaza ventajosamenteensambladorlaprogramaciónen Utilización natural de las funciones primitivas del sistemaoperativo (Unix) De propósito general19

No posee de instrucciones de entrada y salida No posee de instrucciones de manejo de cadenas decaracteresAlgoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezDesventajas del Lenguaje C La libertad en la escritura en los programas lleva aerrores en la programación (semánticos) que, por sercorrectos sintácticamente no se detectan a simple vista La precedencia de operadores convierten las expresionesen pequeños rompecabezas20

El lenguaje de programación C, antes denormalizarse, no disponía de funcionalidadestales como operaciones de entrada/salida (adiferencia de lenguajes tradicionales como Coboly Fortran). Con el tiempo, las comunidades de usuarios de Cfueron compartiendo ideas, así como lasimplementaciones de lo que ahora se denominalas bibliotecas estándar de C para proporcionaresas funcionalidades.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco MartínezEl estándar ANSI C21

Fue en los 70 cuando el lenguaje de programación Cacrecentó su popularidad. Muchas organizaciones yuniversidades crearon sus propias versiones del lenguajepara sus propios proyectos. A comienzos de los 80 seevidenciaron los problemas de compatibilidad derivados dela existencia de las múltiples implementaciones dellenguaje. En 1983 el Instituto Nacional Americano de EstándaresANSI, creo un comité para establecer una especificaciónestándar del lenguaje conocida como ANSI C. Este trabajoculminó con la creación del llamado estándar C89 en 1989.Una parte del estándar resultante fue un conjunto debibliotecas de software denominado bibliotecas estándarde ANSI C.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez Tanto Unix como C fueron creados en los laboratorios Bellde AT&T a finales de la década de los 60 y principios de los70.22

Las cabeceras iso646.h , wchar.h y wctype.h fueron añadidas con Normativa Addendum 1(abreviado NA1), y fueron ratificadas por elestándar en 1995. En 1999 se realizó una revisión del estándar que sedenominó C99 a la que se añadieron las cabeceras complex.h , fenv.h , inttypes.h , stdbool.h , stdint.h y tgmath.h .Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez Posteriores versiones del C estándar han añadidoalgunos nuevos ficheros cabecera a la biblioteca. Elsoporte de estas nuevas extensiones varía segúnimplementaciones.23

En marzo de 2000, ANSI adoptó el estándar ISO/IEC9899:1999. A este estándar se le conoce como s/n1124.pdf C11 (antes conocido como C1X) es un nombre informalpara ISO/IEC 9899:2011,3 el último estándar publicadopara C. El borrador final, N1570,4 fue publicado en abrilde 2011. El nuevo estándar superó su última revisión el10 de octubre de 2011 y fue oficialmente ratificado porla ISO y publicado el 8 de diciembre de cs/n1570.pdfAlgoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez En 1990, el estándar ANSI C (con algunas modificacionesmenores) fue adoptado por la International Organizationfor Standardization bajo la denominación ISO/IEC9899:1990.24

En comparación con otros lenguajes de programación(como por ejemplo Java) la biblioteca estándar es muypequeña, está proporciona un conjunto básico defunciones matemáticas, de tratamiento de cadenas,conversiones de tipo y entrada/salida por consola o porarchivos. Hasta C99, no se incluyen, ni un conjunto de tipos de datoscontenedores básicos (listas, pilas, colas, .), niherramientas para crear una interfaz gráfica de usuario(GUI), ni operaciones para trabajar en red.Algoritmia y programación estructurada07 Lenguajes de programación y el lenguaje CProf. Edgardo Adrián Franco Martínez La biblioteca estándar de ANSI C consta de 24 archivoscabecera hasta C99 y 29 en C11 que pueden ser incluidosen un proyecto de programación con una simple directiva.Cada cabecera contiene la declaración de una o másfunciones, tipos de datos y macros.25

Un paradigma de programación no es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro. En la actualidad el paradigma orientado a objetos es el más utilizado debido a la facilidad para abstraer a su filosofía la mayoría de las soluciones a los problemas actuales, para su