Preguntas y Respuestas

8
Programación en diversos lenguajes Cuaderno 1: Introducción a la programación y sus lenguajes Preguntas: 1. ¿Qué son los lenguajes y de qué tipo pueden ser? 2. ¿Qué es un lenguaje de programación? 3. ¿Qué son los códigos binarios? 4. ¿Cómo surge el concepto de código binario? 5. ¿Que implementa un programa y como se divide el mismo? Defina lo que es un código fuente. 6. ¿Cuales son los pasos para la implementación de un programa ejecutable? 7. ¿Cuales son los pasos para la creación de un programa? Respuestas: 1. Los lenguajes son códigos estructurados que cobran sentido en determinados contextos de uso. Los lenguajes pueden ser naturales o artificiales. Los naturales nos son propios como seres humanos, y cada uno de ellos es el vehículo de comunicación de una determinada cultura; requieren de un aprendizaje en gran medida gobernado por factores innatos y culturales, y de un uso inconsciente en los primeros años de vida. Los artificiales, en cambio, suponen una creación consciente y metódica regida por convenciones arbitrarias establecidas por especialistas. Para utilizarlos y desarrollarlos se requiere un aprendizaje deliberado y planificado. 2. Un lenguaje de programación es un idioma artificial diseñado para expresar cómputos que pueden ser llevados a cabo por las computadoras. Puede usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión o como modo de comunicación humana. Estos lenguajes permiten especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una gran cantidad de

Transcript of Preguntas y Respuestas

Page 1: Preguntas y Respuestas

Programación en diversos lenguajes

Cuaderno 1: Introducción a la programación y sus lenguajes

Preguntas:1. ¿Qué son los lenguajes y de qué tipo pueden ser?2. ¿Qué es un lenguaje de programación?3. ¿Qué son los códigos binarios?4. ¿Cómo surge el concepto de código binario?5. ¿Que implementa un programa y como se divide el mismo? Defina lo que es un código

fuente.6. ¿Cuales son los pasos para la implementación de un programa ejecutable?7. ¿Cuales son los pasos para la creación de un programa?

Respuestas:1. Los lenguajes son códigos estructurados que cobran sentido en determinados contextos

de uso. Los lenguajes pueden ser naturales o artificiales. Los naturales nos son propios como seres humanos, y cada uno de ellos es el vehículo

de comunicación de una determinada cultura; requieren de un aprendizaje en gran medida gobernado por factores innatos y culturales, y de un uso inconsciente en los primeros años de vida.

Los artificiales, en cambio, suponen una creación consciente y metódica regida por convenciones arbitrarias establecidas por especialistas. Para utilizarlos y desarrollarlos se requiere un aprendizaje deliberado y planificado.

2. Un lenguaje de programación es un idioma artificial diseñado para expresar cómputos que pueden ser llevados a cabo por las computadoras. Puede usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión o como modo de comunicación humana.Estos lenguajes permiten especificar de manera precisa sobre qué datos debe operar

una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una gran cantidad de opciones posibles. Todo esto, a través de un lenguaje que intenta ser relativamente próximo al lenguaje humano o natural.

Los lenguajes de programación están formados por un conjunto de símbolos y reglas sintácticas y semánticas específicas que definen su estructura y el significado de sus elementos y expresiones.

3. El código binario es la base de la informática al reducir todas las posibles instrucciones interpretadas por la máquina a un código de unos y ceros (encendido/apagado; sí/no) por el que el microprocesador funciona y ejecuta las órdenes introducidas en él.La unidad mínima de información en el código binario es el bit –el término proviene del

inglés binary digit–. Un bit puede ser un 1 o un 0.

Page 2: Preguntas y Respuestas

4. El concepto de bit está presente en las computadoras desde al menos 1936. En aquella época se utilizaban tarjetas perforadas: unas tarjetas de cartulina que servían para ingresar información e instrucciones en una computadora, que simplemente leía la presencia o ausencia de perforación y establecía un patrón.Pero su utilización con el nombre de bit se llevó a cabo por primera vez en 1948, en un

trabajo académico realizado por Claude E. Shannon, ingeniero y matemático estadounidense, creador de la Teoría Matemática de la Comunicación.

Explicamos que el bit es la unidad mínima de este código y como su nombre lo indica es binario, permite dos combinaciones: 0 o 1. Pero esta unidad mínima permite una secuencia de 8 bits contiguos, a la que se denomina byte.

Aunque este concepto aplicado a la tecnología parece muy limitado, cuando se usa de forma combinada permite representar un sinfín de datos expresados en valores.

Por ejemplo: 00000000, 01010101, 00110011, 00010001, y así en miles de combinaciones posibles.

Es decir que si asignáramos a cada byte un dato, podríamos representar cosas como verde, amarillo, azul y naranja.

Sobre estos principios básicos se desarrollan todos los lenguajes de programación: PHP; Javascript, Phyton y Ruby, entre muchos otros.

5. Un programa generalmente implementa –traduce a un lenguaje de programación concreto– un algoritmo. Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Los programas suelen subdividirse en partes menores denominadas módulos, de forma

que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del problema.

El código fuente de un programa es un conjunto de líneas de texto en las que están expresadas las instrucciones que debe seguir la computadora para ejecutar dicho programa. En el código fuente de un programa está descrito por completo su funcionamiento.

Este código es escrito por un programador en algún lenguaje de programación, pero en este primer estado no es directamente ejecutable por la computadora, sino que debe ser traducido a otro lenguaje –el lenguaje máquina o código objeto– que sí pueda ser ejecutado por el hardware de la computadora.

6. Para la implementación de un programa ejecutable –un típico.exe para Microsoft– se deben llevar adelante dos pasos.

1. CompilaciónEn este paso se traduce un programa escrito en un lenguaje de programación a otro,

generando un programa equivalente que la máquina será capaz de interpretar.2. Enlazado

Es el proceso que une el código de los módulos y bibliotecas que forman un programa para generar el ejecutable final.

Page 3: Preguntas y Respuestas

Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase de compilación en un archivo objeto –un .obj para Microsoft o para Unix– para enlazarlo en fases posteriores o crear directamente el ejecutable.

7. El proceso de creación de un programa, desde el punto de vista de la ingeniería, podría sintetizarse en los siguientes pasos:

1. Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea.2. Recopilar los requisitos del programa para definir qué es lo que debe hacer y para qué se necesita.3. Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer; las pruebas que demuestren la validez del programa se pueden especificar en esta fase.4. Diseñar la arquitectura del programa para descomponerlo en partes de complejidad abordable.5. Implementar el programa, lo que consiste en realizar un diseño detallado, especificando completamente todo su funcionamiento.6. Implantar o instalar el programa es ponerlo en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.).

Page 4: Preguntas y Respuestas

Cuaderno 2: Lenguajes de programación: sus componentes

Preguntas:1. ¿Quién fue la primer programadora de computadora?2. Explique el lenguaje Fortran, Cobol y BASIC.3. Explique lenguajes intermedio, intérprete y traductor. 4. ¿Qué son los lenguajes de alto nivel?5. ¿Qué es sintaxis, semántica y gramática del lenguaje de programación?6. Defina el concepto de Sistema de tipos y explique sus funciones.7. Defina los pasos de la programación estructurada.

Respuestas:1. La primera programadora de computadora reconocida fue Ada Lovelace (1815-1852),

hija de Anabella Milbanke Byron y el poeta Lord Byron. A principios del siglo XIX conoció a Charles Babbage, un inventor inglés y profesor matemático de la universidad de Cambridge, que diseñó –pero nunca construyó– la máquina analítica para ejecutar programas de tabulación, por lo que se lo considera como el “padre” de la computación.Fue Ada Lovelace quien predijo muchas de las teorías actuales al traducir y ampliar una

descripción de la máquina analítica de Babbage, uno de los antecedentes más directos de lo que conocemos como computadora. Como la máquina no llegó nunca a construirse, los programas de Ada lógicamente tampoco llegaron a ejecutarse, pero sí suponen un punto de partida de la programación.

2. El lenguaje Fortran, fue el primero de los lenguajes de programación de alto nivel, que tuvo un gran impacto, incluso comercial, en la emergente comunidad informática.En 1960, se creó COBOL (COmmon Business -Oriented Language, o lenguaje común

orientado a negocios), uno de los lenguajes usados aún hoy en informática de gestión. Respondió al objetivo de contar con un lenguaje de programación universal que pudiera ser usado en cualquier computadora –ya que en los años 1960 existían numerosos modelos incompatibles entre sí– y que estuviera orientado principalmente a los negocios, es decir, a la llamada informática de gestión.

En la década de 1960 las computadoras eran máquinas sumamente caras que se utilizaban únicamente para propósitos especiales, y ejecutaban una sola tarea a la vez. Entonces, a partir de 1980, se crearon los lenguajes de alto nivel, como lo fue BASIC (Beginners All-purpose Symbolic Instruction Codeen, o código de instrucciones simbólicas de propósito general para principiantes) y otras versiones introducidas

3. Para “hablarle” a una computadora es necesario utilizar un lenguaje en particular: el único lenguaje que una computadora entiende se denomina binario y tiene muchos dialectos. Desafortunadamente el lenguaje binario es muy difícil de leer y escribir, por lo cual se

debe utilizar un lenguaje intermedio que después será traducido a binario. Lo que traduce nuestro lenguaje intermediario a binario se denomina intérprete.

Page 5: Preguntas y Respuestas

De la misma manera que es necesario disponer de un intérprete para traducir del inglés al ruso, será necesario disponer de un intérprete también para traducir las órdenes de, por ejemplo, Python a binario.

Los primeros programadores tenían que ingresar los códigos binarios. Esta acción se conoce como programación en código máquina, y es increíblemente compleja. No pasó mucho tiempo hasta que se pudo desarrollar un traductor que simplemente convertía palabras en inglés a su equivalente en código binario.

4. Los lenguajes de alto nivel son actualmente los más utilizados en programación. Aunque no son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos se expresen en un nivel y estilo de escritura fácilmente legible y comprensible por otros programadores. Además, los lenguajes de alto nivel tienen normalmente la característica de

transportabilidad. Es decir, están implementadas sobre varias máquinas de forma que un programa puede ser fácilmente transportado o transferido de una máquina a otra sin una revisión sustancial. En ese sentido se llaman “independientes de la máquina”.

5. Se conoce como sintaxis a la parte visible de un lenguaje de programación. Se define como el conjunto de reglas que deben seguirse al escribir el código fuente de los programas para considerarse como correctos para ese lenguaje de programación.La sintaxis de un lenguaje de programación describe además las combinaciones

posibles de los símbolos que forman un programa sintácticamente correcto. El significado que se le da a una combinación de símbolos es manejado por su semántica.

La sintaxis de los lenguajes de programación se define mediante la utilización de una combinación de expresiones. Veamos como caso esta gramática simple, tomada de Lisp, una familia de lenguajes de programación de computadora de tipo funcional con una larga historia y una sintaxis desarrollada completamente entre paréntesis. Con esta gramática se especifica lo siguiente:

● Una expresión puede ser un átomo o una lista.● Un átomo puede ser un número o un símbolo.● Un número es una secuencia continua de uno o más dígitos decimales,

precedido● opcionalmente por un signo más o un signo menos.● Un símbolo es una letra seguida de cero o más caracteres (excluyendo

espacios).● Una lista es un par de paréntesis que abren y cierran, con cero o más

expresiones● en medio.

Las reglas que determinan el significado de los programas constituyenla semántica de los lenguajes de programación.

6. Un sistema de tipos dota a los lenguajes de la capacidad de restringir los datos que pueden ser asignados a las variables. Esto permite una cierta potencia a la hora de detectar errores y mejora la comprensión del código.

Page 6: Preguntas y Respuestas

Cualquier sistema de tipos tiene sus ventajas y desventajas: mientras que por un lado rechaza muchos programas incorrectos, también prohíbe algunos programas correctos que por alguna razón le resulten desconocidos.

Para sintetizar, el sistema de tipos común realiza las siguientes funciones:● Establece un marco de trabajo que ayuda a permitir la integración entre

lenguajes, la seguridad de tipos y la ejecución de código con alto rendimiento.● Proporciona un modelo orientado a objetos que admite la implementación

completa de muchos lenguajes de programación.● Define reglas que deben seguir los lenguajes, lo que ayuda a garantizar que los

objetos escritos en distintos lenguajes puedan interactuar unos con otros.

7. El concepto de la programación estructurada definió que todos los programas pueden estructurarse en los siguientes pasos:

Secuencias de instruccionesUna estructura de programa es secuencial si se ejecuta una tras otra a modo de secuencia, es decir que una instrucción no se ejecuta hasta que finaliza la anterior.Instrucción condicionalLa estructura selectiva permite la realización de una instrucción u otra según un criterio: solo una de estas instrucciones se ejecutará.Iteración (bucle de instrucciones)Un bucle iterativo o iteración de una secuencia de instrucciones hace que se repitan mientras se cumpla una condición: en un principio el número de iteraciones no tiene por qué estar determinado.

Si bien con esta teoría los programas pueden ser más fáciles de entender, hoy en día las aplicaciones informáticas son mucho más ambiciosas que las necesidades de programación existentes en los años 60 –principalmente debido a las aplicaciones gráficas– por lo que las técnicas de programación estructurada no son suficientes. Ello ha llevado al desarrollo de nuevas técnicas, tales como la programación orientada a objetos y el desarrollo de entornos de programación que facilitan la programación de grandes aplicaciones.