La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Tema 1 Introducción a las Ciencias de la Computación

Presentaciones similares


Presentación del tema: "Tema 1 Introducción a las Ciencias de la Computación"— Transcripción de la presentación:

1 Tema 1 Introducción a las Ciencias de la Computación
Parte 2

2 Conceptos básicos Lenguajes de programación
Tema 1 Conceptos básicos Lenguajes de programación

3 Lenguaje de programación
Son los lenguajes utilizados para escribir programas. Tipos: Lenguaje máquina Lenguaje de bajo nivel (Ensamblador) Lenguaje de alto nivel

4 Lenguaje máquina Es directamente entendido por la computadora (no se necesita traducción). Sus instrucciones son cadenas binarias (serie de 0s y 1s). Las instrucciones dependen del HW, por lo que difieren de una computadora a otra.

5 Dirección Contenido 0100 0010 0000 0101 0102 0011 0110

6 Lenguajes de bajo nivel
Los primeros lenguajes de programación se orientaban a un área específica y sus instrucciones requerían de una sintaxis predefinida. Los lenguajes de bajo nivel son aquellos que están más cerca del "entendimiento" de la máquina. Ejemplo: Lenguaje Ensamblador En este tipo de lenguajes se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle, además, está completamente orientado a la máquina. Adaptación - Máxima entre programación y aprovechamiento del recurso de la máquina. Velocidad - Máxima al contar con un acceso directo a los recursos, sin capas intermedias. Portabilidad - Mínima por estar restringido a las especificaciones del fabricante. Abstracción - Mínima por depender completamente de la técnica del hardware. Uso - Requiere de la máxima atención y de una organización estructurada sobre la base de los planos del hardware y del objetivo del software. isomorfismo - Conceptualización de los datos de la información, que se complementaran

7 Lenguaje Ensamblador Instrucciones conocidas como nemotécnicos. (ADD, SUB, DIV,..) Un programa en ensamblador requiere una fase de traducción al lenguaje máquina. programa fuente programa objeto MOV AH,09 ADD AH,BH Programa Ensamblador

8

9 Lenguajes de alto nivel
Surgen a finales de los años 1950 evitando los inconvenientes de los lenguajes de bajo nivel. Un lenguaje de alto nivel permite al programador escribir las instrucciones de un programa utilizando palabras o expresiones  sintácticas muy similares al lenguaje natural. Es independiente de la máquina, programas transportables. Ventajas: Genera un código más sencillo y comprensible. Escribir un código válido para diversas máquinas o sistemas operativos. Permite utilizar paradigmas de programación. Permite crear programas complejos en relativamente menos líneas de código. Inconvenientes: Reducción de velocidad al ceder el trabajo de bajo nivel a la máquina. Algunos requieren que la máquina cliente posea una determinada plataforma.

10 Ejemplos: Basic, Pascal, C/C++, C#, Java, PHP, etc. Ventajas:
Tiempo corto para la formación de programadores. Reglas sintácticas similares al lenguaje natural Modificación fácil a los programas Reducción del coste de los programas Transportabilidad

11 Inconvenientes: No se aprovechan los recursos de HW de la computadora.
Aumenta la ocupación de la memoria Tiempo de ejecución de los programas mucho mayor

12 Intérprete Un intérprete es un software que recibe un programa en lenguaje de alto nivel, lo analiza y lo ejecuta. Para analizar el programa completo, va traduciendo una a una las sentencias de código y ejecutándolas si están bien. No genera un fichero ejecutable, por lo que cada vez que se ejecuta el programa original debe pasar por la fase de análisis. Esto hace de los intérpretes más lentos que los compiladores Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito. Así, mientras un intérprete toma las instrucciones del programa fuente y las traduce y ejecuta a lenguaje máquina una a una, un compilador realiza la traducción completa del programa fuente a codigo máquina, sin ejecutarlo, siendo posteriormente cuando se ejecute el programa una vez compilado.

13 Lenguaje interpretado
Un lenguaje interpretado es un lenguaje de programación para el que la mayoría de sus implementaciones ejecuta las instrucciones directamente, sin una previa compilación del programa a instrucciones en lenguaje máquina. Lenguajes interpretados: Basic (en algunas versiones), Rubi MRI, JavaScript, MATLAB, etc Los términos lenguaje interpretado y lenguaje compilado4 no están bien definidos porque, en teoría, cualquier lenguaje de programación puede ser interpretado o compilado. Cada vez es más popular, en las implementaciones más modernas de un lenguaje de programación, ofrecer ambas opciones. Muchos lenguajes se han implementado usando tanto compiladores como intérpretes, incluyendo BASIC, C, Lisp, Pascal y Python. Java y C# se compilan a código byte, el lenguaje interpretado específico para la máquina virtual. Muchas implementaciones de Lisp pueden mezclar libremente código interpretado y compilado.

14 MOV AH,09 ADD AH,BH Programa fuente Intérprete Traducción y ejecución línea a línea

15 Compilador Un compilador es un software que traduce un programa escrito en un lenguaje de programación a otro lenguaje diferente, generalmente a Ensamblador, o un código intermedio. Luego con un programa enlazador (linker) se realiza un proceso de montaje que conduce a un programa en lenguaje de máquina. Lenguajes compilados: Pascal C/C++ Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito. Así, mientras un intérprete toma las instrucciones del programa fuente y las traduce y ejecuta a lenguaje máquina una a una, un compilador realiza la traducción completa del programa fuente a codigo máquina, sin ejecutarlo, siendo posteriormente cuando se ejecute el programa una vez compilado. En la compilación además de un traductor, se pueden necesitar otros programas para crear un programa ejecutable.

16 Programa fuente MOV AH,09 ADD AH,BH Compilador Programa objeto Enlazador Programa ejecutable en lenguaje máquina

17 Compilación justo a tiempo (JIT Just in time)
Es una técnica en la cual la representación intermedia es compilada a código de máquina nativo en tiempo de ejecución. Esto confiere la eficiencia de ejecutar el código nativo, al costo de tiempo de inicio y de un uso creciente de la memoria. Lenguajes con JIT: Java, Python y el Microsoft. NET Framework La optimización adaptativa es una técnica complementaria en la cual el interpretador hace un análisis de desempeño del programa que está corriendo (profiling) y compila sus partes más frecuentemente ejecutadas a código nativo. Ambas técnicas tienen algunas décadas, apareciendo en lenguajes tales como Smalltalk en la década de 1980. En años recientes, la compilación justo a tiempo ha ganado la atención de la mayoría de los implementadores de lenguajes de programación, con Java, Python, y el Microsoft.NET Framework todos ahora incluyendo JITs.

18 En un entorno de compilación en tiempo de ejecución, la compilación a bytecode es el primer paso, reduciendo el código fuente a una representación intermedia portable y optimizable. El bytecode se despliega en el sistema de destino. Cuando dicho código se ejecuta, el compilador en tiempo de ejecución lo traduce a código máquina nativo. Esto puede realizarse a nivel de fichero (programa) o de funciones, compilándose en este último caso el código correspondiente a una función justo cuando va a ejecutarse (de aquí el nombre de just-in-time, «justo a tiempo»).

19 Máquina virtual Una máquina virtual es un software que simula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física".  Actualmente no es necesariamente un duplicado de una maquina que exista. En una sola máquina Virtual podemos por ejemplo instalar varios PCS virtuales con distintos sistemas operativos y estudiar la forma de conectarlos en una red a través también de routers virtuales. Otra utilidad primordial consiste en poder trabajar con aplicaciones que funcionan sobre distintos sistemas operativos al que posee el ordenador anfitrión, disponiendo de un solo Ordenador físico (Java Virtual Machine o JVM). Aplicación que interpreta y ejecuta programas escritos en el lenguaje de programaciónJava. Específicamente puede interpretar el bytecode generado al compilar en Java

20 Programa Un programa es una secuencia de instrucciones, escritas para realizar una tarea específica en una computadora (u otro dispositivo). Para desarrollar un programa se utilizan los lenguajes de programación, que a través de reglas semánticas y sintácticas, especifican los datos que transmite el software y que tendrá que operar la computadora.


Descargar ppt "Tema 1 Introducción a las Ciencias de la Computación"

Presentaciones similares


Anuncios Google