0% encontró este documento útil (0 votos)
62 vistas6 páginas

Practica 1

Este documento resume los lenguajes de programación más representativos de diferentes períodos entre 1951 y 2000, destacando las nuevas características incorporadas en cada uno. Entre 1951-1955 los lenguajes eran principalmente de tipo assembly. Entre 1966-1970 surgieron lenguajes funcionales como APL y LISP, y lenguajes de propósito general como PL/I. Entre 1971-1975 se introdujeron conceptos como tipado fuerte, modularización y programación lógica.

Cargado por

Leo Torrens
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
62 vistas6 páginas

Practica 1

Este documento resume los lenguajes de programación más representativos de diferentes períodos entre 1951 y 2000, destacando las nuevas características incorporadas en cada uno. Entre 1951-1955 los lenguajes eran principalmente de tipo assembly. Entre 1966-1970 surgieron lenguajes funcionales como APL y LISP, y lenguajes de propósito general como PL/I. Entre 1971-1975 se introdujeron conceptos como tipado fuerte, modularización y programación lógica.

Cargado por

Leo Torrens
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Ejercicio 1: Los lenguajes de programación más representativos son:

1951 - 1955: Lenguajes tipo assembly


1966 - 1970: APL, FORTRAN 66, BASIC, PL/I, SIMULA 67, ALGOL-W
1971 - 1975: Pascal, C, Scheme, Prolog
1976 - 1980: Smalltalk, Ada, FORTRAN 77, ML
1981 - 1985: Smalltalk 80, Turbo Pascal, Postscript
1986 - 1990: FORTRAN 90, C++, SML
1991 - 1995: TCL, PERL, HTML
1996 - 2000: Java, Javascript, XML
Indique para cada uno de los períodos presentados cuales son las características
nuevas que se incorporan y cual de ellos la incorpora.

1951 - 1955: Lenguajes tipo assembly


● Fortran introdujo modularidad via separación entre desarrollo y compilación de
subprogramas y la posibilidad de compartir datos mediante un ambiente común.
● Algol 60 introdujo el concepto de estructuras de bloque y procedimientos recursivos.
● Cobol introduce archivos y descripción de datos, y una muy preliminar noción de
programar en lenguaje casi natural.
1966 - 1970: APL, FORTRAN 66, BASIC, PL/I, SIMULA 67, ALGOL-W
● LISP está basado en la teoría de las funciones recursivas y el cálculo lambda e
introdujo un nuevo tipo de lenguajes llamados “lenguajes funcionales”(o aplicativos),
además de ser libre de los conceptos de máquinas von neumann. Una importante
contribución de es su énfasis en la computación simbólica.
● APL es otro lenguaje funcional. Con una gran cantidad de operadores, sobre todo
con el manejo de arreglos, lo que abstrae al programador de usar operadores de
bajo nivel.
● PL/I: fue diseñado para integrar los mejores aspectos y conceptos originales de los
lenguajes previos en un lenguaje realmente de propósito general
● ALGOL: las características del lenguaje se pueden componer de manera libre,
uniforme y sin interferencia con efectos predecibles.
● SIMULA 67: además de proveer una forma primitiva de ejecución paralela, introduce
el concepto de clases, un mecanismo de modularización que permite agrupar un
conjunto de rutinas relacionadas
1971 - 1975: Pascal, C, Scheme, Prolog
● C: algunas de las características introducidas son los tipos de datos abstractos y los
módulos de control de visibilidad, tipado fuerte y chequeo estático del programa,
relación entre la construcción del lenguaje y las pruebas formales de exactitud,
módulos genéricos, manejo de excepciones, concurrencia, comunicación entre
procesos y sincronización.
● Pascal se concibe como un lenguaje de aprendizaje. En general, extiende los
conceptos de modularización y soporte a características para orientación a objetos
para el desarrollo de programas grandes y reutilizables.
● Prolog: introduce un nuevo tipo de lenguajes de programación: “lenguajes de
programación lógica”.
1976 - 1980: Smalltalk, Ada, FORTRAN 77, ML
● fortran se introduce como un lenguaje de alto nivel a modo de alternativa del
lenguaje ensamblador. con sus sucesivas versiones, proporciona un lenguaje mas
evolucionado que mantiene la compatibilidad con las versiones previas.
● ML: La importante contribución conceptual de ML fue mostrar que los lengu
● ajes de programación pueden ser muy poderosos desde el punto de vista
computacional y, sin embargo, pueden preservar la capacidad de probar la ausencia
de ciertos tipos de errores sin ejecutar programas.
● el exito smalltalk llevo la programación orientada a objetos a la fama.
1981 - 1985: Smalltalk 80, Turbo Pascal, Postscript
1986 - 1990: FORTRAN 90, C++, SML
● el desarrollo de C++ permitió implantar la orientación a objetos en un lenguaje
exitoso y ampliamente disponible como C.
● fortran 90 añade programacion modular y orientación a objetos al lenguaje.
1991 - 1995: TCL, PERL, HTML
● TCL fue creado como un lenguaje de comandos reutilizable.
1996 - 2000: Java, Javascript, XML

Ejercicio 2: Escriba brevemente la historia del lenguaje de programación que eligió en la


encuesta u otro de su preferencia.

Ejercicio 3: ¿Qué atributos debería tener un buen lenguaje de programación? Por


ejemplo, ortogonalidad, expresividad, legibilidad, simplicidad, etc. De al menos un
ejemplo de un lenguaje que cumple con las características citadas.

● Simplicidad y Legibilidad: los lenguajes de programación deberían poder producir


programas fáciles de escribir y de leer, y resultar fáciles a la hora de aprenderlo o
enseñarlo.
● Claridad en los Bindings: los elementos de los lenguajes de programación pueden
ligarse a sus atributos o propiedades en diferentes momentos (definición del
lenguaje, implementación del lenguaje, en escritura del programa, compilación,
cargado del programa, en ejecución). La ligadura en cualquier caso debe ser clara.
● Confiabilidad: está relacionada con la seguridad. Chequeo de tipos: cuanto antes
se encuentren los errores menos costoso resulta realizar los arreglos que se
requieran. Manejo de excepciones: la habilidad para interceptar errores en tiempo de
ejecución, tomar medidas correctivas, y continuar.
● Soporte: debería ser accesible para cualquiera que quiera usarlo o instalarlo. Lo
ideal sería que su compilador o intérprete sea de dominio público. Debería poder ser
implementado en diferentes plataformas. Debería existir diferentes medios para
poder familiarizarse con el lenguaje: tutoriales, cursos textos, etc.
● Abstracción: capacidad de definir y usar estructuras u operaciones complicadas de
manera que sea posible ignorar muchos de los detalles. Abstracción de procesos y
de datos.
● Ortogonalidad: Significa que un conjunto pequeño de constructores primitivos,
puede ser combinado en número relativamente pequeño a la hora de construir
estructuras de control y datos. Cada combinación es legal y con sentido.
● Eficiencia: referido a la relación entre el tiempo de ejecucion, el espacio de
alocacion en memoria, el esfuerzo humano requerido y la posibilidad de
optimización.

Ejercicio 4: Tome uno o dos lenguajes de los que ud. Conozca y


● Describa los tipos de expresiones que se pueden escribir en el/ellos
● Describa las facilidades provistas para la organización del programa
● Indique cuáles de los atributos del ejercicio anterior posee el/los lenguaje/s elegidos y
cuáles no posee, justifique en cada caso

PHP:
● Tipos de expresiones:
○ expresiones aritméticas: suma,resta, negación, multiplicación, división,
módulo, exponenciación.
○ expresiones relacionales: mayor,menor, mayor igual, menor igual, igual,
diferente.
○ expresiones lógicas: conjunción, disyunción, negación.
○ expresiones de asignación: Su función consisten en evaluar una expresión
para calcular su valor y asignar ese valor a una variable
● Facilidades para la organización del programa:
○ preguntar
○ se refiere a la utilización de clases, archivos, etc?
● Características:
○ php es simple pero la legibilidad depende del programador.
○ gran soporte, comunidad y guias de aprendizaje.
○ permite un alto grado de abstraccion.
○ tiene un alto grado de ortogonalidad, por ej, entre expreciones y uso de
variables.

Lenguajes - ADA
Ejercicio 5: Describa las características más relevantes de Ada, referida a:
● Tipos de datos
○ ada tiene seis tipos de datos basicos: integer, natural, positive, float,
character, string. tambien tiene objetos y tipos avanzaso de datos.
● Tipos abstractos de datos – paquetes: ada permite tipos abstractos de datos
encapsulados en un módulo que no permite el acceso directo a los detalles de su
implementación.
● Estructuras de datos: ada posee estructuras de datos ¿estaticas? como arreglo
● s, y permite la creacion de estructuras dinamicas mediante el uso de punteros.
● Manejo de excepciones: ada provee de un sistema para la captura y manejo de
excepciones con un criterio de terminacion con propagacion dinamica. existen
excepciones basicas, pero pueden definirse nuevas.
● Manejo de concurrencia: existen tres formas de manejo de concurrencia:
sincronizacion, señalizacion y comunicacion. utiliza una concurrencia distribuida,
osea que los threads se comunican mediante mensajes.

Lenguajes - JAVA
Ejercicio 6: Diga para qué fue, básicamente, creado Java.¿Qué cambios le
introdujo a la Web? ¿Java es un lenguaje dependiente de la plataforma en dónde se
ejecuta? ¿Porqué?
Fue diseñado específicamente para tener tan pocas dependencias de implementación como
fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el
programa una vez y lo ejecuten en cualquier dispositivo (conocido en inglés como WORA, o
"write once, run anywhere"), lo que quiere decir que el código que es ejecutado en una
plataforma no tiene que ser recompilado para correr en otra.
Desde la primera versión de Java existe la posibilidad de desarrollar pequeñas aplicaciones
(Applets) en Java que luego pueden ser incrustadas en una página HTML para que sean
descargadas y ejecutadas por el navegador web. Estas miniaplicaciones se ejecutan en una
JVM que el navegador tiene configurada como extensión (plug-in) en un contexto de
seguridad restringido configurable para impedir la ejecución local de código potencialmente
malicioso.
La independencia de la plataforma, significa que programas escritos en el lenguaje Java
pueden ejecutarse igualmente en cualquier tipo de hardware. Este es el significado de ser
capaz de escribir un programa una vez y que pueda ejecutarse en cualquier dispositivo, tal
como reza el axioma de Java, "write once, run anywhere".

Ejercicio 7: ¿Sobre cuales lenguaje está basado?


● java esta basado en C y C++, pero posee menos utilidades de bajo nivel.

Ejercicio 8: ¿Qué son los applets? ¿Qué son los servlets?


● Los servlets son módulos java que se ejecutan en un servidor.
● Un applet java es un componente de la aplicación que corre en el contexto de otra
aplicación. pueden ejecutarse en un navegador sobre la JVM.

Lenguajes - C

Ejercicio 9: ¿Cómo es la estructura de un programa escrito en C? ¿Existe


anidamiento de funciones?
En general, un programa en C suele estar compuesto de tres partes:
● el encabezamiento, que especifica las declaraciones globales de los datos y sus
tipos, que vamos a manejar a lo largo del programa;
● la función principal, que se suele llamar main, y define la estructura del programa.
● las funciones o subrutinas auxiliares, que realizan las operaciones necesarias; son
llamadas por la rutina principal, la función main. Se suelen colocar después de esta
función.
No existe el anidamiento de funciones en C.
Ejercicio 10: Describa el manejo de expresiones que brinda el lenguaje.

Hay tres tipos de expresiones:


● Valores por la izquierda o lvalue (left value). Al evaluarlas devuelven la dirección de
un cierto dato, que nos permitir acceder al mismo para inicializarlo, modificarlo, etc.
Se llaman así porque son las expresiones que normalmente se colocan en el lado
izquierdo del = en una expresión de asignación. Suelen ser nombres de variables,
elementos de un arreglo, etc.
● Valores por la derecha o rvalue (right value). Al evaluarlas obtenemos un dato de
cierto tipo. Normalmente son las expresiones que se colocan a la derecha del = en la
asignación. Ejemplos de ellos son los contenidos de las variables, los datos
contenidos en los arreglos y los valores constantes.
● Llamada a una función. Si la función no es de tipo void, al llamarla devolver un dato.
Este dato puede ser usado como una expresión del tipo valor por la derecha.

Lenguajes - Python - RUBY - PHP

Ejercicio 11: ¿Qué tipo de programas se pueden escribir con cada uno de estos
lenguajes?
¿A que paradigma responde cada uno?
● phyton: Multiparadigma: orientado a objetos, imperativo, funcional, reflexivo.
● ruby: multiparadigma: orientado a objetos, reflexivo.
● php: Multiparadigma: imperativo, funcional, orientado a objetos, procedural, reflexivo
¿Qué características determinan la pertenencia a cada paradigma?
● La programación imperativa describe la programación en términos del estado del
programa y sentencias que cambian dicho estado. Los programas imperativos son
un conjunto de instrucciones que le indican al computador cómo realizar una tarea.
● La programación funcional es un paradigma de programación declarativa basado
en el uso de funciones matemáticas que enfatiza los cambios de estado mediante la
mutación de variables.
● La programación procedimental o programación por procedimientos es un
paradigma de la programación que consiste en basarse de un número muy bajo de
expresiones repetidas, englobarlas todas en un procedimiento o función y llamarlo
cada vez que tenga que ejecutarse.
● La programación orientada a objetos es un paradigma de programación en el cual
los objetos manipulan los datos de entrada para la obtención de datos de salida
específicos, donde cada objeto ofrece una funcionalidad especial.
● la programacion reflexiva es la capacidad que tiene un programa para observar y
opcionalmente modificar su estructura de alto nivel.
Ejercicio 12: Cite otras características importantes de Python, Ruby, PHP,
Gobstone y Processing. Por ejemplo: tipado de datos, como se organizan los
programas, etc

ruby y phyton son fuertemente tipados, con tipado dinamico. mientras que php es tiene
tipado dinamico pero es debilmente tipado.
Todos son multiplataforma(aunque php es para windows y sistemas tipo unix).

También podría gustarte