SlideShare a Scribd company logo
1 of 40
INTRODUCCIÓN A LA PROGRAMACIÓN DE
                         SISTEMAS
¿QUE ES?
Un sistema es un conjunto de componentes que
 interaccionan entre si para lograr un objetivo común. Las
 personas se comunican con el lenguaje, que es un sistema
 muy desarrollado formado por palabras y símbolos que
 tienen significado para el que habla y para quienes lo
 escuchan, lo mismo es para las computadoras las cuales
 tienen sistemas y se comunican por medio de
 computadoras.

La   programación es el proceso de convertir las
 especificaciones a grandes rasgos de los sistemas en
 instrucciones de maquina que produzcan los resultados
 deseados.
¿QUE ESTUDIA?
 Áreas específicas: Sistemas digitales para arquitecturas paralelas y
  control de procesos y sistemas reconfigurables.

 Inteligencia artificial aplicada a trabajo cooperativo

 Sistemas para arquitecturas paralelas y distribuidas

 Diseño de sistemas operativos para arquitecturas paralelas y sistemas
  distribuidos, herramientas para programación paralela y distribuida.

 Sistemas de tiempo real

 Diseño y programación de sistemas grandes
Herramientas Desarrolladas Con
Teoría De Programación De Sistemas
Las herramientas de programación, son aquellas que
 permiten realizar aplicaciones, programas, rutinas,
 utilitarios y sistemas para que la parte física de la
 computadora, funcione y pueda producir resultados.

Las herramientas de programación más comunes del
 mercado, cuentan hoy dia con programas de
 depuración o debugger, que son utilitarios que nos
 permiten detectar los posibles errores en tiempo de
 ejecución o corrida de rutinas y programas.
Muchas herramientas de software que manipulan programas
  fuente realizan primero algún tipo de análisis. Algunos ejemplos
  de tales herramientas son:

1. Editores de estructuras: Un editor de estructuras toma como
  entrada una secuencia de órdenes para construir un programa
  fuente.

2. Impresoras estéticas: Una impresora estética analiza un
  programa y lo imprime de forma que la estructura del programa
  resulte claramente visible.

3. Verificadores estáticos: Un verificador estático lee un
  programa, lo analiza e intenta descubrir errores potenciales sin
  ejecutar el programa.
4. Intérpretes: En lugar de producir un programa objeto
 como resultado de una traducción, un intérprete realiza
 las operaciones que implica el programa fuente.

5. Compiladores: Tradicionalmente, se concibe un
 compilador como un programa que traduce un
 programa fuente, como FORTRAN, al lenguaje
 ensamblador o de máquina de alguna computadora.
Lenguajes
Se llama lenguaje a cualquier tipo de código
 semiótico estructurado, para el que existe un contexto
 de uso y ciertos principios combinatorios formales.
 Existen muchos contextos tanto naturales como
 artificiales donde aparecen lenguajes.
Lenguajes Naturales
Este tipo de lenguaje es el que nos permite el designar
 las cosas actuales y razonar a cerca de ellas, fue
 desarrollado y organizado a partir de la experiencia
 humana y puede ser utilizado para analizar
 situaciones altamente complejas y razonar muy
 sutilmente.

Un LN puede ser modelado fácilmente por un
 lenguaje formal, similar a los utilizados en las
 matemáticas y la lógica.
Otra propiedad de los lenguajes naturales es la
 polisemantica, es decir la posibilidad de que una
 palabra en una oración tenga diversos significados.

En un primer resumen, los lenguajes naturales se
 caracterizan por las siguientes propiedades:

  Desarrollados por enriquecimiento progresivo antes de
   cualquier intento de formación de una teoría.

  La  importancia de su carácter expresivo debido
   grandemente a la riqueza del componente semántico
Lenguajes Artificiales (Formales)
En la actualidad nos encontramos con distintos
 lenguajes para para programar y también los campos
 de aplicación son variados y completamente distintos.

De acuerdo a la complejidad del problema a resolver
 sera necesario hacer una selección adecuada del
 lenguaje de programación (incluso se puede generar
 el lenguaje de programación propio) que permita
 resolver de manera eficiente el problema
Hasta hace pocos años, el software de desarrollo se
 basaba fundamentalmente en Lenguajes Artificiales
 (Basic, C, Cobol, Pascal…) para “explicar” a la
 computadora las acciones a realizar. Por el contrario,
 los “Orientados a Objetos” permiten que el
 programador ignore el lenguaje comprensible para la
 máquina poniendo a su disposición una serie de
 objetos preprogramados. De este modo la tarea se
 simplifica enormemente y se reduce a disponer, dentro
 de la ventana de programa y en la secuencia adecuada,
 los programas y funciones de los que nos provee.
1.3.3 Proceso De La Comunicación
Proceso De La Comunicación
La comunicación es un fenómeno inherente a la
 relación grupal de los seres vivos por medio del cual
 éstos obtienen información acerca de su entorno y de
 otros entornos y son capaces de compartirla haciendo
 partícipes a otros de esa información. La
 comunicación es de suma importancia para la
 supervivencia de especies gregarias, pues la
 información que ésta extrae de su medio ambiente y
 su facultad de transmitir mensajes serán claves para
 sacar ventaja del modo de vida gregario.
Proceso de transmisión de información de un emisor
 (A) a un receptor (B) a través de un medio ©. En la
 transmisión y la recepción de esa información se
 utiliza un código específico que debe ser “codificado”,
 por el emisor y “decodificado” por el receptor”.
Elementos del Proceso de la
        comunicación
Fuente: Es el lugar de donde emana la información,
 los datos, el contenido que se enviará, en conclusión:
 de donde nace el mensaje primario.

Emisor o codificador: Es el punto (persona,
 organización…) que elige y selecciona los signos
 adecuados para transmitir su mensaje; es decir, los
 codifica para poder llevarlo de manera entendible al
 receptor. En el emisor se inicia el proceso
 comunicativo.
Receptor o decodificador: Es el punto (persona,
 organización…) al que se destina el mensaje, realiza
 un proceso inverso al del emisor ya que en él está el
 descifrar e interpretar lo que el emisor quiere dar a
 conocer.

Código: Es el conjunto de reglas propias de cada
 sistema de signos y símbolos que el emisor utilizará
 para trasmitir su mensaje, para combinarlos de
 manera arbitraria porque tiene que estar de una
 manera adecuada para que el receptor pueda captarlo.
Mensaje:     Es el contenido de la información
 (contenido enviado): el conjunto de ideas,
 sentimientos, acontecimientos expresados por el
 emisor y que desea trasmitir al receptor para que sean
 captados de la manera que desea el emisor. El mensaje
 es la información.

Canal: Es el medio a través del cual se transmite la
 información-comunicación,         estableciendo   una
 conexión entre el emisor y el receptor.

Referente: Realidad que es percibida gracias al
 mensaje. Comprende todo aquello que es descrito por
 el mensaje.
Situación: Es el tiempo y el lugar en que se realiza el
 acto comunicativo.

Interferencia o barrera: Cualquier perturbación que
 sufre la señal en el proceso comunicativo, se puede dar
 en cualquiera de sus elementos.

Retroalimentación o realimentación (mensaje de
 retorno): Es la condición necesaria para la
 interactividad del proceso comunicativo, siempre y
 cuando se reciba una respuesta (actitud, conducta…)
 sea deseada o no.
1.4 Traductor y Su Estructura
1.4 Traductor y Su Estructura
Traductor:   En un sentido orientado hacia la
 computación, un traductor, de manera general, es un
 software que toma como entrada un programa escrito
 en un código llamado fuente y genera como salida
 otro programa en un código llamado objeto.

Su estructura podria ser expresada de la siguiente
 manera:

       código fuente  traductor  código objeto
Algunos     ejemplos de traductores son los
 compiladores (toma como entrada código en alto
 nivel y genera como salida código en bajo nivel), los
 interpretes (toma como entrada código en alto nivel y
 genera como salida un código intermedio), los
 preprocesadores (toma como entrada código en alto
 nivel y genera como salida código en alto nivel) y el
 ensamblador (toma como entrada código en
 ensamblador y genera como salida código en bajo
 nivel).
Intérpretes o Traductores
Definición. Un intérprete es un programa que ejecuta
 un programa escrito en un determinado lenguaje
 examinando y ejecutando cada sentencia del programa
 una a una, por separado y sin realizar un proceso de
 compilación previo.

El intérprete NO traduce la sentencia a código máquina
 antes de ejecutarla. En su lugar, identifica el tipo de
 sentencia y la ejecuta directamente. El código para
 ejecutar la sentencia está contenido dentro del
 intérprete que contendrá rutinas para: evaluar una
 expresión, almacenar información en memoria,
 recuperar datos de memoria, etc.
El intérprete contendrá el número de rutinas
 necesarias para poder ejecutar cualquier sentencia del
 lenguaje que está interpretando.

Ejemplo: C := A + B
1. El intérprete lee la sentencia y determina que es
 una asignación.
2. Llamará a una de sus rutinas para evaluar la
 expresión a la derecha de la asignación.
3. Esta rutina toma los símbolos A y B, determina
 donde están almacenados, obtiene sus valores
 actuales y los suma.
Compilación e Interpretación
Además de elegir entre compilar o interpretar un
 programa, otra opción es combinar ambos procesos
 de traducción. En este caso, se realiza una
 compilación “parcial” a un código intermedio que es
 seguida de un proceso de interpretación. Uno de los
 lenguajes más utilizados hoy en día, sobre todo para
 el desarrollo de aplicaciones para la Web, que sigue
 esta propuesta es el lenguaje Java.
En el lenguaje Java el código primero se compila con
 el compilador de Java javac. Este compilador genera
 un código virtual llamado Byte Code. Este código es
 luego interpretado por una Máquina Virtual de Java (o
 JVM de Java Virtual Machine) que debe estar
 instalada y ejecutándose en la máquina en la que se
 desee ejecutar el código compilado con javac.
Algunas de las ventajas de compilar frente a
 interpretar son:
Se compila una vez; se ejecuta muchas veces
La ejecución del programa objeto es mucho más
 rápida que si se interpreta el programa fuente.
El compilador tiene una visión global del programa,
 por lo que la información de mensajes de error es más
 detallada.
Por otro lado, algunas de las ventajas de interpretar
 frente a compilar son:
Un intérprete necesita menos memoria que un
 compilador.
Permiten una mayor interactividad con el código en
 tiempo de desarrollo.
1.4.1 Lenguajes
Ensambladores
El término ensamblador (del inglés assembler) se
 refiere a un tipo de programa informático que se
 encarga de traducir un programa o archivo fuente
 escrito en un lenguaje ensamblador, a programa o
 archivo objeto que contiene código máquina,
 ejecutable directamente por la máquina para la que se
 ha generado. El propósito para el que se crearon este
 tipo de aplicaciones es la de facilitar la escritura de
 programas, ya que escribir directamente en código
 binario, que es el único código entendible por la
 computadora, es en la práctica imposible
Funcionamiento
El programa lee el programa escrito en lenguaje
 ensamblador y sustituye cada uno de los códigos
 técnicos que aparecen por su código de operación
 correspondiente en sistema binario.
Tipos de ensambladores
Ensambladores básicos. Son de muy bajo nivel, y su
 tarea consiste básicamente en ofrecer nombres
 simbólicos a las distintas instrucciones, parámetros y
 cosas tales como los modos de direccionamiento.
 Además, reconoce una serie de directivas (o meta
 instrucciones) que indican ciertos parámetros de
 funcionamiento del ensamblador.
Ensambladores           modulares,        o      macro
 ensambladores. Descendientes de los ensambladores
 básicos, fueron muy populares en las décadas de los 50
 y los 60, antes de la generalización de los lenguajes de
 alto nivel. Hacen todo lo que puede hacer un
 ensamblador, y además proporcionan una serie de
 directivas para definir e invocar macroinstrucciones (o
 simplemente, macros).
Ensambladores modulares 32-bits o de alto nivel.
 Son ensambladores que aparecieron como respuesta a
 una nueva arquitectura de procesadores de 32 bits,
 muchos de ellos teniendo compatibilidad hacia atrás
 pudiendo trabajar con programas con estructuras de
 16 bits. Además de realizar la misma tarea que los
 anteriores, permitiendo también el uso de macros,
 permiten utilizar estructuras de programación más
 complejas propias de los lenguajes de alto nivel.
Lenguajes Compiladores
Un compilador acepta programas escritos en un
 lenguaje de alto nivel y los traduce a otro lenguaje,
 generando un programa equivalente independiente,
 que puede ejecutarse tantas veces como se quiera. Este
 proceso de traducción se conoce como compilación.

Los programas interpretados suelen ser más lentos
 que los compilados, pero los intérpretes son más
 flexibles como entornos de programación y
 depuración.
Partes de un compilador
Normalmente los compiladores están divididos en dos
 partes:

Front End: es la parte que analiza el código fuente,
 comprueba su validez, genera el árbol de derivación y
 rellena los valores de la tabla de símbolos. Esta parte
 suele ser independiente de la plataforma o sistema para
 el cual se vaya a compilar.

Back End: es la parte que genera el código máquina,
 específico de una plataforma, a partir de los resultados
 de la fase de análisis, realizada por el Front End.
Esta división permite que el mismo Back End se
 utilice para generar el código máquina de varios
 lenguajes de programación distintos y que el mismo
 Front End que sirve para analizar el código fuente de
 un lenguaje de programación concreto sirva para la
 generación de código máquina en varias plataformas
 distintas.

El código que genera el Back End normalmente no se
 puede ejecutar directamente, sino que necesita ser
 enlazado por un programa enlazador (linker).
Tipos de compiladores
Compiladores cruzados: generan código para un
 sistema distinto del que están funcionando.

Compiladores optimizadores: realizan cambios en el
 código para mejorar su eficiencia, pero manteniendo
 la funcionalidad del programa original.

Compiladores de una sola pasada: generan el código
 máquina a partir de una única lectura del código
 fuente.
Compiladores de varias pasadas: necesitan leer el
 código fuente varias veces antes de poder producir el
 código máquina.

Compiladores JIT (Just In Time): forman parte de un
 intérprete y compilan partes del código según se
 necesitan.
Lenguajes Interpretes
Un intérprete es un traductor que toma un programa
 fuente, lo traduce y a continuación lo ejecuta. BASIC
 es un lenguaje interpretado.

Se trata de traductores-ejecutores ya que con cada
 instrucción realizan un proceso triple de lectura-
 traducción-ejecución. Son relativamente lentos, pero
 muy buenos para la depuración de programas.
Lenguajes Generadores De
    Codigo Para Compiladores
Estas herramientas trabajan basadas en un conjunto
 de reglas; estas reglas definen la traducción de las
 instrucciones del lenguaje intermedio al lenguaje de
 máquina.

Para la generación de código, se busca en las reglas
 establecidas la proposición que coincida con la
 entrada actual; la entrada actual proviene de un árbol.
 Un ejemplo de esto seria
Entonces el compilador recibe una entrada de
 caracteres, por lo general escrita por el programador;
 el compilador realiza los análisis: léxico, sintáctico y
 semántico, para generar seguidamente el código
 intermedio, el código intermedio se genera con
 principios de búsqueda de patrones y aplicación de
 reglas. Después se hace la optimización del código
 intermedio; seguidamente se realiza la generación de
 código

More Related Content

What's hot

Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladoresCJAO
 
Programa informático
Programa informáticoPrograma informático
Programa informáticoVITROY
 
Programac io n pdf
Programac io n pdfProgramac io n pdf
Programac io n pdfjose peralta
 
Introducción a Compiladores
Introducción a  CompiladoresIntroducción a  Compiladores
Introducción a CompiladoresLeopoldo Capa
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajesdomynicjorge
 
Introducción a la Programación.
Introducción a la Programación.Introducción a la Programación.
Introducción a la Programación.guestdf1874
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraAlexandraMolinaSanchez
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion cChavez Raul
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1X3025990
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacionalexlo92
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2exequiel9035a
 
Programa informativo jkaa
Programa informativo jkaaPrograma informativo jkaa
Programa informativo jkaahitap
 
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Jorge Rodriguez
 
Presentación trabajo programación
Presentación trabajo programaciónPresentación trabajo programación
Presentación trabajo programaciónionurrutia
 

What's hot (19)

Cap1 compiladores
Cap1 compiladoresCap1 compiladores
Cap1 compiladores
 
Programa informático
Programa informáticoPrograma informático
Programa informático
 
Programac io n pdf
Programac io n pdfProgramac io n pdf
Programac io n pdf
 
Introducción a Compiladores
Introducción a  CompiladoresIntroducción a  Compiladores
Introducción a Compiladores
 
Clasificasion de lenguajes
Clasificasion de lenguajesClasificasion de lenguajes
Clasificasion de lenguajes
 
Introducción a la Programación.
Introducción a la Programación.Introducción a la Programación.
Introducción a la Programación.
 
Trabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandraTrabajo de compiladores completo alexandra
Trabajo de compiladores completo alexandra
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion c
 
Introducción al Lenguaje de Programación
Introducción al Lenguaje de ProgramaciónIntroducción al Lenguaje de Programación
Introducción al Lenguaje de Programación
 
Danelly
DanellyDanelly
Danelly
 
Programacion
ProgramacionProgramacion
Programacion
 
Compiladores unidad1
Compiladores unidad1Compiladores unidad1
Compiladores unidad1
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Trabajo practico libro2
Trabajo practico libro2Trabajo practico libro2
Trabajo practico libro2
 
Algoritmos y programas
Algoritmos y programasAlgoritmos y programas
Algoritmos y programas
 
Programa informativo jkaa
Programa informativo jkaaPrograma informativo jkaa
Programa informativo jkaa
 
Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...Traducción de un programa: compilación, enlace de un programa, errores en tie...
Traducción de un programa: compilación, enlace de un programa, errores en tie...
 
Presentación trabajo programación
Presentación trabajo programaciónPresentación trabajo programación
Presentación trabajo programación
 
Compiladores
CompiladoresCompiladores
Compiladores
 

Viewers also liked

Analista-programador Cobol - Módulo 1.3
Analista-programador Cobol - Módulo 1.3Analista-programador Cobol - Módulo 1.3
Analista-programador Cobol - Módulo 1.3natachaceleste
 
SECCIONES, TABLA DE CONTENIDOS, TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGRÁ...
SECCIONES, TABLA DE CONTENIDOS, TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGRÁ...SECCIONES, TABLA DE CONTENIDOS, TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGRÁ...
SECCIONES, TABLA DE CONTENIDOS, TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGRÁ...JHONATAN CHAFLA
 
Analista-programador Cobol - Módulo 1.1
Analista-programador Cobol - Módulo 1.1Analista-programador Cobol - Módulo 1.1
Analista-programador Cobol - Módulo 1.1natachaceleste
 
Analista-programador Cobol - Módulo 1.6
Analista-programador Cobol - Módulo 1.6Analista-programador Cobol - Módulo 1.6
Analista-programador Cobol - Módulo 1.6natachaceleste
 
Analista-programador Cobol - Módulo 1.8
Analista-programador Cobol - Módulo 1.8Analista-programador Cobol - Módulo 1.8
Analista-programador Cobol - Módulo 1.8natachaceleste
 
User manual for cobol
User manual for cobolUser manual for cobol
User manual for cobolNirmal Pati
 
Analista-programador Cobol - Módulo 1.2
Analista-programador Cobol - Módulo 1.2Analista-programador Cobol - Módulo 1.2
Analista-programador Cobol - Módulo 1.2natachaceleste
 
Fp isc u1 conceptos basicos
Fp isc   u1 conceptos basicosFp isc   u1 conceptos basicos
Fp isc u1 conceptos basicosAntonio San
 
Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.francisco dixon
 
introducción a lenguajes de programacion
introducción a lenguajes de programacionintroducción a lenguajes de programacion
introducción a lenguajes de programacionbretorio
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C SharpEdgardo Martinez
 
Resumen lenguajes c#
Resumen lenguajes c#Resumen lenguajes c#
Resumen lenguajes c#Angie Galeano
 
Proceso de Compilacion
Proceso de CompilacionProceso de Compilacion
Proceso de Compilacionguest9a91e2
 

Viewers also liked (20)

Analista-programador Cobol - Módulo 1.3
Analista-programador Cobol - Módulo 1.3Analista-programador Cobol - Módulo 1.3
Analista-programador Cobol - Módulo 1.3
 
Cobol Práctica 1.1
Cobol Práctica 1.1Cobol Práctica 1.1
Cobol Práctica 1.1
 
SECCIONES, TABLA DE CONTENIDOS, TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGRÁ...
SECCIONES, TABLA DE CONTENIDOS, TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGRÁ...SECCIONES, TABLA DE CONTENIDOS, TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGRÁ...
SECCIONES, TABLA DE CONTENIDOS, TABLA DE ILUSTRACIONES, REFERENCIAS BIBLIOGRÁ...
 
Analista-programador Cobol - Módulo 1.1
Analista-programador Cobol - Módulo 1.1Analista-programador Cobol - Módulo 1.1
Analista-programador Cobol - Módulo 1.1
 
Hola mundo
Hola mundoHola mundo
Hola mundo
 
Analista-programador Cobol - Módulo 1.6
Analista-programador Cobol - Módulo 1.6Analista-programador Cobol - Módulo 1.6
Analista-programador Cobol - Módulo 1.6
 
Analista-programador Cobol - Módulo 1.8
Analista-programador Cobol - Módulo 1.8Analista-programador Cobol - Módulo 1.8
Analista-programador Cobol - Módulo 1.8
 
User manual for cobol
User manual for cobolUser manual for cobol
User manual for cobol
 
Búsquedas en la web
Búsquedas en la webBúsquedas en la web
Búsquedas en la web
 
Analista-programador Cobol - Módulo 1.2
Analista-programador Cobol - Módulo 1.2Analista-programador Cobol - Módulo 1.2
Analista-programador Cobol - Módulo 1.2
 
Fp isc u1 conceptos basicos
Fp isc   u1 conceptos basicosFp isc   u1 conceptos basicos
Fp isc u1 conceptos basicos
 
Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.Resolución de problemas de algoritmo.
Resolución de problemas de algoritmo.
 
introducción a lenguajes de programacion
introducción a lenguajes de programacionintroducción a lenguajes de programacion
introducción a lenguajes de programacion
 
Caracteristicas de C Sharp
Caracteristicas de C SharpCaracteristicas de C Sharp
Caracteristicas de C Sharp
 
sistema operativo
sistema operativosistema operativo
sistema operativo
 
3. lenguaje c-
3. lenguaje c-3. lenguaje c-
3. lenguaje c-
 
Resumen lenguajes c#
Resumen lenguajes c#Resumen lenguajes c#
Resumen lenguajes c#
 
Tema 1[1][1]
Tema 1[1][1]Tema 1[1][1]
Tema 1[1][1]
 
Proceso de Compilacion
Proceso de CompilacionProceso de Compilacion
Proceso de Compilacion
 
1.introduccion java
1.introduccion java1.introduccion java
1.introduccion java
 

Similar to Programación

Programacion de sistemas
Programacion de sistemasProgramacion de sistemas
Programacion de sistemasYoly Garcia
 
Introduccion a la programación I Parte
Introduccion a la programación I Parte Introduccion a la programación I Parte
Introduccion a la programación I Parte Yelixa Araque Angulo
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1hoppii
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1hoppii
 
Libro1 - PROGRAMACIÓN
Libro1 - PROGRAMACIÓNLibro1 - PROGRAMACIÓN
Libro1 - PROGRAMACIÓNgabrielalija10
 
Libro 1 - LENGUAJES DE PROGRAMACIÓN
Libro 1 - LENGUAJES DE PROGRAMACIÓNLibro 1 - LENGUAJES DE PROGRAMACIÓN
Libro 1 - LENGUAJES DE PROGRAMACIÓNGabriel Alija
 
Compiladores y analizador lexicos
Compiladores y analizador lexicosCompiladores y analizador lexicos
Compiladores y analizador lexicosdiana8320
 
conceptos basicos programacion
conceptos basicos programacionconceptos basicos programacion
conceptos basicos programacionJuan Aranda
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmascritina26
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmasSergio Naspiran
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas94daniel
 

Similar to Programación (20)

Programacion de sistemas
Programacion de sistemasProgramacion de sistemas
Programacion de sistemas
 
Introduccion a la programación I Parte
Introduccion a la programación I Parte Introduccion a la programación I Parte
Introduccion a la programación I Parte
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Maryan toledo
Maryan toledoMaryan toledo
Maryan toledo
 
Software pao
Software paoSoftware pao
Software pao
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1
 
Cuestinario1
Cuestinario1Cuestinario1
Cuestinario1
 
Proyecto fernando compiladores 1
Proyecto fernando compiladores 1Proyecto fernando compiladores 1
Proyecto fernando compiladores 1
 
Libro1 - PROGRAMACIÓN
Libro1 - PROGRAMACIÓNLibro1 - PROGRAMACIÓN
Libro1 - PROGRAMACIÓN
 
Libro 1 - LENGUAJES DE PROGRAMACIÓN
Libro 1 - LENGUAJES DE PROGRAMACIÓNLibro 1 - LENGUAJES DE PROGRAMACIÓN
Libro 1 - LENGUAJES DE PROGRAMACIÓN
 
Apuntes c
Apuntes cApuntes c
Apuntes c
 
Nana
NanaNana
Nana
 
Compiladores y analizador lexicos
Compiladores y analizador lexicosCompiladores y analizador lexicos
Compiladores y analizador lexicos
 
Programacion
ProgramacionProgramacion
Programacion
 
Programa informatico
Programa informaticoPrograma informatico
Programa informatico
 
conceptos basicos programacion
conceptos basicos programacionconceptos basicos programacion
conceptos basicos programacion
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 

More from rehoscript

Practicas oracle10g
Practicas oracle10gPracticas oracle10g
Practicas oracle10grehoscript
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807rehoscript
 
Unidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busquedaUnidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busquedarehoscript
 
Unidad 6 ordenacion_interna
Unidad 6 ordenacion_internaUnidad 6 ordenacion_interna
Unidad 6 ordenacion_internarehoscript
 
Unidad 5 est. dat estruc. no lineal
Unidad 5 est. dat estruc. no linealUnidad 5 est. dat estruc. no lineal
Unidad 5 est. dat estruc. no linealrehoscript
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividadrehoscript
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasrehoscript
 
Unidad 2 Manejo de memoria
Unidad 2 Manejo de memoriaUnidad 2 Manejo de memoria
Unidad 2 Manejo de memoriarehoscript
 
Unidad 7 ordenacion_externa
Unidad 7 ordenacion_externaUnidad 7 ordenacion_externa
Unidad 7 ordenacion_externarehoscript
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Lenguajes Decidibles
Lenguajes DecidiblesLenguajes Decidibles
Lenguajes Decidiblesrehoscript
 
Reseña y ensayo
Reseña y ensayoReseña y ensayo
Reseña y ensayorehoscript
 
Protocolo de investigacion
Protocolo de investigacionProtocolo de investigacion
Protocolo de investigacionrehoscript
 
Tipos de entrevista
Tipos de entrevistaTipos de entrevista
Tipos de entrevistarehoscript
 
Investigacion documental
Investigacion documentalInvestigacion documental
Investigacion documentalrehoscript
 
Maquinas Virtuales
Maquinas VirtualesMaquinas Virtuales
Maquinas Virtualesrehoscript
 
Arquitectura P2P
Arquitectura P2PArquitectura P2P
Arquitectura P2Prehoscript
 
Arquitectura dirigida a eventos
Arquitectura dirigida a eventosArquitectura dirigida a eventos
Arquitectura dirigida a eventosrehoscript
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositóriorehoscript
 

More from rehoscript (20)

Practicas oracle10g
Practicas oracle10gPracticas oracle10g
Practicas oracle10g
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
 
Unidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busquedaUnidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busqueda
 
Unidad 6 ordenacion_interna
Unidad 6 ordenacion_internaUnidad 6 ordenacion_interna
Unidad 6 ordenacion_interna
 
Unidad 5 est. dat estruc. no lineal
Unidad 5 est. dat estruc. no linealUnidad 5 est. dat estruc. no lineal
Unidad 5 est. dat estruc. no lineal
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
Unidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicasUnidad 3 estructuras lineales estaticas y dinamicas
Unidad 3 estructuras lineales estaticas y dinamicas
 
Unidad 2 Manejo de memoria
Unidad 2 Manejo de memoriaUnidad 2 Manejo de memoria
Unidad 2 Manejo de memoria
 
Unidad 7 ordenacion_externa
Unidad 7 ordenacion_externaUnidad 7 ordenacion_externa
Unidad 7 ordenacion_externa
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
Lenguajes Decidibles
Lenguajes DecidiblesLenguajes Decidibles
Lenguajes Decidibles
 
Claselexico
ClaselexicoClaselexico
Claselexico
 
Reseña y ensayo
Reseña y ensayoReseña y ensayo
Reseña y ensayo
 
Protocolo de investigacion
Protocolo de investigacionProtocolo de investigacion
Protocolo de investigacion
 
Tipos de entrevista
Tipos de entrevistaTipos de entrevista
Tipos de entrevista
 
Investigacion documental
Investigacion documentalInvestigacion documental
Investigacion documental
 
Maquinas Virtuales
Maquinas VirtualesMaquinas Virtuales
Maquinas Virtuales
 
Arquitectura P2P
Arquitectura P2PArquitectura P2P
Arquitectura P2P
 
Arquitectura dirigida a eventos
Arquitectura dirigida a eventosArquitectura dirigida a eventos
Arquitectura dirigida a eventos
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositório
 

Programación

  • 1. INTRODUCCIÓN A LA PROGRAMACIÓN DE SISTEMAS
  • 2. ¿QUE ES? Un sistema es un conjunto de componentes que interaccionan entre si para lograr un objetivo común. Las personas se comunican con el lenguaje, que es un sistema muy desarrollado formado por palabras y símbolos que tienen significado para el que habla y para quienes lo escuchan, lo mismo es para las computadoras las cuales tienen sistemas y se comunican por medio de computadoras. La programación es el proceso de convertir las especificaciones a grandes rasgos de los sistemas en instrucciones de maquina que produzcan los resultados deseados.
  • 3. ¿QUE ESTUDIA?  Áreas específicas: Sistemas digitales para arquitecturas paralelas y control de procesos y sistemas reconfigurables.  Inteligencia artificial aplicada a trabajo cooperativo  Sistemas para arquitecturas paralelas y distribuidas  Diseño de sistemas operativos para arquitecturas paralelas y sistemas distribuidos, herramientas para programación paralela y distribuida.  Sistemas de tiempo real  Diseño y programación de sistemas grandes
  • 4. Herramientas Desarrolladas Con Teoría De Programación De Sistemas Las herramientas de programación, son aquellas que permiten realizar aplicaciones, programas, rutinas, utilitarios y sistemas para que la parte física de la computadora, funcione y pueda producir resultados. Las herramientas de programación más comunes del mercado, cuentan hoy dia con programas de depuración o debugger, que son utilitarios que nos permiten detectar los posibles errores en tiempo de ejecución o corrida de rutinas y programas.
  • 5. Muchas herramientas de software que manipulan programas fuente realizan primero algún tipo de análisis. Algunos ejemplos de tales herramientas son: 1. Editores de estructuras: Un editor de estructuras toma como entrada una secuencia de órdenes para construir un programa fuente. 2. Impresoras estéticas: Una impresora estética analiza un programa y lo imprime de forma que la estructura del programa resulte claramente visible. 3. Verificadores estáticos: Un verificador estático lee un programa, lo analiza e intenta descubrir errores potenciales sin ejecutar el programa.
  • 6. 4. Intérpretes: En lugar de producir un programa objeto como resultado de una traducción, un intérprete realiza las operaciones que implica el programa fuente. 5. Compiladores: Tradicionalmente, se concibe un compilador como un programa que traduce un programa fuente, como FORTRAN, al lenguaje ensamblador o de máquina de alguna computadora.
  • 7. Lenguajes Se llama lenguaje a cualquier tipo de código semiótico estructurado, para el que existe un contexto de uso y ciertos principios combinatorios formales. Existen muchos contextos tanto naturales como artificiales donde aparecen lenguajes.
  • 8. Lenguajes Naturales Este tipo de lenguaje es el que nos permite el designar las cosas actuales y razonar a cerca de ellas, fue desarrollado y organizado a partir de la experiencia humana y puede ser utilizado para analizar situaciones altamente complejas y razonar muy sutilmente. Un LN puede ser modelado fácilmente por un lenguaje formal, similar a los utilizados en las matemáticas y la lógica.
  • 9. Otra propiedad de los lenguajes naturales es la polisemantica, es decir la posibilidad de que una palabra en una oración tenga diversos significados. En un primer resumen, los lenguajes naturales se caracterizan por las siguientes propiedades: Desarrollados por enriquecimiento progresivo antes de cualquier intento de formación de una teoría. La importancia de su carácter expresivo debido grandemente a la riqueza del componente semántico
  • 10. Lenguajes Artificiales (Formales) En la actualidad nos encontramos con distintos lenguajes para para programar y también los campos de aplicación son variados y completamente distintos. De acuerdo a la complejidad del problema a resolver sera necesario hacer una selección adecuada del lenguaje de programación (incluso se puede generar el lenguaje de programación propio) que permita resolver de manera eficiente el problema
  • 11. Hasta hace pocos años, el software de desarrollo se basaba fundamentalmente en Lenguajes Artificiales (Basic, C, Cobol, Pascal…) para “explicar” a la computadora las acciones a realizar. Por el contrario, los “Orientados a Objetos” permiten que el programador ignore el lenguaje comprensible para la máquina poniendo a su disposición una serie de objetos preprogramados. De este modo la tarea se simplifica enormemente y se reduce a disponer, dentro de la ventana de programa y en la secuencia adecuada, los programas y funciones de los que nos provee.
  • 12. 1.3.3 Proceso De La Comunicación
  • 13. Proceso De La Comunicación La comunicación es un fenómeno inherente a la relación grupal de los seres vivos por medio del cual éstos obtienen información acerca de su entorno y de otros entornos y son capaces de compartirla haciendo partícipes a otros de esa información. La comunicación es de suma importancia para la supervivencia de especies gregarias, pues la información que ésta extrae de su medio ambiente y su facultad de transmitir mensajes serán claves para sacar ventaja del modo de vida gregario.
  • 14. Proceso de transmisión de información de un emisor (A) a un receptor (B) a través de un medio ©. En la transmisión y la recepción de esa información se utiliza un código específico que debe ser “codificado”, por el emisor y “decodificado” por el receptor”.
  • 15. Elementos del Proceso de la comunicación Fuente: Es el lugar de donde emana la información, los datos, el contenido que se enviará, en conclusión: de donde nace el mensaje primario. Emisor o codificador: Es el punto (persona, organización…) que elige y selecciona los signos adecuados para transmitir su mensaje; es decir, los codifica para poder llevarlo de manera entendible al receptor. En el emisor se inicia el proceso comunicativo.
  • 16. Receptor o decodificador: Es el punto (persona, organización…) al que se destina el mensaje, realiza un proceso inverso al del emisor ya que en él está el descifrar e interpretar lo que el emisor quiere dar a conocer. Código: Es el conjunto de reglas propias de cada sistema de signos y símbolos que el emisor utilizará para trasmitir su mensaje, para combinarlos de manera arbitraria porque tiene que estar de una manera adecuada para que el receptor pueda captarlo.
  • 17. Mensaje: Es el contenido de la información (contenido enviado): el conjunto de ideas, sentimientos, acontecimientos expresados por el emisor y que desea trasmitir al receptor para que sean captados de la manera que desea el emisor. El mensaje es la información. Canal: Es el medio a través del cual se transmite la información-comunicación, estableciendo una conexión entre el emisor y el receptor. Referente: Realidad que es percibida gracias al mensaje. Comprende todo aquello que es descrito por el mensaje.
  • 18. Situación: Es el tiempo y el lugar en que se realiza el acto comunicativo. Interferencia o barrera: Cualquier perturbación que sufre la señal en el proceso comunicativo, se puede dar en cualquiera de sus elementos.  Retroalimentación o realimentación (mensaje de retorno): Es la condición necesaria para la interactividad del proceso comunicativo, siempre y cuando se reciba una respuesta (actitud, conducta…) sea deseada o no.
  • 19. 1.4 Traductor y Su Estructura
  • 20. 1.4 Traductor y Su Estructura Traductor: En un sentido orientado hacia la computación, un traductor, de manera general, es un software que toma como entrada un programa escrito en un código llamado fuente y genera como salida otro programa en un código llamado objeto. Su estructura podria ser expresada de la siguiente manera: código fuente  traductor  código objeto
  • 21. Algunos ejemplos de traductores son los compiladores (toma como entrada código en alto nivel y genera como salida código en bajo nivel), los interpretes (toma como entrada código en alto nivel y genera como salida un código intermedio), los preprocesadores (toma como entrada código en alto nivel y genera como salida código en alto nivel) y el ensamblador (toma como entrada código en ensamblador y genera como salida código en bajo nivel).
  • 23. Definición. Un intérprete es un programa que ejecuta un programa escrito en un determinado lenguaje examinando y ejecutando cada sentencia del programa una a una, por separado y sin realizar un proceso de compilación previo. El intérprete NO traduce la sentencia a código máquina antes de ejecutarla. En su lugar, identifica el tipo de sentencia y la ejecuta directamente. El código para ejecutar la sentencia está contenido dentro del intérprete que contendrá rutinas para: evaluar una expresión, almacenar información en memoria, recuperar datos de memoria, etc.
  • 24. El intérprete contendrá el número de rutinas necesarias para poder ejecutar cualquier sentencia del lenguaje que está interpretando. Ejemplo: C := A + B 1. El intérprete lee la sentencia y determina que es una asignación. 2. Llamará a una de sus rutinas para evaluar la expresión a la derecha de la asignación. 3. Esta rutina toma los símbolos A y B, determina donde están almacenados, obtiene sus valores actuales y los suma.
  • 25. Compilación e Interpretación Además de elegir entre compilar o interpretar un programa, otra opción es combinar ambos procesos de traducción. En este caso, se realiza una compilación “parcial” a un código intermedio que es seguida de un proceso de interpretación. Uno de los lenguajes más utilizados hoy en día, sobre todo para el desarrollo de aplicaciones para la Web, que sigue esta propuesta es el lenguaje Java.
  • 26. En el lenguaje Java el código primero se compila con el compilador de Java javac. Este compilador genera un código virtual llamado Byte Code. Este código es luego interpretado por una Máquina Virtual de Java (o JVM de Java Virtual Machine) que debe estar instalada y ejecutándose en la máquina en la que se desee ejecutar el código compilado con javac.
  • 27. Algunas de las ventajas de compilar frente a interpretar son: Se compila una vez; se ejecuta muchas veces La ejecución del programa objeto es mucho más rápida que si se interpreta el programa fuente. El compilador tiene una visión global del programa, por lo que la información de mensajes de error es más detallada. Por otro lado, algunas de las ventajas de interpretar frente a compilar son: Un intérprete necesita menos memoria que un compilador. Permiten una mayor interactividad con el código en tiempo de desarrollo.
  • 28. 1.4.1 Lenguajes Ensambladores El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un programa o archivo fuente escrito en un lenguaje ensamblador, a programa o archivo objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible
  • 29. Funcionamiento El programa lee el programa escrito en lenguaje ensamblador y sustituye cada uno de los códigos técnicos que aparecen por su código de operación correspondiente en sistema binario.
  • 30. Tipos de ensambladores Ensambladores básicos. Son de muy bajo nivel, y su tarea consiste básicamente en ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas tales como los modos de direccionamiento. Además, reconoce una serie de directivas (o meta instrucciones) que indican ciertos parámetros de funcionamiento del ensamblador.
  • 31. Ensambladores modulares, o macro ensambladores. Descendientes de los ensambladores básicos, fueron muy populares en las décadas de los 50 y los 60, antes de la generalización de los lenguajes de alto nivel. Hacen todo lo que puede hacer un ensamblador, y además proporcionan una serie de directivas para definir e invocar macroinstrucciones (o simplemente, macros).
  • 32. Ensambladores modulares 32-bits o de alto nivel. Son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con programas con estructuras de 16 bits. Además de realizar la misma tarea que los anteriores, permitiendo también el uso de macros, permiten utilizar estructuras de programación más complejas propias de los lenguajes de alto nivel.
  • 33. Lenguajes Compiladores Un compilador acepta programas escritos en un lenguaje de alto nivel y los traduce a otro lenguaje, generando un programa equivalente independiente, que puede ejecutarse tantas veces como se quiera. Este proceso de traducción se conoce como compilación. Los programas interpretados suelen ser más lentos que los compilados, pero los intérpretes son más flexibles como entornos de programación y depuración.
  • 34. Partes de un compilador Normalmente los compiladores están divididos en dos partes: Front End: es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar. Back End: es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End.
  • 35. Esta división permite que el mismo Back End se utilice para generar el código máquina de varios lenguajes de programación distintos y que el mismo Front End que sirve para analizar el código fuente de un lenguaje de programación concreto sirva para la generación de código máquina en varias plataformas distintas. El código que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker).
  • 36. Tipos de compiladores Compiladores cruzados: generan código para un sistema distinto del que están funcionando. Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original. Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente.
  • 37. Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina. Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan.
  • 38. Lenguajes Interpretes Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta. BASIC es un lenguaje interpretado. Se trata de traductores-ejecutores ya que con cada instrucción realizan un proceso triple de lectura- traducción-ejecución. Son relativamente lentos, pero muy buenos para la depuración de programas.
  • 39. Lenguajes Generadores De Codigo Para Compiladores Estas herramientas trabajan basadas en un conjunto de reglas; estas reglas definen la traducción de las instrucciones del lenguaje intermedio al lenguaje de máquina. Para la generación de código, se busca en las reglas establecidas la proposición que coincida con la entrada actual; la entrada actual proviene de un árbol. Un ejemplo de esto seria
  • 40. Entonces el compilador recibe una entrada de caracteres, por lo general escrita por el programador; el compilador realiza los análisis: léxico, sintáctico y semántico, para generar seguidamente el código intermedio, el código intermedio se genera con principios de búsqueda de patrones y aplicación de reglas. Después se hace la optimización del código intermedio; seguidamente se realiza la generación de código