Introducción a la Programación de Sistemas M.C. Juan Carlos Olivares Rojas.

Slides:



Advertisements
Presentaciones similares
Tipos de software y su desarrollo
Advertisements

¿Qué es Sofware? Son el conjunto de instrucciones que dirigen las actividades del Hardware Consiste en programas, módulos de soporte y archivos de datos,
Prof. Ing.Maria Rosa Damaso Rios
Cb00843 Traductores Rogelio Dávila Pérez Profesor Planta
Conceptos preliminares
Secuencia finita, ordenada y lógica de instrucciones (ó pasos), los cuales permiten realizar una ó varias tareas.
¿Cómo hacer para que una máquina comprenda el LN?
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Lenguajes de programación
INTRODUCCION A LOS ALGORITMOS (Conceptos previos)
Unidad 1. Introducción al proceso de compilación.
Programación de Sistemas
INFORMACIÓN AUTOMÁTICA Ciencia que estudia el tratamiento
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Programación 1 Introducción
Traducción dirigida por la Sintaxis
Introducción a la programación
Pablo Cesar Tapia Catacora
Lenguajes de programación
Introducción al Software
Tema 6. Conceptos básicos de programación
 El termino OO, significa que el software es organizado como una colección de objetos. Un objeto es un paquete de software que contiene datos y procedimientos.
Conceptos Fundamentales
Introducción. Agenda Clase 1 ● Preámbulo histórico. ● Razones de la Diversidad de Lenguajes. ● Razones del Éxito de un Lenguaje. ● Clasificación ● Motivación.
ALGORITMOS, LENGUAJES Y TECNICAS DE PROGRAMACION
TRADUCTOR DE UN PROGRAMA
M.C. Meliza Contreras González
Lenguaje de Marcado.
FUNDAMENTOS DE PROGRAMACION
ACIDE A C onfigurable I ntegrated D evelopment E nvironment (Un entorno integrado de desarrollo configurable)
Un programa no es nada mas que una serie de instrucciones dadas al ordenador en un lenguaje entendido por el, para decirle exactamente lo que queremos.
FUNDAMENTOS DE PROGRAMACIÓN ISC. GABRIEL ZEPEDA MARTÍNEZ EST. ABRAHAM F. MACHUCA VAZQUEZ.
TIPOS DE SOFTWARE Se denomina software a un programa, equipamiento lógico o soporte lógico necesario para hacer posible la realización de una tarea con.
1.4 Traductor y Su estructura
Procesadores de Lenguajes
Lenguaje de Programación II
U1. Introducción a la programación
PROGRAMACIÓNPROGRAMACIÓN FCC-BUAP. 1. INTRODUCCIÓN A LA PROGRAMACIÓN.
M.C. Juan Carlos Olivares Rojas
Programación de Sistemas
Tema 1. Introducción y Conceptos Básicos
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
Prof. Gabriel Matonte Programación I Prof. Gabriel Matonte
INTRODUCCIÓN A LA INTELIGENCIA ARTIFICIAL Y LOS SISTEMAS EXPERTOS
Teoría de Autómatas y Lenguajes Formales Informática Técnica de Gestión ESCUELA SUPERIOR DE INFORMATICA Universidad de Castilla-La Mancha Tema 1. Introducción.
COMPUTO III Ing. Jimmy Ojeda Arnica.
Unidad 1. Introducción a los Compiladores.
PROGRAMAS INFORMATICOS
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
Metodología de la programación
ESCUELA NORMAL “PROF. DARÍO RODRÍGUEZ CRUZ” Licenciatura en educación preescolar Alumnas: *Mayra * Monserrat * Idalia *Cinthia Curso: las TIC en la educación.
Prof. Flor Narciso Departamento de Computación
SVG M.C. Juan Carlos Olivares Rojas. Agenda Scalable Vector Graphic Es un formato basado en XML cuya finalidad es mostrar gráficos en formato vectorial.
LENGUAJES DE PROGRAMACIÓN 8.1 BREVE HISTORIA. Traducción-Ejecución Bajo nivel o 1º Nivel Se dice que el código binario es de "bajo nivel" o "primer nivel"
INTRODUCCIÓN LI & MSC OSCAR RAMÍREZ CORTÉS U NIVERSIDAD DE LA H UASTECA V ERACRUZANA L ENGUAJES DE P ROGRAMACIÓN.
Lenguaje programación
III. DESARROLLO DE SISTEMAS.. Podemos definir el desarrollo de sistemas informáticos como el proceso mediante el cual el conocimiento humano y el uso.
Software.
Unidad TemáticaI. Conceptos Básicos Horas Prácticas10 Horas Teóricas8 Horas Totales18 Objetivo El alumno determinará las entradas, procesos y salidas.
Es un tipo especial de software que nos permite *Crear *Desarrollar *Programar otras aplicaciones. Haciendo uso de sus conocimientos lógicos y lenguajes.
Curso: Programación I Grado: 4to. Bachillerato Prof. Gerardo Barrientos.
Programación de Sistemas
TEMA 4: MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN
Administración de Sitios Web Introducción al Lenguaje PHP
 Panorama General Fundamentos de Programación M.I. Jaime Alfonso Reyes Cortés.
Especificación del Problema Partimos del hecho de un programador no puede resolver un problema que no entiende. Por esta razón, la primera etapa en todo.
HISTORIA DE LOS LENGUJAES DE PROGRAMACIÓN HARDWARE: Computadoras primivas en programación MÉTODOS: Subprogramas Estructuras de datos Posibilidad.
Fundamentos de Programación Unidad I Conceptos Básicos.
Conalep 150 Tehuacán inmi 309 soma
Autómatas y Compiladores. Primera Semana. Ricardo Vargas Del Valle A35469.
Transcripción de la presentación:

Introducción a la Programación de Sistemas M.C. Juan Carlos Olivares Rojas

Agenda ¿Qué es y que estudia la programación de sistemas? Herramientas desarrolladas con la teoría de programación de sistemas Lenguajes Traductor y su estructura. Generadores de código para compiladores (compilador de compilador).

¿Qué es y que estudia la programación de sistemas? Programa: conjunto de instrucciones que ejecuta una computadora para realizar una actividad. Sistema: conjunto de elementos autónomos que trabajan en armonía para alcanzar un objetivo en común.

Tipos de Sistema Sistemas físicos: equipo, maquinaria, objetos reales, Hardware Sistemas abstractos: ideas, hipótesis, conceptos, planes, Software. Sistemas abiertos y cerrados dependiendo del ambiente en que se ejecutan.

Sistema Están bien delimitados, por lo tanto se conocen sus fronteras. Un sistema puede interactuar con su medio ambiente a través de una interfaz de entradas y salidas que recibe el nombre de parámetros del sistema. Un sistema puede ser componente de otro sistema

Diferencia entre un Ingeniero en Sistemas y un Técnico A parte del grado académico, el tipo de programas que realizan. Generalmente un técnico realiza software de aplicaciones (ABCD) o aplicaciones de gestión (nóminas, control de inventarios, etc.) Un ingeniero es más creativo, más ciencia e investigación; mientras que un licenciado aplica los conocimientos.

Clasificación del Software Software de sistemas: software que ayuda (sirve de base) a otro software. Procesan estructuras de datos complejas Tienen una fuerte dependencia con el hardware Utilizan una fuerte gestión de procesos (concurrencia, planificación, etc.)

Clasificación del Software Software de aplicación (gestión) Software de tiempo real Software empotrado Software de ingeniería y científico Software basado en Web Software de inteligencia artificial

Áreas Afines a la programación de sistemas Teoría de la computación (lenguajes y autómatas). Lenguajes de programación Arquitecturas de computadoras Algorítmica Ingeniería del software

Herramientas desarrolladas con la teoría de programación de sistemas El caso más sencillo de programación de sistemas es la construcción de compiladores para ejecutar lenguajes de programación. Pero no sólo se aplica en lenguajes de programación, sino también se aplica en cualquier programa que se tenga que hacer un análisis o extracción de información

Herramientas Editores de texto inteligentes (IDEs con autocompletar, revisores ortográficos, etc) Impresoras estéticas (impresión de gran calidad sin un editor visual, Latex, etc.) Intérpretes (Shellsde sistemas operativos o de alguna aplicación como un SMBD) Búsqueda de información que no es tan común en base a patrones, etc.

Lenguajes Lenguajes naturales. Lenguajes artificiales. Proceso de la comunicación.

Lenguajes Conjunto de palabras y reglas que permiten comunicar información entre dos entidades. Lenguaje son las cadenas que pueden generarse a través de una gramática El lenguaje que entienden las máquinas (lenguaje formal) es muy diferente del lenguaje que entendemos los humanos

Repaso de Lenguajes Símbolo: representación abstracta de alguna entidad Alfabeto: conjunto finito de símbolos Cadena: yuxtaposición de símbolos de un alfabeto que representan a un objeto Lenguaje: conjunto de cadenas válidas que se pueden formar a través de un alfabeto

Lenguaje Natural El lenguaje natural es inherentemente ambiguo, por lo que se necesita crear un lenguaje que permita eliminar esas ambigüedades. Es mejor crear otro lenguaje, denominado de alto nivel que es el encargado de mediar entre la abstracción humana y la abstracción de lenguaje de máquina

Lenguajes artificiales Los lenguajes artificiales son aquellos que los humanos hemos creado para comunicarnos Las computadoras sólo saben 0 y 1 Un lenguaje artificial permite implementar un algoritmo en una computadora para resolver un problema.

Lenguaje de Bajo Nivel Una abstracción más entendible del lenguaje máquina es el uso de lenguajes ensambladores en donde cada instrucción o mnemónico es traducido a una instrucción máquina. ADD AX, 5 LOAD A, 5

Lenguaje Máquina El lenguaje máquina es dependiente de cada tipo de arquitectura de computadoras por lo que el código no es fácilmente portable a otras arquitecturas. Los lenguajes de alto nivel son más portables en lo que respecta al código fuente pudiendo llevarse a otras arquitecturas de computadoras sin mayor problema.

Clasificación de Chomsky Lenguajes sin restricciones (gramática 0) Lenguajes dependientes del contexto (tipo 1) Lenguajes independientes del contexto (tipo 2) Lenguajes regulares (tipo 3 no presentan ambigüedades, lo ideal para representarlas en una computadora)

Traductor y su Estructura Ensambladores. Compiladores Interpretes.

Traductor Un traductor es un mediador entre dos entidades: emisoras y receptoras Los mediadores enmascaran la complejidad y heterogeneidad de los lenguajes Un traductor convierte un lenguaje de entrada (código fuente) a uno de salida (código objeto)

Traductores La traducción puede ser sencilla (literal) o compleja (revisar el contexto) dependiendo del tipo de lenguaje de entrada y salida. Traducción español a inglés si se hace de manera literal es una mala traducción, se necesita de al menos otra revisión (pasada) para hacer una buena traducción.

Traductores

Ensamblador Ensamblador es el traductor que se encarga de convertir instrucciones de bajo nivel a instrucciones de una máquina en general //Encabezados 00 MOV AX, 58d 4F CMP 0 3A00 05 JMP etiqueta 9918 … Etiqueta: 18 MUL AX, FF 4401FF

Compiladores Es el traductor que se encarga de convertir un lenguaje de alto nivel a código máquina. La característica de este traductor radica en el hecho de que necesita revisar todo el código fuente para poder realizar la traducción. Ejemplo: la traducción de un libro, discurso, o artículo técnico o de investigación

Compiladores Ejemplos de compiladores: C, C++, Pascal, etc. Entre más pasadas se de a un código fuente mayor es la optimización que se puede hacer. El problema radica en el tiempo y en los recursos para hacerlo Antes de compilar un programa fuente se sigue una etapa de preprocesamiento.

Preprocesadores Macros (expansión de funciones) Inclusión de archivos (bibliotecas) Procesadores racionales Extensiones al leguaje (inclusión de ensamblador en C)

Etapas de un compilador

Intérpretes Se ejecutan línea por línea, instrucción por instrucción. Lenguajes interpretados: PHP, PERL, BASIC En algunas ocasiones se necesita de una traducción rápida de algunas instrucciones, como en el Shell, instrucciones SQL, etc.

Java compilado o interpretado Java al igual que otros lenguajes como C# son lenguajes híbridos. Por una parte se compila un programa fuente para generar código objeto para una máquina virtual (bytecode o MSIL) para posteriormente ejecutarse de manera interpretada en las diferentes máquinas virtuales de cada plataforma. A este compilador se les llama jitterde JIT (Justin Time)

Generadores de código para compiladores (compilador de compilador). Los dos primeros lenguajes de alto nivel desarrollado fueron FORTRAN y COBOL. Desarrollar FORTRAN tardóalrededor de 14 años. Desarrollar nuestro compilador tardarámenos de 6 meses Son herramientas que auxilian algún aspecto del proceso de traducción

Compilador de Compiladores Cargadores y editores de enlace Generadores de analizadores léxico Generadores de Analizadores sintácticos Traductores dirigidos por sintaxis Generadores automáticos de código Dispositivos para el análisis de flujo de datos

XML eXtensibleMarkupLanguage(Lenguaje de Marcado eXtensible) Es un metalenguaje –Lenguaje que describe a otros lenguajes XML sólo define el lenguaje, lo que se realice con él depende de la aplicación. Es de un lenguaje de marcado por que utiliza etiquetas.

XML Las etiquetas se representan con paréntesis angulares <> y dentro un identificador. XML deriva de un lenguaje denominado SGML. El lenguaje de marcado mejor conocido es el HTML (HyperText MarkupLanguage), el cual es la base de los documentos Web.

XML El problema con HTML es que es un lenguaje que presenta muchas irregularidades en su construcción, como etiquetas agregadas al lenguaje, etiquetas que no cierran Los documentos de XML tienen dos características principales: están bien formados y son válidos

XML Se dice que un documento es válido si para cada etiqueta del lenguaje no tiene errores léxicos. Se dice que un documento es válido cuando se representan los elementos del lenguaje con un orden y significado adecuados, a esto se le denomina no tener errores sintácticos y semánticos.

XML Determinar si un documento está bien formado consiste en verificar que cumpla la sintaxis básica de los lenguajes de marcados. Para HTML la etiqueta es válido en HTML pero no válido en XHTML. XHTML es la versión de HTML con la sintaxis estricta de XML.

XML La forma válida en XHTML es: o bien: no es válido Es correcta en XML pero no en XHTML.

XML Un documento bien formado cumple con las siguientes características: Las etiquetas son sensibles a mayúsculas y minúsculas Etiquetas que abren deben de cerrar todas La última etiqueta que abrió debe de ser la primera en cerrar. Los atributos de las etiquetas deben estar encerrados entre comillas.

XML <!—Estructura de un documento en XML  Valor valor

XML Bee Movie No descrito 2007

XML Algunas herramientas útiles (editores en XML) son: XRAY XMETAL XML Spy XML Notepad Visual.NET NetBeans Otros entornos de programación

XML Algunos lenguajes que utilizan XML son: WML Lenguaje para páginas Web en dispositivos móviles XHTML-MP La nueva versión para páginas Web en dispositivos móviles siguiendo la sintaxis de XHTML. MathML Lenguaje para crear ecuaciones

XML VoiceXML es un lenguaje para representar voz. SVG para imágenes vectoriales XML es un lenguaje en texto plano por lo que la seguridad es mínima. La versión más actual de XML es la uno. Está por aparecer la segunda versión

Referencias Aho, Sethi, Ullman. Compiladores Principios, técnicas y herramientas Ed. Addison Wesley. Beck,. Software de Sistemas, Introducción a la programación de Sistemas Ed. Addison-Wesley Iberoamericana. Kenneth C. Louden. Construcción de compiladores Principios y práctica. Ed. Thomson.

¿Preguntas?