SlideShare una empresa de Scribd logo
1 de 33
Prof. Eliezer Córdova
Algoritmos y Computación Avanzada
Lenguajes de
Programación
Prof. Eliezer Córdova
¿Porqué estudiar lenguajes de programación?
 La pregunta es ¿cuál es la ventaja de estudiar una
variedad de lenguajes diferentes que es poco
probable que uno llegue a utilizar?:
Prof. Eliezer Córdova
 Mejorar la habilidad para desarrollar algoritmos eficaces.
 Mejorar el uso del lenguaje de programación disponible.
 Hacer posible una mejor elección del lenguaje de
programación.
 Facilitar el diseño de un nuevo lenguaje.
¿Porqué estudiar lenguajes de programación?
Prof. Eliezer Córdova
El papel de los lenguajes de programación
 Inicialmente los lenguajes se proyectaban para ejecutar
programas con eficiencia. A mediados de los años sesenta la
programación cambia:
 Las máquinas son menos costosas y aumentan los costos de
programación.
 Surge la necesidad de trasladar programas de unos sistemas a otros.
 El mantenimiento del producto consume mayores recursos de
cómputo.
 La tarea del lenguaje de alto nivel es la de facilitar el desarrollo de
programas correctos para resolver problemas en alguna área de
aplicación dada.
Prof. Eliezer Córdova
El papel de los lenguajes de programación
 Los lenguajes de programación evolucionan o dejan de
usarse. Influencias que obligan a la revisión de los
lenguajes:
 Capacidad de las computadoras.
 Aplicaciones: Los requerimientos de nuevas áreas de aplicación
afectan los diseños de nuevos lenguajes y las revisiones y
ampliaciones de los más antiguos.
 Métodos de programación.
 Métodos de implementación.
 Estudios teóricos.
 Estandarización.
Prof. Eliezer Córdova
Atributos de un buen lenguaje
 Claridad, sencillez y unidad (legibilidad): La sintaxis del lenguaje afecta
la facilidad con la que un programa se puede escribir, por a prueba, y más
tarde entender y modificar.
 Ortogonalidad: Capacidad para combinar varias características de un
lenguaje en todas las combinaciones posibles, de manera que todas ellas
tengan significado.
 Naturalidad para la aplicación: La sintaxis del programa debe permitir
que la estructura del programa refleje la estructura lógica subyacente.
 Apoyo para la abstracción: Una parte importante de la tarea del
programador es proyectar las abstracciones adecuadas para la solución
del problema y luego implementar esas abstracciones empleando las
capacidades más primitivas que provee el lenguaje de programación
mismo.
Prof. Eliezer Córdova
Atributos de un buen lenguaje
 Facilidad para verificar programas: La sencillez de la estructura
semántica y sintáctica ayuda a simplificar la verificación de programas.
 Entorno de programación: Facilita el trabajo con un lenguaje
técnicamente débil en comparación con un lenguaje más fuerte con poco
apoyo externo.
 Portabilidad de programas
 Costo de uso:
 1. Costo de ejecución del programa.
 2. Costo de traducción de programas.
 3. Costo de creación, prueba y uso de programas.
 4. Costo de mantenimiento de los programas: costo total del ciclo de vida.
Prof. Eliezer Córdova
Dominios de aplicación
 Aplicaciones de los años sesenta. Durante la década de
1960, casi toda la programación se podía dividir en cuatro
modelos básicos de programación:
 De procesamiento de negocios (COBOL).
 Científicos (FORTRAN).
 De sistemas (ALGOL, JOVIAL, etc.): Para construir sistemas
operativos.
 De Inteligencia Artificial (LISP).
Prof. Eliezer Córdova
Dominios de aplicación
 Aplicaciones de los años noventa. La situación actual tiene
más dominios de aplicación:
 De procesamiento de negocios (COBOL).
 Científicos (FORTRAN 90).
 De sistemas: Con el advenimiento de los microprocesadores baratos
que gobiernan automóviles, hornos de microondas, etc., ha
aumentado la necesidad de contar con lenguajes para tiempo real.
Prof. Eliezer Córdova
Dominios de aplicación
 Aplicaciones de los años noventa. La situación actual tiene
más dominios de aplicación:
 Edición: Los sistemas de procesamiento de texto tienen su propia
sintaxis para mandatos de entrada y archivos de salida. El traductor
TEX produce un programa en el lenguaje PostScript de descripción de
páginas. PostScript se puede compilar por medir de un procesador
adecuado. Éste suele ser la impresora láser que se utiliza para
imprimir el documento.
 De proceso: Dentro de UNIX, el lenguaje de comandos de usuario se
conoce como shell y a los programas se les llama guiones de shell
(parecidos a los archivos .bat). Estos guiones se pueden invocar
siempre que ocurren ciertas condiciones habilitadoras.
Prof. Eliezer Córdova
Estandarización de los lenguajes
 Los estándares son en general de dos clases:
 1. Estándares patentados (DE PACTO): Son las definiciones
elaboradas por la compañía que desarrollo el lenguaje y que es su
propietaria.
 2. Estándares de consenso (DE FACTO): Se trata de documentos
elaborados por organizaciones con base en un acuerdo entre los
participantes pertinentes. Método principal para asegurar la
uniformidad entre varias implementaciones de un lenguaje.
Ejemplo: ANSI, IEEE, ISO, etc.
Prof. Eliezer Córdova
Estandarización de los lenguajes
 Proceso en el desarrollo de normas: Un grupo decide
que un lenguaje requiere una definición estándar. El
organismo normativo organiza un grupo de trabajo de
voluntarios para desarrollar esa norma. Cuando el grupo de
trabajo llega a un acuerdo sobre su norma, se somete a
votación por parte de un bloque más grande de individuos
interesados. Los desacuerdos se resuelven y se produce el
estándar del lenguaje.
Prof. Eliezer Córdova
Uso de estándares en forma eficaz
 Es necesario ocuparse de tres cuestiones:
 Oportunidad (¿Cuándo estandarizar un lenguaje?): Lo deseable sería
estandarizar un lenguaje lo suficientemente pronto para que exista
suficiente experiencia en el uso del lenguaje, pero no demasiado tarde, para
no alentar muchas implementaciones incompatibles.
 Conformidad (¿Qué significa que un programa se adhiere a un estándar y
que un compilador compila un estándar?): Si existe un estándar para un
lenguaje, se suele hablar de conformidad con respecto a ese estándar. Un
programa es conforme si sólo utiliza características definidas en el
estándar. Un compilador conformable es uno que, cuando se le da un
programa conforme, produce un programa ejecutable que genera la salida
correcta.
Prof. Eliezer Córdova
 Es necesario ocuparse de tres cuestiones:
 Obsolescencia (¿Cuándo envejece un estándar y cómo se modifica?): Los
estándares se tienen que revisar cada 5 años y ya sea renovarse o
descartarse. Casi todos los estándares requieren compatibilidad hacia
atrás; El nuevo estándar debe incluir versiones más antiguas del lenguaje.
Esto tiene el problema de que el lenguaje se puede hacer difícil de manejar
a causa de las numerosas construcciones obsoletas.
Una característica es obsolescente si es candidata a ser descartada en la
próxima versión del estándar.
Una característica desaprobada se puede volver obsolescente en el
próximo estándar, por lo cual puede ser descartada después de dos
revisiones.
Uso de estándares en forma eficaz
Prof. Eliezer Córdova
Efectos de los entornos sobre los lenguajes
 Cuatro clases generales de entornos objetivo cubre
casi todas las aplicaciones de programación:
 de procesamiento por lotes,
 interactivo,
 de sistema empotrado, y
 de programación (entorno interactivo).
Cada uno plantea distintos requerimientos sobre los
lenguajes adaptados a esos entornos.
Prof. Eliezer Córdova
Entornos de procesamiento por lotes
 El más simple entorno operativo se compone sólo de archivos externos
de datos. Un programa toma un cierto conjunto de archivos de datos
como entrada, procesa los datos y produce un conjunto de archivos de
datos de salida. El nombre de procesamiento por lotes viene porque los
datos de entrada se reúnen en “lotes” de archivos y son procesados en
lotes por programas.
 Los archivos constituyen la base para casi toda la estructura de E/S.
 Un error que termine la ejecución del programa es aceptable aunque costoso.
No es posible la ayuda externa por parte del usuario para manejar o corregir
errores de inmediato.
 Carencia de restricciones de regulación de tiempo. No hay recursos para
monitorear o afectar directamente la velocidad de ejecución del programa.
Prof. Eliezer Córdova
Entornos interactivos
 El programa interactúa durante su ejecución directa con un
usuario en una consola de visualización, enviando
alternativamente salidas hacia ésta y recibiendo entradas
desde el teclado o ratón (procesadores de texto, hojas de
cálculo, juegos, etc.).
 Las características de E/S interactivas son diferentes de las
operaciones ordinarias con archivos.
 El programa debe ser capaz de gestionar el manejo de errores. La
terminación del programa como respuesta aun error no es
ordinariamente aceptable (a diferencia del procesamiento por lotes).
Prof. Eliezer Córdova
Entornos interactivos
 El programa interactúa durante su ejecución directa con un
usuario en una consola de visualización, enviando
alternativamente salidas hacia ésta y recibiendo entradas
desde el teclado o ratón (procesadores de texto, hojas de
cálculo, juegos, etc.).
 Los programas interactivos deben utilizar con frecuencia algún
concepto de restricciones de tiempo.
 El concepto de programa principal suele estar ausente. En su lugar,
el programa se compone de un conjunto de subprogramas y el
usuario introduce el “programa principal como una serie de
comandos en el terminal.
Prof. Eliezer Córdova
Entornos de sistemas incrustados (empotrados)
 Un sistema de computadora que se usa para controlar parte de un sistema
más grande como una planta industrial, una aeronave, etc., se conoce con
el nombre de sistema de computadora incrustado. El fallo de una aplicación
empotrada puede poner en peligro la vida. La seguridad de funcionamiento
y corrección son atributos principales.
 Suelen operar sin un sistema operativo subyacente y sin archivos de entorno y
dispositivos de E/S usuales. El programa debe interactuar directamente con la
máquina.
 El manejo de errores tiene gran importancia. Cada programa debe estar
preparado para manejar todos los errores en forma interna, adoptando acciones
apropiadas para recuperarse y continuar. La interrupción del programa no es
aceptable y no hay un usuario en el entorno que pueda proporcionar la
corrección interactiva del error.
Prof. Eliezer Córdova
Entornos de sistemas incrustados (empotrados)
 Un sistema de computadora que se usa para controlar parte de un sistema
más grande como una planta industrial, una aeronave, etc., se conoce con
el nombre de sistema de computadora incrustado. El fallo de una aplicación
empotrada puede poner en peligro la vida. La seguridad de funcionamiento
y corrección son atributos principales.
 Operan en tiempo real, donde la respuesta las entradas debe producirse en
intervalos de tiempo restringidos.
 Suele ser un sistema distribuido, compuesto por más de una computadora.
 Una vez iniciadas las tareas, se ejecutan por lo común de forma simultánea e
indefinida.
Prof. Eliezer Córdova
Entornos de programación
 Es el entorno en el cual los programas se crean y se ponen a prueba. Consiste en
un conjunto de herramientas (editor, depurador, verificador, generadores de datos
de prueba, etc.) de apoyo y un lenguaje para invocarlas.
 Al compilar por separado cada subprograma el compilador necesita información
de:
 La especificación del número, orden y tipo de parámetros.
 La declaración de tipo de datos.
 La definición de un tipo de datos (para la declaración local de variables).
Prof. Eliezer Córdova
Entornos de programación
 Un problema común, es encontrar, durante el ensamblado del programa final
completo, que varios subprogramas y otras unidades de programa tienen nombres
(de variables) iguales. Métodos para evitar este problema:
1. Todo nombre compartido debe ser único. Se deben usar convenciones para la
asignación de nombres desde un principio.
2. Definir, en el lenguaje, reglas de ámbito, para ocultar nombre.
3. Los nombres se pueden conocer agregando explícitamente sus definiciones desde una
biblioteca externa (herencia en POO).
Prof. Eliezer Córdova
Entornos de programación
 Características que ayudan a poner a prueba y depurar programas.
1. Características para rastreo de ejecución.
2. Puntos de interrupción. Cuando se alcanza un punto de interrupción durante la
ejecución del programa, la misma se interrumpe y el control se traslada al programador
en un terminal.
3. Asertos: expresan relaciones que deben cumplirse entre los valores de las variables en
ese punto del programa.
Prof. Eliezer Córdova
Marcos de ambiente
 Este marco suministra
servicios como un
depósito de datos,
interfaz gráfica de
usuario, seguridad y
servicios de
comunicación.
Prof. Eliezer Córdova
Paradigmas de Programación
 La clasificación de los lenguajes atendiendo a sus
características intrínsecas conduce a los llamados
paradigmas de programación. Un paradigma de
programación es un modelo de programación que
engloba a ciertos lenguajes que comparten:
 Elementos estructurales: ¿con qué se confeccionan los
programas?
 Elementos metodológicos: ¿cómo se confecciona un programa?
Prof. Eliezer Córdova
Programación Imperativa o Procedural: C
 Desarrollado por Ritchie y Thompson en el 72.
 Multiuso (inicialmente para sistemas)
 Sintaxis compacta
Prof. Eliezer Córdova
Programación Imperativa o Procedural: C
 Historia
 60 Thompson desarrolla en Bell Multics, se crea un
lenguaje llamado B.
 70, el proyecto UNIX avanza y el lenguaje B se queda
pequeño, se comienza a desarrollar C
 82, C es distribuido con Unix y muy usado en las
universidades. ANSI comienza a desarrollar un
estándar
Prof. Eliezer Córdova
Perspectiva del lenguaje C
 La programación en C se compone de:
 El lenguaje C, con un limitado nº de estructuras de
control. No hay primitivas si no se usan las librerías.
 El preprocesador de C (#), estos enunciados no forman
parte del lenguaje C y son preprocesados antes de la
compilación.
Prof. Eliezer Córdova
Perspectiva del lenguaje C
 La programación en C se compone de:
 preprocesados antes de la compilación.
 Los supuestos de interfaz C (.h), lor archivos “header”
informan al usuario de las funciones incluidad en una
biblioteca.
 Las bibliotecas de C. Archivos obj o lib conteniendo la
implementación de las funciones.
Prof. Eliezer Córdova
Objetos de datos
 Tipos de datos primitivos
 Los nombres de variables no pueden comenzar con dígito.
Sensible a may-min.
 Los datos son enteros (char, short, long), enumerados (enum) o
float. Los punteros se declaran con el tipo seguido de ‘*’.
 No hay booleanos.
Prof. Eliezer Córdova
Objetos de datos
 Tipos de datos estructurados
 Arrays, comienzan en 0 y se guardan por filas.
 Tipos definidos por el usuario. Struct { }.
Prof. Eliezer Córdova
Representación de almacenamiento
 Los tipos de C emplean básicamente la representación
hardware de sus datos.
 Una variable de tipo array es también el puntero al
primer elemento del array que comienza con el índice 0.
 Es posible inicializar cualquier variable declarada
estáticamente.
Prof. Eliezer Córdova
Evaluación del lenguaje
 C es muy potente y popular:
 Flexible
 Eficiente
 Disponible (se distribuye con Unix)
 Portatil
 Pero C también permite una programación
descuidada y propensa a errores.

Más contenido relacionado

La actualidad más candente

Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.LuiS YmAY
 
Introduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidosIntroduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidosRene Guaman-Quinche
 
linea del tiempo de las redes de datos
linea del tiempo de las redes de datoslinea del tiempo de las redes de datos
linea del tiempo de las redes de datosDanMenGar
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de ComunicaciónJosé Antonio Sandoval Acosta
 
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...José Antonio Sandoval Acosta
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftChuyito Alvarado
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoJesús E. CuRias
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesHumano Terricola
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosHECTOR JAVIER
 
Unidad 1. caracterizacion de los sistemas distribuidos
Unidad 1.  caracterizacion de los sistemas distribuidosUnidad 1.  caracterizacion de los sistemas distribuidos
Unidad 1. caracterizacion de los sistemas distribuidosEManuel Torres
 
Gestión de proyectos de software - Subtema 3.1: Objetivo del proyecto
Gestión de proyectos de software - Subtema 3.1: Objetivo del proyectoGestión de proyectos de software - Subtema 3.1: Objetivo del proyecto
Gestión de proyectos de software - Subtema 3.1: Objetivo del proyectoJair Valenz
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareT.I.C
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSYessica Hyuga Soto
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De EnsambladoresSpiderHal
 

La actualidad más candente (20)

UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADORUNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
UNIDAD 1 INTRODUCCIÓN AL LENGUAJE ENSAMBLADOR
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Introduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidosIntroduccion a los sistemas distribuidos
Introduccion a los sistemas distribuidos
 
linea del tiempo de las redes de datos
linea del tiempo de las redes de datoslinea del tiempo de las redes de datos
linea del tiempo de las redes de datos
 
Unidad1 2 Lenguajes y automatas
Unidad1 2  Lenguajes y automatasUnidad1 2  Lenguajes y automatas
Unidad1 2 Lenguajes y automatas
 
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
Fundamentos de TelecomunicacionesUnidad 5 Dispositivos de ComunicaciónFundamentos de TelecomunicacionesUnidad 5 Dispositivos de Comunicación
Fundamentos de Telecomunicaciones Unidad 5 Dispositivos de Comunicación
 
Tutorial de JFLAP
Tutorial de JFLAPTutorial de JFLAP
Tutorial de JFLAP
 
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
 
Ventajas y desventajas de moprosoft
Ventajas y desventajas de moprosoftVentajas y desventajas de moprosoft
Ventajas y desventajas de moprosoft
 
Métrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigoMétrica de punto de función y lineas de codigo
Métrica de punto de función y lineas de codigo
 
1. introducción a c#
1.  introducción a c#1.  introducción a c#
1. introducción a c#
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Modelo OSI y TCP/IP
Modelo OSI y TCP/IPModelo OSI y TCP/IP
Modelo OSI y TCP/IP
 
Seguridad En Sistemas Distribuidos
Seguridad En Sistemas DistribuidosSeguridad En Sistemas Distribuidos
Seguridad En Sistemas Distribuidos
 
Unidad 1. caracterizacion de los sistemas distribuidos
Unidad 1.  caracterizacion de los sistemas distribuidosUnidad 1.  caracterizacion de los sistemas distribuidos
Unidad 1. caracterizacion de los sistemas distribuidos
 
Gestión de proyectos de software - Subtema 3.1: Objetivo del proyecto
Gestión de proyectos de software - Subtema 3.1: Objetivo del proyectoGestión de proyectos de software - Subtema 3.1: Objetivo del proyecto
Gestión de proyectos de software - Subtema 3.1: Objetivo del proyecto
 
Etapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del SoftwareEtapas del Proceso de la Ingeniería del Software
Etapas del Proceso de la Ingeniería del Software
 
Seguridad de las redes
Seguridad de las redesSeguridad de las redes
Seguridad de las redes
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
 
Tipos De Ensambladores
Tipos De EnsambladoresTipos De Ensambladores
Tipos De Ensambladores
 

Similar a Lenguajes de programación: Estudio y aplicaciones

Similar a Lenguajes de programación: Estudio y aplicaciones (20)

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
 
Procesadores de Lenguajes
Procesadores de LenguajesProcesadores de Lenguajes
Procesadores de Lenguajes
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Programación
ProgramaciónProgramación
Programación
 
Tipos de lenguaje de programacion
Tipos de lenguaje de programacionTipos de lenguaje de programacion
Tipos de lenguaje de programacion
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
 
Fundamentos de programación presentación tese
Fundamentos de programación presentación teseFundamentos de programación presentación tese
Fundamentos de programación presentación tese
 
Lenguaje de programación
Lenguaje de programaciónLenguaje de programación
Lenguaje de programación
 
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
 
Trabajo de introduc computa
Trabajo de introduc computaTrabajo de introduc computa
Trabajo de introduc computa
 
Trabajo de introduc computa
Trabajo de introduc computaTrabajo de introduc computa
Trabajo de introduc computa
 
Trabajo de introduc computa
Trabajo de introduc computaTrabajo de introduc computa
Trabajo de introduc computa
 
Trabajo de introduc computa
Trabajo de introduc computaTrabajo de introduc computa
Trabajo de introduc computa
 
LENGUAJES DE PROGRAMACION
LENGUAJES DE PROGRAMACIONLENGUAJES DE PROGRAMACION
LENGUAJES DE PROGRAMACION
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
Deber
DeberDeber
Deber
 
Lenguajes de programación
Lenguajes de programaciónLenguajes de programación
Lenguajes de programación
 
Programacion de lenguajes estructurados
Programacion de lenguajes estructurados Programacion de lenguajes estructurados
Programacion de lenguajes estructurados
 

Más de Eliezer Cordova

Más de Eliezer Cordova (20)

Tipos de comunicacion
Tipos de comunicacionTipos de comunicacion
Tipos de comunicacion
 
Presentacion 3
Presentacion 3Presentacion 3
Presentacion 3
 
Presentacion 2
Presentacion 2Presentacion 2
Presentacion 2
 
Presentacion 2
Presentacion 2Presentacion 2
Presentacion 2
 
Presentacion 1
Presentacion 1Presentacion 1
Presentacion 1
 
Introduccion publisher
Introduccion publisherIntroduccion publisher
Introduccion publisher
 
Presentaciones efectivas
Presentaciones efectivasPresentaciones efectivas
Presentaciones efectivas
 
Resolucion de problemas
Resolucion de problemasResolucion de problemas
Resolucion de problemas
 
Programación
ProgramaciónProgramación
Programación
 
Presentacion aula virtual videoconferencia
Presentacion aula virtual videoconferenciaPresentacion aula virtual videoconferencia
Presentacion aula virtual videoconferencia
 
Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0Metodología para la creación de algoritmos 0
Metodología para la creación de algoritmos 0
 
Lenguajes de programación.ppt
Lenguajes de programación.pptLenguajes de programación.ppt
Lenguajes de programación.ppt
 
Presentacion uno
Presentacion unoPresentacion uno
Presentacion uno
 
Intro
IntroIntro
Intro
 
3 estructuras no lineales estáticas y dinámicas
3  estructuras no lineales estáticas y dinámicas3  estructuras no lineales estáticas y dinámicas
3 estructuras no lineales estáticas y dinámicas
 
2 arboles
2 arboles2 arboles
2 arboles
 
1 árbol
1 árbol1 árbol
1 árbol
 
Acciones funciones
Acciones funcionesAcciones funciones
Acciones funciones
 
3 funciones
3 funciones3 funciones
3 funciones
 
2 estructura programa-c
2 estructura programa-c2 estructura programa-c
2 estructura programa-c
 

Último

RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfMaryRotonda1
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arteRaquel Martín Contreras
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfMARIAPAULAMAHECHAMOR
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 

Último (20)

RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Manual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdfManual - ABAS II completo 263 hojas .pdf
Manual - ABAS II completo 263 hojas .pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
Historia y técnica del collage en el arte
Historia y técnica del collage en el arteHistoria y técnica del collage en el arte
Historia y técnica del collage en el arte
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020Razonamiento Matemático 1. Deta del año 2020
Razonamiento Matemático 1. Deta del año 2020
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Herramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdfHerramientas de Inteligencia Artificial.pdf
Herramientas de Inteligencia Artificial.pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 

Lenguajes de programación: Estudio y aplicaciones

  • 1. Prof. Eliezer Córdova Algoritmos y Computación Avanzada Lenguajes de Programación
  • 2. Prof. Eliezer Córdova ¿Porqué estudiar lenguajes de programación?  La pregunta es ¿cuál es la ventaja de estudiar una variedad de lenguajes diferentes que es poco probable que uno llegue a utilizar?:
  • 3. Prof. Eliezer Córdova  Mejorar la habilidad para desarrollar algoritmos eficaces.  Mejorar el uso del lenguaje de programación disponible.  Hacer posible una mejor elección del lenguaje de programación.  Facilitar el diseño de un nuevo lenguaje. ¿Porqué estudiar lenguajes de programación?
  • 4. Prof. Eliezer Córdova El papel de los lenguajes de programación  Inicialmente los lenguajes se proyectaban para ejecutar programas con eficiencia. A mediados de los años sesenta la programación cambia:  Las máquinas son menos costosas y aumentan los costos de programación.  Surge la necesidad de trasladar programas de unos sistemas a otros.  El mantenimiento del producto consume mayores recursos de cómputo.  La tarea del lenguaje de alto nivel es la de facilitar el desarrollo de programas correctos para resolver problemas en alguna área de aplicación dada.
  • 5. Prof. Eliezer Córdova El papel de los lenguajes de programación  Los lenguajes de programación evolucionan o dejan de usarse. Influencias que obligan a la revisión de los lenguajes:  Capacidad de las computadoras.  Aplicaciones: Los requerimientos de nuevas áreas de aplicación afectan los diseños de nuevos lenguajes y las revisiones y ampliaciones de los más antiguos.  Métodos de programación.  Métodos de implementación.  Estudios teóricos.  Estandarización.
  • 6. Prof. Eliezer Córdova Atributos de un buen lenguaje  Claridad, sencillez y unidad (legibilidad): La sintaxis del lenguaje afecta la facilidad con la que un programa se puede escribir, por a prueba, y más tarde entender y modificar.  Ortogonalidad: Capacidad para combinar varias características de un lenguaje en todas las combinaciones posibles, de manera que todas ellas tengan significado.  Naturalidad para la aplicación: La sintaxis del programa debe permitir que la estructura del programa refleje la estructura lógica subyacente.  Apoyo para la abstracción: Una parte importante de la tarea del programador es proyectar las abstracciones adecuadas para la solución del problema y luego implementar esas abstracciones empleando las capacidades más primitivas que provee el lenguaje de programación mismo.
  • 7. Prof. Eliezer Córdova Atributos de un buen lenguaje  Facilidad para verificar programas: La sencillez de la estructura semántica y sintáctica ayuda a simplificar la verificación de programas.  Entorno de programación: Facilita el trabajo con un lenguaje técnicamente débil en comparación con un lenguaje más fuerte con poco apoyo externo.  Portabilidad de programas  Costo de uso:  1. Costo de ejecución del programa.  2. Costo de traducción de programas.  3. Costo de creación, prueba y uso de programas.  4. Costo de mantenimiento de los programas: costo total del ciclo de vida.
  • 8. Prof. Eliezer Córdova Dominios de aplicación  Aplicaciones de los años sesenta. Durante la década de 1960, casi toda la programación se podía dividir en cuatro modelos básicos de programación:  De procesamiento de negocios (COBOL).  Científicos (FORTRAN).  De sistemas (ALGOL, JOVIAL, etc.): Para construir sistemas operativos.  De Inteligencia Artificial (LISP).
  • 9. Prof. Eliezer Córdova Dominios de aplicación  Aplicaciones de los años noventa. La situación actual tiene más dominios de aplicación:  De procesamiento de negocios (COBOL).  Científicos (FORTRAN 90).  De sistemas: Con el advenimiento de los microprocesadores baratos que gobiernan automóviles, hornos de microondas, etc., ha aumentado la necesidad de contar con lenguajes para tiempo real.
  • 10. Prof. Eliezer Córdova Dominios de aplicación  Aplicaciones de los años noventa. La situación actual tiene más dominios de aplicación:  Edición: Los sistemas de procesamiento de texto tienen su propia sintaxis para mandatos de entrada y archivos de salida. El traductor TEX produce un programa en el lenguaje PostScript de descripción de páginas. PostScript se puede compilar por medir de un procesador adecuado. Éste suele ser la impresora láser que se utiliza para imprimir el documento.  De proceso: Dentro de UNIX, el lenguaje de comandos de usuario se conoce como shell y a los programas se les llama guiones de shell (parecidos a los archivos .bat). Estos guiones se pueden invocar siempre que ocurren ciertas condiciones habilitadoras.
  • 11. Prof. Eliezer Córdova Estandarización de los lenguajes  Los estándares son en general de dos clases:  1. Estándares patentados (DE PACTO): Son las definiciones elaboradas por la compañía que desarrollo el lenguaje y que es su propietaria.  2. Estándares de consenso (DE FACTO): Se trata de documentos elaborados por organizaciones con base en un acuerdo entre los participantes pertinentes. Método principal para asegurar la uniformidad entre varias implementaciones de un lenguaje. Ejemplo: ANSI, IEEE, ISO, etc.
  • 12. Prof. Eliezer Córdova Estandarización de los lenguajes  Proceso en el desarrollo de normas: Un grupo decide que un lenguaje requiere una definición estándar. El organismo normativo organiza un grupo de trabajo de voluntarios para desarrollar esa norma. Cuando el grupo de trabajo llega a un acuerdo sobre su norma, se somete a votación por parte de un bloque más grande de individuos interesados. Los desacuerdos se resuelven y se produce el estándar del lenguaje.
  • 13. Prof. Eliezer Córdova Uso de estándares en forma eficaz  Es necesario ocuparse de tres cuestiones:  Oportunidad (¿Cuándo estandarizar un lenguaje?): Lo deseable sería estandarizar un lenguaje lo suficientemente pronto para que exista suficiente experiencia en el uso del lenguaje, pero no demasiado tarde, para no alentar muchas implementaciones incompatibles.  Conformidad (¿Qué significa que un programa se adhiere a un estándar y que un compilador compila un estándar?): Si existe un estándar para un lenguaje, se suele hablar de conformidad con respecto a ese estándar. Un programa es conforme si sólo utiliza características definidas en el estándar. Un compilador conformable es uno que, cuando se le da un programa conforme, produce un programa ejecutable que genera la salida correcta.
  • 14. Prof. Eliezer Córdova  Es necesario ocuparse de tres cuestiones:  Obsolescencia (¿Cuándo envejece un estándar y cómo se modifica?): Los estándares se tienen que revisar cada 5 años y ya sea renovarse o descartarse. Casi todos los estándares requieren compatibilidad hacia atrás; El nuevo estándar debe incluir versiones más antiguas del lenguaje. Esto tiene el problema de que el lenguaje se puede hacer difícil de manejar a causa de las numerosas construcciones obsoletas. Una característica es obsolescente si es candidata a ser descartada en la próxima versión del estándar. Una característica desaprobada se puede volver obsolescente en el próximo estándar, por lo cual puede ser descartada después de dos revisiones. Uso de estándares en forma eficaz
  • 15. Prof. Eliezer Córdova Efectos de los entornos sobre los lenguajes  Cuatro clases generales de entornos objetivo cubre casi todas las aplicaciones de programación:  de procesamiento por lotes,  interactivo,  de sistema empotrado, y  de programación (entorno interactivo). Cada uno plantea distintos requerimientos sobre los lenguajes adaptados a esos entornos.
  • 16. Prof. Eliezer Córdova Entornos de procesamiento por lotes  El más simple entorno operativo se compone sólo de archivos externos de datos. Un programa toma un cierto conjunto de archivos de datos como entrada, procesa los datos y produce un conjunto de archivos de datos de salida. El nombre de procesamiento por lotes viene porque los datos de entrada se reúnen en “lotes” de archivos y son procesados en lotes por programas.  Los archivos constituyen la base para casi toda la estructura de E/S.  Un error que termine la ejecución del programa es aceptable aunque costoso. No es posible la ayuda externa por parte del usuario para manejar o corregir errores de inmediato.  Carencia de restricciones de regulación de tiempo. No hay recursos para monitorear o afectar directamente la velocidad de ejecución del programa.
  • 17. Prof. Eliezer Córdova Entornos interactivos  El programa interactúa durante su ejecución directa con un usuario en una consola de visualización, enviando alternativamente salidas hacia ésta y recibiendo entradas desde el teclado o ratón (procesadores de texto, hojas de cálculo, juegos, etc.).  Las características de E/S interactivas son diferentes de las operaciones ordinarias con archivos.  El programa debe ser capaz de gestionar el manejo de errores. La terminación del programa como respuesta aun error no es ordinariamente aceptable (a diferencia del procesamiento por lotes).
  • 18. Prof. Eliezer Córdova Entornos interactivos  El programa interactúa durante su ejecución directa con un usuario en una consola de visualización, enviando alternativamente salidas hacia ésta y recibiendo entradas desde el teclado o ratón (procesadores de texto, hojas de cálculo, juegos, etc.).  Los programas interactivos deben utilizar con frecuencia algún concepto de restricciones de tiempo.  El concepto de programa principal suele estar ausente. En su lugar, el programa se compone de un conjunto de subprogramas y el usuario introduce el “programa principal como una serie de comandos en el terminal.
  • 19. Prof. Eliezer Córdova Entornos de sistemas incrustados (empotrados)  Un sistema de computadora que se usa para controlar parte de un sistema más grande como una planta industrial, una aeronave, etc., se conoce con el nombre de sistema de computadora incrustado. El fallo de una aplicación empotrada puede poner en peligro la vida. La seguridad de funcionamiento y corrección son atributos principales.  Suelen operar sin un sistema operativo subyacente y sin archivos de entorno y dispositivos de E/S usuales. El programa debe interactuar directamente con la máquina.  El manejo de errores tiene gran importancia. Cada programa debe estar preparado para manejar todos los errores en forma interna, adoptando acciones apropiadas para recuperarse y continuar. La interrupción del programa no es aceptable y no hay un usuario en el entorno que pueda proporcionar la corrección interactiva del error.
  • 20. Prof. Eliezer Córdova Entornos de sistemas incrustados (empotrados)  Un sistema de computadora que se usa para controlar parte de un sistema más grande como una planta industrial, una aeronave, etc., se conoce con el nombre de sistema de computadora incrustado. El fallo de una aplicación empotrada puede poner en peligro la vida. La seguridad de funcionamiento y corrección son atributos principales.  Operan en tiempo real, donde la respuesta las entradas debe producirse en intervalos de tiempo restringidos.  Suele ser un sistema distribuido, compuesto por más de una computadora.  Una vez iniciadas las tareas, se ejecutan por lo común de forma simultánea e indefinida.
  • 21. Prof. Eliezer Córdova Entornos de programación  Es el entorno en el cual los programas se crean y se ponen a prueba. Consiste en un conjunto de herramientas (editor, depurador, verificador, generadores de datos de prueba, etc.) de apoyo y un lenguaje para invocarlas.  Al compilar por separado cada subprograma el compilador necesita información de:  La especificación del número, orden y tipo de parámetros.  La declaración de tipo de datos.  La definición de un tipo de datos (para la declaración local de variables).
  • 22. Prof. Eliezer Córdova Entornos de programación  Un problema común, es encontrar, durante el ensamblado del programa final completo, que varios subprogramas y otras unidades de programa tienen nombres (de variables) iguales. Métodos para evitar este problema: 1. Todo nombre compartido debe ser único. Se deben usar convenciones para la asignación de nombres desde un principio. 2. Definir, en el lenguaje, reglas de ámbito, para ocultar nombre. 3. Los nombres se pueden conocer agregando explícitamente sus definiciones desde una biblioteca externa (herencia en POO).
  • 23. Prof. Eliezer Córdova Entornos de programación  Características que ayudan a poner a prueba y depurar programas. 1. Características para rastreo de ejecución. 2. Puntos de interrupción. Cuando se alcanza un punto de interrupción durante la ejecución del programa, la misma se interrumpe y el control se traslada al programador en un terminal. 3. Asertos: expresan relaciones que deben cumplirse entre los valores de las variables en ese punto del programa.
  • 24. Prof. Eliezer Córdova Marcos de ambiente  Este marco suministra servicios como un depósito de datos, interfaz gráfica de usuario, seguridad y servicios de comunicación.
  • 25. Prof. Eliezer Córdova Paradigmas de Programación  La clasificación de los lenguajes atendiendo a sus características intrínsecas conduce a los llamados paradigmas de programación. Un paradigma de programación es un modelo de programación que engloba a ciertos lenguajes que comparten:  Elementos estructurales: ¿con qué se confeccionan los programas?  Elementos metodológicos: ¿cómo se confecciona un programa?
  • 26. Prof. Eliezer Córdova Programación Imperativa o Procedural: C  Desarrollado por Ritchie y Thompson en el 72.  Multiuso (inicialmente para sistemas)  Sintaxis compacta
  • 27. Prof. Eliezer Córdova Programación Imperativa o Procedural: C  Historia  60 Thompson desarrolla en Bell Multics, se crea un lenguaje llamado B.  70, el proyecto UNIX avanza y el lenguaje B se queda pequeño, se comienza a desarrollar C  82, C es distribuido con Unix y muy usado en las universidades. ANSI comienza a desarrollar un estándar
  • 28. Prof. Eliezer Córdova Perspectiva del lenguaje C  La programación en C se compone de:  El lenguaje C, con un limitado nº de estructuras de control. No hay primitivas si no se usan las librerías.  El preprocesador de C (#), estos enunciados no forman parte del lenguaje C y son preprocesados antes de la compilación.
  • 29. Prof. Eliezer Córdova Perspectiva del lenguaje C  La programación en C se compone de:  preprocesados antes de la compilación.  Los supuestos de interfaz C (.h), lor archivos “header” informan al usuario de las funciones incluidad en una biblioteca.  Las bibliotecas de C. Archivos obj o lib conteniendo la implementación de las funciones.
  • 30. Prof. Eliezer Córdova Objetos de datos  Tipos de datos primitivos  Los nombres de variables no pueden comenzar con dígito. Sensible a may-min.  Los datos son enteros (char, short, long), enumerados (enum) o float. Los punteros se declaran con el tipo seguido de ‘*’.  No hay booleanos.
  • 31. Prof. Eliezer Córdova Objetos de datos  Tipos de datos estructurados  Arrays, comienzan en 0 y se guardan por filas.  Tipos definidos por el usuario. Struct { }.
  • 32. Prof. Eliezer Córdova Representación de almacenamiento  Los tipos de C emplean básicamente la representación hardware de sus datos.  Una variable de tipo array es también el puntero al primer elemento del array que comienza con el índice 0.  Es posible inicializar cualquier variable declarada estáticamente.
  • 33. Prof. Eliezer Córdova Evaluación del lenguaje  C es muy potente y popular:  Flexible  Eficiente  Disponible (se distribuye con Unix)  Portatil  Pero C también permite una programación descuidada y propensa a errores.