07 lenguajes de programación y el lenguaje c · lenguaje de programación que se encuentran entre...

25
Estructuras de datos (Prof. Edgardo A. Franco) 1 Tema 07: Lenguajes de programación y el lenguaje C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

Upload: others

Post on 02-Dec-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

Estructuras de datos (Prof. Edgardo A. Franco)

1

Tema 07: Lenguajes de programación y el lenguaje C

M. en C. Edgardo Adrián Franco Martínez http://[email protected]@edfrancom edgardoadrianfrancom

Page 2: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

Contenido• 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ón

• Lenguaje C

• Historia del lenguaje C

• Ventajas y desventajas del lenguaje C

• El estándar ANSI C 2

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 3: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

Lenguaje de programación• Un lenguaje de programación es un idioma artificial

diseñ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.

3

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 4: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• 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.

• 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)

4

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 5: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

Programa computacional• Un programa computacional es un conjunto de

instrucciones 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.

5

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Abstracción: Acto mental en el que conceptualmente se aísla un objeto o una propiedad de un objeto.

Page 6: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

Clasificación de los lenguaje de programación

• 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.

• 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ón

6

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 7: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

7

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Clasificación de los lenguaje de programación según su nivel de abstracción

Page 8: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• 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.

• 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. 8

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 9: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

Lenguaje maquina (Instrucciones en binario)

Lenguaje de bajo nivel(Instrucciones en código maquina)

9

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 10: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• 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.

• 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.

10

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 11: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

11

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 12: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• 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

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 13: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• 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).

13

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Clasificación de los lenguaje de programación según su modo de ejecución final

Page 14: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• Lenguaje compilado• Lenguaje de programación que requiere de un proceso de

compilación antes de poder ser ejecutado.

Código Fuente Compilador

Programa en lenguaje maquina u objeto

EntradaPrograma en

lenguaje maquina u objeto

Salida

14

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 15: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• Lenguaje interpretado• Es un lenguaje de programación que está diseñado para ser

ejecutado por medio de un intérprete.

Código Fuente

Intérprete SalidaEntrada Compilador

15

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 16: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• 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ón

16

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Clasificación de los lenguaje de programación según su paradigma de programación

Un paradigma de programaciónrepresenta un enfoque particular ofilosofía para la construcción delsoftware.

Page 17: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• Un paradigma de programación no es mejor uno que otrosino que cada uno tiene ventajas y desventajas.

• 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.

17

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 18: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

Lenguaje C

• 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.

• 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

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 19: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

Ventajas 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 ventajosamente la programación enensamblador

• Utilización natural de las funciones primitivas del sistemaoperativo (Unix)

• De propósito general

19

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 20: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

Desventajas del Lenguaje C

• No posee de instrucciones de entrada y salida

• No posee de instrucciones de manejo de cadenas decaracteres

• 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 rompecabezas 20

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 21: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

El estándar ANSI C

• 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. 21

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 22: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• 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.

• 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.

22

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 23: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• Posteriores versiones del C estándar han añadidoalgunos nuevos ficheros cabecera a la biblioteca. Elsoporte de estas nuevas extensiones varía segúnimplementaciones.

• 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>.

23

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 24: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• En 1990, el estándar ANSI C (con algunas modificacionesmenores) fue adoptado por la International Organizationfor Standardization bajo la denominación ISO/IEC9899:1990.

• En marzo de 2000, ANSI adoptó el estándar ISO/IEC9899:1999. A este estándar se le conoce como C99.

http://www.open-std.org/jtc1/sc22/wg14/www/docs/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 2011.

http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf 24

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez

Page 25: 07 Lenguajes de programación y el lenguaje C · lenguaje de programación que se encuentran entre los lenguajes de alto nivel y los lenguajes de bajo nivel. Suelen ser clasificados

• 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.

• 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.

25

Alg

ori

tmia

y p

rogr

amac

ión

est

ruct

ura

da

07

Len

guaj

es d

e p

rogr

amac

ión

y e

l len

guaj

e C

P

rof.

Edga

rdo

Ad

rián

Fra

nco

Mar

tín

ez