Integrantes:  García Reséndiz Itzel Alejandra  Reyes Castellanos Francisco Javier Integrantes:  García Reséndiz Itzel Alejandra  Reyes Castellanos.

Slides:



Advertisements
Presentaciones similares
Introducción a la programación
Advertisements

Complejidad Computacional
Lenguaje de programación Java
Lenguajes de programación
JAVA mas que un lenguaje – una tecnología Ing. Eduardo Fernández.
INSTITUTO TECNOLOGICO DE MINATITLAN
Programación Orientada a Objetos
Programación 1 Introducción
Introducción a la programación
Historia de PHP Programación en Internet II. Historia de PHP Programación en Internet II Universidad de Guadalajara | Centro Universitario de la Costa.
Introducción a la Programación “Conceptos de Algoritmo”
Análisis de Algoritmos
Material de apoyo Unidad 4 Estructura de datos
Tipos de Datos. Entrada-Salida.. La entrada-salida (I/O) le permite a un programa comunicarse con el mundo exterior. Esta comunicación puede realizarse.
Ejecución de un programa escrito en Java Java es un lenguaje que se ejecuta con un intérprete a diferencia de Pascal o C que se compilan para producir.
Lenguajes de Programación
Cristian Fonnegra Marin
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) LENGUAJES DE PROGRAMACIÓN PARA EL DESARROLLO DE INTERFACES.
UNIVERSIDAD LATINA INTRODUCCION A LA PROGRAMACION INTRODUCCIÓN.
INTERRUPCIONES – ABRAZO MORTAL
Práctica Profesional PHP.
75.41 Algoritmos y Programación II Cátedra Ing. Patricia Calvo Complejidad algorítmica.
TEMA 5 OBJETIVOS Datos que se recogen a través de estudios cuidadosamente planeados La selección de métodos que existen: entrevista, observación y cuestionarios.
Fundamentos de Programación Unidad I Conceptos Básicos.
INFORMATICA I PROYECTO SIRLA Jorge Walter Sosa Esteban Parra González Juan Camilo Morales.
Y DESPUES DE 4º DE E.S.O. ¿QUÉ? PROGRAMA DE ORIENTACIÓN ACADÉMICO-PROFESIONAL.
Universidad de MendozaTeleinformática ITemario  WWW Dinámica  CGI  Como se integra PHP en Apache.
UNIVERSIDAD NACIONAL DE LOJA ÁREA DE LA EDUCACIÓN, EL ARTE Y LA COMUNICACIÓN CARRERA DE INFORMÁTICA EDUCATIVA MODULO IV DOCENTE Ing. : Lena Ruiz Rojas.
INGENIERÍA EN SISTEMAS E INFORMÁTICA
Arquitectura y Sistemas Operativos Gestión de Memoria Parte 1 1 Gestión de Memoria – Parte 1 Agenda Parte 1 –RequisitosRequisitos –EvoluciónEvolución –Carga.
LÓGICA COMPUTACIONAL Y PROGRAMACIÓN PROPÓSITO INTRODUCCIÓN USO DE LA PROGRAMACIÓN Programación Lenguajes de Programación Sistema Operativo Elementos para.
biografía  Nació el(20 de marzo de de marzo de 1915) Germantown (Pennsylvania) fue un ingeniero mecánico y economista estadounidense, promotor.
GENERICIDAD Es una propiedad que permite definir una clase o función sin especificar el tipo de datos de uno o mas de sus parámetros (Módulos Parametrizados).
Una visión práctica El profesional ante el portal ElRuido.com:
Lenguaje de programación: Lua Fundamentos de lenguaje de programación. Iván Cardemil Patricio Tudela Camilo Rojas Llosect Moscoso.
SISTEMAS OPERATIVOS Contenido: Descripción del proceso proceso nulo estado del procesador imagen del proceso información del BCP Miguel Ángel Martínez.
Lenguajes de programación Un lenguaje de programación es un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por máquinas.
Unidad 6 Polimorfismo.
10-Febrero Software de aplicación. Héctor Alejandro Bautista Alatriste.
JOSE ALBERTO JIMENEZ JIMENEZ KATTY HIPOLITO. 7.1 INTRODUCCION AL LENGUAJE EMSAMBLADOR.
Clase II Estructuras dinámicas (TAD) Listas Enlazadas. ¿A que llamamos estructuras dinámicas? ¿Por qué son necesarias? Ventajas y Desventajas que tendremos.
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
Introducción a la POO y C++ Pablo San Segundo (C-206)
1 Introducción a la Programación Estructurada Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006.
Modelo atómico Johan Sebastian Bolivar Sora. ¿Qué es el átomo? Los atomos son la unidad básica de toda la materia, la estructura que define a todos los.
Cadenas de Valor con Enfoque de Género. Antecedentes Agenda de armonización de acciones sobre género y cadenas de valor Julio “ Reunión de Intercambio.
1 Clase 4: primeros programas (2ª parte) iic1102 – introducción a la programación.
Una base de datos, a fin de ordenar la información de manera lógica, posee un orden que debe ser cumplido para acceder a la información de manera coherente.
Clase 1.  Un programador es aquella persona que escribe, depura y mantiene el código fuente de un programa informático, es decir, del conjunto de instrucciones.
LAS LEYES DE LA TERMODINÁMICA. Las leyes de la termodinámica que se desarrollarán serán:  Ley cero de la termodinámica o principio del equilibrio termodinámico.
Tratamientos secuenciales I Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 8 Versión
Entrada y Salida en C++, Estructuras de Control Prof. Manuel B. Sánchez.
METODOS DE PROGRAMACION I Ing. Vania Flores Pinto.
PROPONER UNA REINGENIERÍA EN EL PROCESO DE CONSTRUCCIÓN E IMPLANTACIÓN DE LA SOLUCIONES TI. CASO: GERENCIA DE INGENIERÍA EN DESARROLLO Y CONSTRUCCIÓN IT/IS,
Tratamientos Secuenciales Generalizados I Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 18 Versión
PRINCIPIOS LOGICOS.
Normas Generales de Control Interno para el Sector Público Nacional Resolución N° 172/2014 SGN República Oriental del Uruguay Montevideo - Marzo de 2016.
G ESTIÓN DE LA MEMORIA Paginación y segmentación.
Melissa Victoria Mendiola Peralta.  Los algoritmos son las series de pasos por los cuales se resuelven los problemas.
Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3.
Mercados financieros artificiales CÓMPUTO EVOLUTIVO Y BIOINSPIRADO Y SU CAMPO DE APLICACIÓN, IIMAS. DANYA ANAHID ESQUIVEL MORALES 20 DE MARZO DE 2015.
PROGRAMACION ORIENTADA A OBJETOS
Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos Fundamentos de Programación Departamento.
Fundamentos al Computador Software Software de Sistema Software de aplicación Software de programación Etapas del proceso de desarrollo de Software LOS.
1 Lenguaje de Programación Clase 1 Alberto Huamani Escobar
Taller introducción a los conceptos básicos de Estadística PRIMERA PARTE 2016 Propósito: Introducir algunos conceptos básicos de Estadística por medio.
Dynamics Consulting Group Cuentas por Pagar. Dynamics Consulting Group Configuración de Cuentas por Pagar Multivencimientos Se utilizan para pagar facturas.
Presentado por: Carlos Andrés Caro Castillo Cod Leiby Jineth Lancheros Currea Cod Johann Marcel Reyes Peña Cod SOLUCIÓN.
Lenguajes de Programación (Definición, Clasificación y Ejemplos)
Transcripción de la presentación:

Integrantes:  García Reséndiz Itzel Alejandra  Reyes Castellanos Francisco Javier Integrantes:  García Reséndiz Itzel Alejandra  Reyes Castellanos Francisco Javier

Para aumentar la eficiencia de un programa es importante conocer la cantidad de recursos utilizados.  como tiempo de ejecución  consumo de memoria  algoritmo utilizado  estructura del programa Existen varias medidas Cual medida de eficiencia se está considerando como prioridad Comparación entre los lenguajes C++, Java, Python

La eficiencia de nuestra solución dependerá de la cantidad de recursos utilizados Los recursos consumidos por un programa dependen del algoritmo utilizado. Problema Construcción del código fuente Algoritmo Solución de nuestro problema Sin embargo el mismo algoritmo puede comportarse de forma diferente dependiendo del lenguaje de programación utilizado. ¿Qué LENGUAJE USAR?

1)Lenguajes son seleccionados por razones equivocadas. 2)La eficiencia del lenguaje puede depender de parámetros a)plataforma sobre la que se ejecuta b)la versión de las librerías c)la versión del compilador/intérprete/máquina virtual 3)Dado que depende del compilador/intérprete/máquina virtual

 Lenguajes que dan libertad en la gestión  Propósito para el que fue creado dicho lenguaje  Propósito de nuestro algoritmo.  Buenas prácticas de Software. En nuestro análisis se resolverá un mismo problema utilizado un algoritmo homogéneo para realizar pruebas pero antes consideramos importante conocer los lenguajes de programación y el propósito para el que fueron creados.

C++ C++ es un lenguaje imperativo Orientado a objetos derivado del C Propósito general basado en el C Se han añadido nuevos tipos de datos, clases, plantillas, mecanismo de excepciones, sistema de espacios de nombres, sobrecarga de operadores, referencias, operadores para manejo de memoria persistente, y algunas utilidades adicionales de librería

JAVA Propósito general Concurrente Orientado a objetos Diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible.

PYTHON Python es un lenguaje de programación interpretado (permite la compilación expresa a bytecode intermedio) cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma Orientación a objetos Programación imperativa (en menor medida) programación funcional. Es un lenguaje interpretado Usa tipado dinámico Multiplataforma

RUST Rust es un lenguaje poco conocido entre las personas Rust es un lenguaje compilado de propósito general y multi paradigma Desarrollado por mozilla, en el 2006 se tenia la idea en el 2009 se toma el proyecto y finalmente en el 2010 se dio a conocer oficialmente. Rust es un lenguaje que el primer compilador para este programa se desarrollo en Ocaml ( O bjective C ategorical A bstract M achine L anguage. Es un lenguaje de programación avanzado de la familia de los lenguajes ML),ML El segundo compilador para este fue diseñado en el mismo lenguaje lo cual hace pensar que en verdad es muy bueno

ELEMENTOS DEL TRABAJO Y METODOLOGÍA Planteamiento del problema y código fuente

Flavio Josefo fue un historiador romano de origen judío. Durante las guerras judías-romana del siglo I d. C, que estaba en una cueva con otros soldados (40 hombres en total) rodeado de tropas romanas enemigas. Decidieron suicidarse contando cada tercer hombre. Cada uno de ellos designado como tal a suicidarse... Josefo, al no querer morir, logró colocarse en la posición de la última siendo el sobreviviente.

El objeto de la cadena contiene una referencia a una persona (en primer lugar) que no es más que uno de los miembros de una lista enlazada circular. Cada objeto persona tiene una referencia a su anterior y la próxima persona (siguiente) en el círculo. Cuando se inicia el bucle de matanza, se establece un umbral (enésimo). El recuento comienza con 1 a partir de la primera persona. Cada persona cuando se le toque va a gritar, comprueba si el recuento de gritar es menor que el umbral Si es menor, la persona simplemente devuelve un recuento incrementado. Si los dos son iguales, la persona en efecto se suicida. Al hacerlo, la persona, actualiza la referencia siguiente de su anterior, y la referencia anterior de su lado de tomarse a sí mismo fuera del círculo y mantener el círculo constante, volviendo finalmente un grito de 1 (que es lo que la siguiente persona en la lista gritará).

Fig. 1 Código en C++ línea 1-24

Fig. 2. Código en Java línea 1-24

Fig. 3. Código en Python línea 1-33

fn main() { // programa como funcionamiento de calculadora de operaciones básicas // `+` o `-` Sumar y restar por 1 // `*` o `/`multiplicar y dividir por dos let program = "+ + * - /"; let mut accumulator = 0; for token in program.chars() { match token { '+' => accumulator += 1, '-' => accumulator -= 1, '*' => accumulator *= 2, '/' => accumulator /= 2, _ => { /* ignore everything else */ } } println!("The program \"{}\" calculates the value {}", program, accumulator); }

Código fuente Si alguien esta interesado en probar los códigos al final de la exposición Por usb

LenguajeVersion Lineas de codigo tiempo por iteración (microsegundos ) Java Sun JDK C (prerelease) (Ubuntu ubuntu2) Compiled with optimisation - O3 863 Python Resultados del blog java-python-ruby-jython-jruby-groovy/ Todos los resultados se observaron en el bloc de notas con los siguientes sistemas operativos de configuración: Ubuntu Gutsy Gibbon 7.10 Kernel: CPU generic: Intel (R) Core (TM) Duo CPU 2.16GHz RAM: 2 GB

Java y C ++ mas rápidos:  El rendimiento de Java y C ++ fueron más rápidos que Python con una gran diferencia Java es más rápido que C ++:  el rendimiento de C ++ empeoró en casi un 40%

Esto sólo puede ser tratado como un punto de referencia particular. Los resultados son variables según plataforma Se aconseja prudencia al sacar conclusiones generales en base a este punto de referencia. Nota:

[4] Parser. (octubre 23, 2009). Eficiencia Computacional. abril 12, 2016, de blogspot Sitio web: [5]S/A. (julio 8, 2008). Performance Comparison - C++ / Java / Python / Ruby/ Jython / JRuby / Groovy. abril 12, 2016, de /var/log/mind Sitio web: comparison-c-java-python-ruby-jython-jruby-groovy/ [6] Comeau, G.. (2016). El lenguaje C++. abril 12, 2016, de Zator Sitio web: [7] S/A. (abril 5, 2016). Java (lenguaje de programación). abril 12, 2016, de Wikipedia Sitio web: maci%C3%B3n) [8] S/A. (abril 8, 2016). Python. abril 12, 2016, de Wikipedia Sitio web: [1] Prechelt, L. (Marzo 14, 2000). An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl. abril 12, 2016, de Fakult¨at f¨ur Informatik, Universit¨at Karlsruhe Sitio web: berlin.de/prechelt/Biblio/jccpprt_computer2000.pdf [2]Robert. (Octubre 24, 2011). ¿El lenguaje de programación más eficiente? Abril 12, 2016, de Universitat Oberta de Catalunya Sitio web: de-programacion-mas-eficiente/ [3] Tymoschuk, J.. (--). Análisis comparativo de eficiencia de lenguajes de programación. abril 12, 2016, de Universidad Tecnológica Nacional, Facultad Regional Córdoba Sitio web: onfs/5/ DR.pdf