Volver a la portadaTIC e Introducción a la Programación · 11.° grado del Bachillerato en Ciencias · Cambiar asignatura
Empezar gratis
11° BCH · TIC e Introducción a la Programación
Sistemas informáticos · Programación textual

Lenguajes de programación

Su colegio en Danlí quiere una app para que los estudiantes consulten las rutas y los horarios del bus escolar. Dania propone hacerla en Python, Josué en JavaScript y el docente de computación en C. ¿Por qué existen tantos lenguajes y cómo se decide cuál usar? Para responder, primero hay que ver qué hace un lenguaje con lo que usted escribe.

Del código fuente al programa ejecutable

Lo que escribe la persona programadora se llama código fuente. Pero el procesador solo entiende el lenguaje máquina (ceros y unos), así que hace falta una traducción.

Cadena de traducción: el código fuente pasa por un compilador o intérprete y se convierte en programa ejecutable en lenguaje máquina. Código fuente lo escribe la persona Compilador o intérprete Programa ejecutable lo ejecuta la máquina solo el lenguaje máquina (ceros y unos) lo entiende directamente el procesador
Practica★☆☆Sin empezar
Explique con sus palabras qué es un programa y qué es un algoritmo, y ponga un ejemplo de «algoritmo» de la vida diaria (una receta, las instrucciones para llegar a su…

Explique con sus palabras qué es un programa y qué es un algoritmo, y ponga un ejemplo de «algoritmo» de la vida diaria (una receta, las instrucciones para llegar a su casa...) identificando sus pasos.

Resolver
Practica★☆☆Sin empezar
Un lenguaje natural (como el castellano) admite frases ambiguas, pero un lenguaje de programación no. Explique qué significa esto y por qué es imprescindible que las…

Un lenguaje natural (como el castellano) admite frases ambiguas, pero un lenguaje de programación no. Explique qué significa esto y por qué es imprescindible que las instrucciones de un programa tengan una única interpretación posible.

Resolver
Practica★☆☆Sin empezar
La figura muestra la cadena que convierte lo que escribe una persona programadora en algo que la computadora puede ejecutar, pero el elemento central está tapado con un…

La figura muestra la cadena que convierte lo que escribe una persona programadora en algo que la computadora puede ejecutar, pero el elemento central está tapado con un signo de interrogación, como se muestra en la figura.

Código fuente lo escribe la persona ? Programa ejecutable lo ejecuta la máquina

Indique qué elemento falta en la cadena, explique qué dos tipos de herramientas pueden ocupar ese lugar (compilador e intérprete) y describa en qué se diferencia cada una.

Resolver

Compilados e interpretados

Compilado: el compilador revisa todo el código y, si hay un error, no genera ejecutable. Interpretado: el intérprete ejecuta línea a línea y el error aparece al llegar a la línea defectuosa, tras mostrar resultados. Compilado ej.: C, C++ código fuente ✕ errores al compilar compilador ✕ ejecutable no se ejecuta ejecución traduce todo antes de ejecutar · ejecución rápida Interpretado ej.: Python código fuente intérprete línea a línea > 42 > 7 ✕ error ✕ errores al ejecutar traduce y ejecuta línea a línea · ejecución más lenta

Ese código intermedio da portabilidad: se compila una vez y corre en cualquier sistema que tenga la máquina virtual. El costo es una capa más entre el programa y la máquina real, lo que resta algo de velocidad.

Practica★☆☆Sin empezar
Explique qué es el código fuente de un programa, quién lo escribe y qué tiene que ocurrir con él antes de que la computadora pueda ejecutarlo (traducirlo a lenguaje…

Explique qué es el código fuente de un programa, quién lo escribe y qué tiene que ocurrir con él antes de que la computadora pueda ejecutarlo (traducirlo a lenguaje máquina).

Resolver
Practica★★☆Sin empezar
Explique la diferencia entre un lenguaje compilado y uno interpretado: qué ocurre con el código fuente en cada caso, cuándo se detectan los errores y qué necesita el…

Explique la diferencia entre un lenguaje compilado y uno interpretado: qué ocurre con el código fuente en cada caso, cuándo se detectan los errores y qué necesita el usuario final para ejecutar el programa. Ponga un ejemplo de lenguaje de cada tipo.

Resolver
Practica★★☆Sin empezar
Con un lenguaje compilado se genera un ejecutable; con uno interpretado hace falta tener instalado el intérprete. Analice qué diferencia hay para el usuario final de…

Con un lenguaje compilado se genera un ejecutable; con uno interpretado hace falta tener instalado el intérprete. Analice qué diferencia hay para el usuario final de cada programa (qué debe instalar, en qué sistemas funcionará) y qué diferencia hay para la persona que desarrolla (ciclo de escribir-probar).

Resolver

Tipado y paradigmas

Por ejemplo, sumar el número 5 con el texto "hola" es una operación incompatible. Con tipado estático el error se avisa antes de correr el programa; con tipado dinámico aparece solo si se ejecuta esa línea. Detectar errores cuanto antes es mejor: cuesta menos corregirlos y no llegan a manos de quien usa el programa.

Marcado frente a programación

HTML organiza el contenido de una página (títulos, párrafos, imágenes), pero no se considera un lenguaje de programación completo: es un lenguaje de marcado, que describe cómo se estructura la información. No puede expresar decisiones («si pasa esto, haz aquello») ni repeticiones. Por eso suele acompañarse de JavaScript, que aporta la lógica.

Practica★★☆Sin empezar
Los lenguajes se agrupan también por paradigmas (imperativo, orientado a objetos, funcional...). Explique brevemente en qué consiste la programación orientada a objetos…

Los lenguajes se agrupan también por paradigmas (imperativo, orientado a objetos, funcional...). Explique brevemente en qué consiste la programación orientada a objetos y razone por qué resulta útil cuando un programa modela cosas del mundo real (alumnos, cuentas, vehículos...).

Resolver
Practica★★☆Sin empezar
En algunos lenguajes, sumar un número con un texto produce un error antes de ejecutar el programa; en otros, el error aparece solo si se ejecuta esa línea. Explique qué…

En algunos lenguajes, sumar un número con un texto produce un error antes de ejecutar el programa; en otros, el error aparece solo si se ejecuta esa línea. Explique qué es el tipado de un lenguaje (estático o dinámico) y qué ventaja tiene detectar esos errores cuanto antes.

Resolver
Practica★★☆Sin empezar
HTML organiza el contenido de las páginas web, pero no se considera un lenguaje de programación completo. Explique qué diferencia hay entre un lenguaje de marcado y uno…

HTML organiza el contenido de las páginas web, pero no se considera un lenguaje de programación completo. Explique qué diferencia hay entre un lenguaje de marcado y uno de programación (¿se pueden expresar decisiones y repeticiones?) y qué lenguaje suele acompañar a HTML para aportar la lógica.

Resolver

Herramientas, bibliotecas y código abierto

«No reinventar la rueda» es buena práctica: una biblioteca de gráficas o de conexión a bases de datos ya fue probada por muchas personas, ahorra tiempo y reduce errores.

Código abierto y software libre

El código abierto es aquel cuyo código fuente es público: se puede estudiar, modificar y compartir. Se relaciona con el software libre (sus cuatro libertades y licencias como la GPL, o permisivas como MIT). Aunque se parecen, «libre» pone el acento en las libertades de las personas usuarias y open source en las ventajas técnicas del desarrollo abierto. Python, JavaScript y MySQL son ejemplos con herramientas abiertas. Es la cultura del «hágalo usted mismo»: aprender leyendo y adaptando código. Que el código sea abierto no significa que sea de nadie: cada licencia dice qué se puede hacer con él, y respetarla es respetar los derechos de autor.

Comparación: el código abierto es visible y cada persona puede estudiarlo y modificar su copia; la plataforma propietaria es una caja cerrada con candado que depende de un único fabricante. Código abierto código público se puede estudiar y adaptar Plataforma propietaria código cerrado depende de un único fabricante

Una plataforma propietaria puede subir de precio, cambiar condiciones o desaparecer, y quien la usa queda atado a un solo fabricante. Con herramientas abiertas siempre queda la opción de seguir usándolas, adaptarlas o migrar con ayuda de la comunidad.

Practica★☆☆Sin empezar
¿Qué es un entorno de desarrollo (IDE)? Nombre dos ayudas que ofrece a quien programa (coloreado de sintaxis, detección de errores al escribir, ejecución integrada) y…

¿Qué es un entorno de desarrollo (IDE)? Nombre dos ayudas que ofrece a quien programa (coloreado de sintaxis, detección de errores al escribir, ejecución integrada) y explique cada una en una frase.

Resolver
Practica★★☆Sin empezar
Las bibliotecas (o librerías) son colecciones de código ya hecho que un programa puede usar. Explique por qué «no reinventar la rueda» es una buena práctica, con un…

Las bibliotecas (o librerías) son colecciones de código ya hecho que un programa puede usar. Explique por qué «no reinventar la rueda» es una buena práctica, con un ejemplo (librería de gráficos, de conexión a bases de datos), y un cuidado que hay que tener al usar bibliotecas de terceros.

Resolver
Practica★★★Sin empezar
Una empresa emergente (startup) diseña una aplicación para gestionar estaciones meteorológicas. El equipo duda entre dos opciones técnicas para su backend: Opción A,…

Una empresa emergente (startup) diseña una aplicación para gestionar estaciones meteorológicas. El equipo duda entre dos opciones técnicas para su backend: Opción A, utilizar una plataforma y lenguaje propietarios cuya licencia cuesta 450 lempiras al año por desarrollador, con soporte técnico cerrado; u Opción B, utilizar un lenguaje y herramientas de código abierto con licencia libre y comunidad activa. Analice la situación: a) Si el proveedor de la Opción A triplica el precio de la licencia o es absorbido por un competidor que discontinúa el producto, prediga qué opciones técnicas le quedarían a la empresa y qué impacto sufriría. b) Justifique dos ventajas técnicas y de seguridad que aporta la Opción B frente a la Opción A ante la detección de un fallo crítico en una librería. c) ¿En qué caso concreto podría estar justificado asumir la dependencia de la plataforma propietaria?

Resolver

Elegir el lenguaje adecuado

Scratch y otros lenguajes de bloques son ideales para empezar: no hay errores de sintaxis porque los bloques solo encajan si es válido. Pero los proyectos grandes se escriben en texto: es más rápido, permite versionar y compartir código, y admite bibliotecas y herramientas profesionales.

Tres proyectos y su prioridad: un gráfico de barras para analizar datos, un cubo 3D con un indicador de velocidad para un videojuego y una ventana de navegador con código para una web interactiva. Datos Videojuego 3D Web interactiva bibliotecas de análisis prioridad: ecosistema lenguaje compilado prioridad: rendimiento ‹/› corre en el navegador prioridad: plataforma

Un ejemplo de lenguajes y ámbitos (Arduino se programa en C++): Python (análisis de datos, automatización), JavaScript (web), C y C++ (sistemas, videojuegos, microcontroladores), Java (apps y sistemas empresariales), PHP (servidores web), SQL/MySQL (bases de datos).

Una nota sobre rendimiento: el mismo algoritmo (por ejemplo, búsqueda binaria) hace las mismas comparaciones lógicas en Python y en C. Lo que cambia es el costo de ejecutar cada paso (interpretación frente a código máquina directo), no la lógica. Por eso un tiempo menor no significa un algoritmo distinto.

Practica★☆☆Sin empezar
Nombre tres lenguajes de programación diferentes y una aplicación o ámbito típico de cada uno (páginas web, análisis de datos, videojuegos, sistemas, apps...).

Nombre tres lenguajes de programación diferentes y una aplicación o ámbito típico de cada uno (páginas web, análisis de datos, videojuegos, sistemas, apps...).

Resolver
Practica★★☆Sin empezar
Elija y justifique un lenguaje para cada proyecto: (a) analizar las notas de todo el colegio y generar gráficas, (b) un videojuego 3D con grandes exigencias de…

Elija y justifique un lenguaje para cada proyecto: (a) analizar las notas de todo el colegio y generar gráficas, (b) un videojuego 3D con grandes exigencias de rendimiento y (c) una página web interactiva que se ejecuta en el navegador. Indique qué criterio ha pesado más en cada elección.

Resolver
Practica★★★Sin empezar
Un colegio renueva el equipamiento de su aula de Tecnología y valora dos opciones para programar los microcontroladores de sus proyectos: el Entorno A, un software…

Un colegio renueva el equipamiento de su aula de Tecnología y valora dos opciones para programar los microcontroladores de sus proyectos: el Entorno A, un software comercial propietario con licencia gratuita durante dos años, pero de código cerrado y compatible solo con los sensores de su marca; y el Entorno B, una cadena de herramientas de código abierto (compilador libre y librerías abiertas) compatible con múltiples placas del mercado. a) Prediga qué consecuencias económicas y técnicas afrontará el colegio al tercer año si el proveedor del Entorno A cambia su política de precios o retira el soporte a los modelos más antiguos. b) Justifique qué posibilidades de aprendizaje y adaptación ofrece el Entorno B para que los estudiantes estudien cómo funciona el código por dentro o conecten sensores descatalogados. c) Desde el punto de vista del gasto público y la soberanía tecnológica, defienda cuál de las dos opciones debe elegirse.

Resolver

Vuelva al principio: para la app de horarios del bus escolar lo que pesa es que corra en el celular de cualquiera, así que una web con JavaScript es lo más razonable. Un lenguaje traduce sus instrucciones a lo que ejecuta el procesador, y existen cientos porque ninguno ofrece a la vez máxima velocidad, facilidad para aprender y compatibilidad con todo.

Resumen

Ver todos los ejercicios de este apartado