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

Slides:



Advertisements
Presentaciones similares
Las tres primeras fases de un compilador suelen agrupan en un sola fase llamada Análisis del programa a compilar y las tres ultimas en una sola fase llamada.
Advertisements

Organización del Computador UC1.- Arquitectura y estructura del computador.
¿Que es un ordenador? Un ordenador es una máquina programable. Las dos características principales de un ordenador son: 1. Responde a un sistema específico.
ALGORITMOS Y TIPOS DE DATOS Un algoritmo es un método para resolver un problema. Para la creación de un programa (resolver un problema) en un lenguaje.
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
UNIVERSIDAD FERMIN TORO CABUDARE ENSAYO TIPOS DE SOFTWARE E IMPORTANCIA JUNIO 2014.
MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN MÉTODOS Y ELEMENTOS DE PROGRAMACIÓN.
1 LENGUAJES DE PROGRAMACIÓN. Son aplicaciones específicas diseñadas para crear otras aplicaciones o programas. Son programas para crear programas. 2.
Tema 1 Fundamentos de Computación
PROGRAMACION ORIENTADA A EVENTOS
Herencia Multiple en Java
LENGUAJES DE PROGRAMACIÓN
SOFTWARE Se forma por el conjunto de instrucciones o programas. Los programa son una secuencia de órdenes que se le dan a la computadora para que haga.
2. Programación de Robots
PHP Hypertext Preprocessor
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
Historia de los Lenguajes de Programación.
PROGRAMACIÓN (1).
Lenguaje C en pocas palabras
LENGUAJE DE PROGRAMACIÓN Y SOFTWARE PROPIETARIO
Lenguajes y representación tecnica
LENGUAJES Y REPRESENTACION TECNICA
Conceptos y definición básicos
ALGORITMOS, LENGUAJES Y TECNICAS DE PROGRAMACION
Oscar Martin Tirado Ochoa
Lenguaje de Programación C en pocas palabras
UNIVERSIDAD PEDAGÓGICA NACIONAL FRANCISCO MORAZÁN
Tecnología de la Información Software
Definición de un Sistema Distribuido
Lenguaje y representación técnica
Tecnología de la Información Profesora Ariana Rosenthal Software
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
LENGUAJES Y REPRESENTACION TECNICA
Avalos Vega Claudia Judith
ALGORITMOS es un conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos.
INTRODUCCIÓN A JAVA.
TAREA DEFINICIONES: Software: Equipamiento lógico o soporte lógico de una computadora digital; comprende el conjunto de los componentes lógicos necesarios.
Conocer los fundamentos de la programación estructurada
PROGRAMACIÓN 1 INTRODUCCIÓN
CONCEPTOS PRELIMINARES (Cont)
INTRODUCCIÓN ING. IVONNE MALDONADO. PROGRAMACIÓN Programar no es mas que idear y ordenar las acciones. Lograr que un programa cumpla con una cierta tarea.
Introducción al lenguaje de programación. Introducción  Los lenguajes de programación son aplicaciones específicas que han sido pensadas y diseñadas.
EL SISTEMA OPERATIVO Es un conjunto de programas hechos para la ejecución de varias tareas, en las que sirve de intermediario entre el usuario y la computadora.
Universidad Nacional de Colombia - Leguajes de Programación
LENGUAJE DE SCRIPTING EN SERVIDORES WEB INTEGRANTES :JOSTIN FRANCO DARYENIS ARAUZ PABLO CANDANEDO.
UNIVERSIDAD DEL VALLE Docente: MsC. Cinthya Irene Rosales Martinez Facultad de Ingeniería Lenguajes de Programación.
Programación Orientada a Objetos. ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de.
FUNDAMENTOS DE PROGRAMACIÓN
CURSO PROGRAMACIÓN BÁSICA SEMANA 3 ¿Qué es un programa?
FUDAMENTOS BÀSICOS computación
CURSO PROGRAMACIÓN BÁSICA SEMANA 2
Fundamentos de la Programación I
Fundamentos de la Programación I
El entorno de Desarrollo de Dev-C++
FUNDAMENTOS DE PROGRAMACIÓN. INTRODUCCIÓN  Conceptos: Informática, Ordenador, Programa, Dato, Bit, Byte, Hardware, Software, Lenguaje de Programación,
“Conceptos Básicos de Java”
FUNDAMENTOS DE PROGRAMACIÓN
Lenguajes de Programación Tema 1. Introducción y conceptos generales DOCENTE: ING. SOFIA MAGDA RIOS CHURA.
Unidad 2: Programación 2. Programación.
Ingeniería de Sistemas. Programación II Python ¿Qué es Python? Python es un lenguaje de programación creado por Guido Van Rossum a principios de los.
Lenguaje de Programación II
UA.- Algoritmos Computacionales
Diseño y Programación Orientados a Objetos
Características de los Sistemas Operativos
Es un ordenador de software que puede ejecutar un sistema operativo por el mismo, este tipo de sistemas operativos, presentan una interface a cada proceso.
GC-F-004 V.01 CENTRO DE INDUSTRIA Y LA CONSTRUCCIÓN REGIONAL TOLIMA.
COMPILADORES Semana 1 Ing. Jorge Vigil Farfán MgTI, PMP, ITIL-Expert, Cloud, ISO 27002, CCNP, CCNA, CCNA Sec, NSE.
PROGRAMACIÓN BÁSICA CONCEPTOS BÁSICOS Software. TEMAS:  Software y sus funciones  Tipos de Software  Software de Sistemas  Software de Aplicación.
EVOLUCIÓN DE LOS PARADIGMAS DE PROGRAMACIÓN Integrantes: Christian Abad, Kevin Colcha.
Tema 1 Introducción a la programación (Lenguaje java). 1.1 Conceptos básicos.
Transcripción de la presentación:

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

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

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

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.

Dirección Contenido 0100 0010 0000 0101 0102 0011 0110

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

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 0110 1001 1010 1011

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.

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

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

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.

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.

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

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.

Programa fuente MOV AH,09 ADD AH,BH Compilador Programa objeto 0110 1001 1010 1011 Enlazador Programa ejecutable en lenguaje máquina 0110 1001 1010 1011

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.

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

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

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.