1. INVESTIGACIÓN
Forma de entrega:
En pareja máximo
Transcrito a mano puede utilizar, lápiz o bolígrafo
En hoja tamaño carta preferiblemente sin carpeta o carpeta de manila
No Colocar portada, Identificar con el nombre, la cédula y la sección a la que pertenecen
No colocar hoja en blanco al principio
Fecha de entrega: 01/11/2010
25% menos al que no entregue a la fecha
El informe de poseer mínimo 3 hojas y máximo 5 hojas
1.-Nombrar y explicar la función de 5 lenguajes de programación (en que se enfoca), fecha de creación, por
quién fué desarrollado el lenguaje, los lenguajes deben ser para el software privativo y su equivalencia en
Software libre. (Puede ser en cuadro si lo desea).
Java se creó como una herramienta de programación para ser usada en un proyecto de set-top-box en una pequeña operación
denominada the Green Project en Sun Microsystems en el año 1991. El equipo (Green Team), compuesto por trece personas
y dirigido por James Gosling, trabajó durante 18 meses en Sand Hill Road en Menlo Park en su desarrollo.
1) Java es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems a principios de
los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos
más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación
directa de punteros o memoria.
La implementación original y de referencia del compilador, la máquina virtual y las bibliotecas de clases de Java fueron
desarrollados por Sun Microsystems en 1995. Desde entonces, Sun ha controlado las especificaciones, el desarrollo y
evolución del lenguaje a través del Java Community Process, si bien otros han desarrollado también implementaciones
alternativas de estas tecnologías de Sun, algunas incluso bajo licencias de software libre.
2) Visual Basic Microsoft es un lenguaje de programación desarrollado por Alan Cooper para Microsoft. El
lenguaje de programación es un dialecto de BASIC, con importantes añadidos. Su primera versión fue
presentada en 1991 con la intención de simplificar la programación utilizando un ambiente de desarrollo
completamente gráfico que facilitara la creación de interfaces gráficas y en cierta medida también la
programación misma.
La última versión fue la 6, liberada en 1998, para la que Microsoft extendió el soporte de este lenguaje hasta marzo de 2008.
En 2001 Microsoft propuso abandonar el desarrollo basado en la API Win32 y pasar a un framework o marco común de
librerías, independiente de la versión del sistema operativo, .NET Framework, a través de Visual Basic .NET (y otros
lenguajes como C Sharp (C#) de fácil transición de código entre ellos); fue el sucesor de Visual Basic 6.
Si bien Visual Basic es de propósito general, también permite el desarrollo de aplicaciones de bases de datos usando Data
Access Objects, Remote Data Objects, o ActiveX Data Objects.
Visual Basic (Visual Studio) contiene un entorno de desarrollo integrado o IDE que incluye un editor de textos para edición
del código, un depurador, un compilador (y enlazador) y un constructor de interfaz gráfica o GUI.
3) Python es un lenguaje de programación de alto nivel cuya filosofía hace hincapié en una sintaxis muy limpia
y que favorezca un código legible. Python fue creado a finales de los ochenta3 por Guido van Rossum en
el National Research Institute for Mathematics and Computer Science (CWI), en los Países Bajos, como un
sucesor del lenguaje de programación ABC, capaz de manejar excepciones e interactuar con el sistema
operativo Amoeba. El nombre del lenguaje proviene de la afición de su creador original, Guido van Rossum, por
los humoristas británicos Monty Python. Características del lenguaje
Propósito general
Se pueden crear todo tipo de programas. No es un lenguaje creado específicamente para la web, aunque entre sus
2. posibilidades sí se encuentra el desarrollo de páginas.
Multiplataforma
Hay versiones disponibles de Python en muchos sistemas informáticos distintos. Originalmente se desarrolló para Unix,
aunque cualquier sistema es compatible con el lenguaje siempre y cuando exista un intérprete programado para él.
Interpretado
Quiere decir que no se debe compilar el código antes de su ejecución. En realidad sí que se realiza una compilación, pero
esta se realiza de manera transparente para el programador. En ciertos casos, cuando se ejecuta por primera vez un código,
se producen unos bytecodes que se guardan en el sistema y que sirven para acelerar la compilación implícita que realiza el
intérprete cada vez que se ejecuta el mismo código.
Interactivo
Python dispone de un intérprete por línea de comandos en el que se pueden introducir sentencias. Cada sentencia se ejecuta
y produce un resultado visible, que puede ayudarnos a entender mejor el lenguaje y probar los resultados de la ejecución de
porciones de código rápidamente.
Orientado a Objetos
La programación orientada a objetos está soportada en Python y ofrece en muchos casos una manera sencilla de crear
programas con componentes reutilizables.
Funciones y librerías
Dispone de muchas funciones incorporadas en el propio lenguaje, para el tratamiento de strings, números, archivos, etc.
Además, existen muchas librerías que podemos importar en los programas para tratar temas específicos como la
programación de ventanas o sistemas en red o cosas tan interesantes como crear archivos comprimidos en .zip.
Sintaxis clara
Por último, destacar que Python tiene una sintaxis muy visual, gracias a una notación identada (con márgenes) de obligado
cumplimiento. En muchos lenguajes, para separar porciones de código, se utilizan elementos como las llaves o las palabras
clave begin y end. Para separar las porciones de código en Python se debe tabular hacia dentro, colocando un margen al
código que iría dentro de una función o un bucle. Esto ayuda a que todos los programadores adopten unas mismas
notaciones y que los programas de cualquier persona tengan un aspecto muy similar.
4) PHP es un lenguaje de programación interpretado, diseñado originalmente para la creación de páginas
web dinámicas. Fue creado originalmente por Rasmus Lerdorf en 1994; sin embargo la implementación
principal de PHP es producida ahora por The PHP Group y sirve como el estándar de facto para PHP al no
haber una especificación formal. Publicado bajo la PHP License, la Free Software Foundation considera esta
licencia como software libre. Una de las herramientas mas importantes en cualquier lenguaje de programación son las
funciones. Una función consiste en un conjunto de rutinas y acciones que a lo largo del script van a ser ejecutadas multitud
de veces agrupados en una FUNCION y desde cualquier punto del script puede ser llamada y ejecutada. A su vez, esta
función puede recibir parámetros externos de los cuales dependa el resultado de una función.
5) C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La
intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan
la manipulación de objetos.
Principios
Todo programa en C++ debe tener la función main() (a no ser que se especifique en tiempo de compilación otro punto de
entrada, que en realidad es la función que tiene el main())
int main()
{}
La función main debe tener uno de los siguientes prototipos:
int main()
int main(int argc, char** argv)
int main(int argc, char** argv, char** env)
La primera es la forma por omisión de un programa que no recibe parámetros ni argumentos. La segunda forma tiene dos
parámetros: argc, un número que describe el número de argumentos del programa (incluyendo el nombre del programa
mismo), y argv, un puntero a un array de punteros, de argc elementos, donde el elemento argv[i] representa el i-ésimo
3. argumento entregado al programa. En el tercer caso se añade la posibilidad de poder acceder a las variables de entorno de
ejecución de la misma forma que se accede a los argumentos del programa, pero reflejados sobre la variable env.
El tipo de retorno de main es int. Al finalizar la función main, debe incluirse el valor de retorno (por ejemplo, return
0;, aunque el estándar prevé solamente dos posibles valores de retorno: EXIT_SUCCESS y EXIT_ERROR, definidas en el
archivo cstddef), o salir por medio de la función exit. Alternativamente puede dejarse en blanco, en cuyo caso el
compilador es responsable de agregar la salida adecuada.
[editar] El concepto de clase
Véase también: Clase (informática)
Los objetos en C++ son abstraídos mediante una clase. Según el paradigma de la programación orientada a objetos un
objeto consta de:
1. Métodos o funciones
2. Atributos o Variables Miembro
Un ejemplo de clase que podemos tomar es la clase perro. Cada perro comparte unas características (atributos). Su número
de patas, el color de su pelaje o su tamaño son algunos de sus atributos. Las funciones que lo hagan ladrar, cambiar su
comportamiento... esas son las funciones de la clase.
2.- Definir los siguientes conceptos:
a) Completitud
Propiedad de un sistema lógico por la que cualquier expresión cerrada es derivable o refutable dentro del
mismo sistema
b) Semántica denotacional
Dar una semántica denotacional para un lenguaje consiste en definir funciones de valoración semántica que
asignan a cada elemento del lenguaje un objeto matemático (como un conjunto) que modele su significado.
Define la funcion que computa el programa, pero sin ocuparse de la forma en que lo hace. Tiene un nivel de
abstraccion mayor que el de la semantica operacional y esto permite estudiar propiedades formales de los
programas como, por ejemplo, las equivalencias que pueda haber entre ellos.
c) Semántica axiomática
Este tipo de semántica suele definirse para lenguajes en los que la ejecución del programa se basa en cambios
de las variables de estado, por ello este enfoque no es adecuado para los lenguajes funcionales. Se define por
medio de un conjunto de axiomas que definen las propiedades de un sistema e indican cuando son verificadas
por la ejecucion de un programa.
d) Semántica operacional
Describe el significado del lenguaje especificando como se ejecuta un programa en una maquina abstracta.
Básicamente esta semántica se centra en conocer el resultado que genera el programa y el modo en que este
resultado es obtenido.
Puede estar basado en una maquina abstracta concreta o en una genérica. Son útiles, sobre todo, en la
implementación de los lenguajes.
3.- Nombre y Explique los criterios de diseño de los lenguajes de programación.
4. Concisión notacional: el lenguaje proporciona un marco conceptual para pensar algoritmos y expresar dichos
algoritmos con el nivel de detalle adecuado.
Ortogonalidad. Dos características de un lenguaje son ortogonales si pueden ser comprendidas y combinadas
de forma independiente, asi el lenguaje es más sencillo de comprender
Abstracción. El lenguaje debe evitar forzar a los programadores a tener que enunciar algo más de una vez.
Seguridad. La fiabilidad de los poductos software es cada vez más importante. Lo ideal es que los programas
incorrectos no pertenezcan al lenguaje y sean rechazados por el compilador.
Expresividad. El programador debe poder expresar sus intenciones. En ocasiones, demasiada expresividad
puede implicar falta de seguridad.
Extensiblidad. El lenguaje debe facilitar mecanismos para que el programador pueda aumentar la capacidad
expresiva del lenguaje añadiendo nuevas construcciones.
Portabilidad. El lenguaje debe facilitar la creación de programas que funcionen en el mayor número de
entornos computacionales.
Eficiencia. El programador debe poder expresar algoritmos suficientemente eficientes o el lenguaje debe
incorporar técnicas de optimización de los programas escritos en él.
• Librerías e interacción con el exterior. La inclusión de un conjunto de librerías que facilita el rápido
desarrollo de aplicaciones es una componente esencial de la popularidad de los lenguajes.
Entorno. Aunque el entorno no forma parte del lenguaje, muchos lenguajes débiles técnicamente son
ampliamente utilizados debido a que disponen de un entorno de desarrollo potente o agradable.
1.3. CRITERIOS DE DEFINICIÓN Y DISEÑO DE LENGUAJES
• Ortogonalidad
Contemplar todas las combinaciones posibles de un conjunto de características de un lenguaje, dotándolo de un grado de
generalidad tal que excluya las restricciones o los casos especiales. Como una muestra de carencia de ortogonalidad en
Pascal, el tipo de un parámetro formal no puede ser anónimo, es decir, no es posible declararlo explícitamente como, por
ejemplo,
procedure noort(var a : array[1..10] of real);
debiéndose declarar
procedure noort(var a : A);
después de la declaración global
type A = array[1..10] of real;
• Claridad sintáctica
Permitir que las diferencias semánticas se manifiesten en diferencias sintácticas.
• Orientación
Proveer una sintaxis comprometida con la orientación del lenguaje.
• Extensión
Facilitar la implementación de estructuras inexistentes en función de las existentes.
• Portabilidad
Proveer una definición del lenguaje independiente de las características de una máquina en particular.
• Eficiencia
" En traducción
" En ejecución
" En construcción