Aprende cómo funciona y qué hace un Compilador

Vas a aprender lo que es un Compilador y en qué consiste exactamente el Proceso de Compilación

Estás empezando a dar tus primeros pasos en el mundo de la Programación y no acabas de entender lo que es un Compilador o en qué consiste exactamente el Proceso de Compilación.

Pues bien, ahora que comienzas desde cero, es el momento que establezcas unas bases sólidas sobre las que cimentar todos los conocimientos que te van a permitir convertirte en Programador de Apps para iPhone. Es por ello que te comparto un nuevo contenido dedicado a los fundamentos de las Ciencias de la Computación.

Lenguajes de Programación

Ya te he hablado en otros contenidos de los Lenguajes de Programación, y viste que en esencia, un Lenguaje de Programación es el Idioma con el que nos comunicamos con un ordenador para indicarle las tareas que queremos que realice.

Los Lenguajes de Programación se caracterizan por tener una sintaxis parecida a un Idioma Humano (principalmente en Inglés) junto con unas reglas bien definidas que te permiten dar órdenes a un ordenador en forma de algoritmos.

Lenguajes de Programación de Alto Nivel

En base a lo que te he contado, podemos concluir que un Lenguaje de Programación es un sistema estructurado de comunicación entre los humanos y los ordenadores. Y como este sistema de comunicación se aproxima en gran medida a la forma en que lo hacen los humanos entre sí, diremos que estos Lenguajes de Programación son de Alto Nivel.

Lenguajes de Programación de Bajo Nivel

Hasta aquí todo parece sencillo ¿verdad?, pero hay que tener en cuenta que el lenguaje nativo que realmente entiende un ordenador o cualquier dispositivo electrónico, es el llamado Lenguaje Binario, el cual consiste en cadenas de 0 y 1 agrupadas de diversas formas, las cuales representan las tareas que puede llevar a cabo el ordenador. En este caso diríamos que el Lenguaje Binario es un Lenguaje de Bajo Nivel ya que está más cercano al Hardware de nuestro dispositivo electrónico.

El Compilador

Entonces, ¿Cómo conseguimos que el código que hemos escrito con nuestro Lenguaje de Alto Nivel se transforme en el Lenguaje de Bajo Nivel del dispositivo para el que estamos programando?

Pues bien, aquí es donde entra en juego el Compilador, una de las herramientas que incluye tu Entorno de Desarrollo Integrado, en nuestro caso Xcode, el cual se encargará de procesar el código fuente que escribes con un determinado Lenguaje de Programación, en tu caso Swift, y lo traduce al lenguaje nativo del dispositivo para el que estás programando, de manera que finalmente se ejecute tu App en el iPhone u otro dispositivo.

Si no existieran los Compiladores, tendrías que escribir tu Programa directamente en Lenguaje Binario utilizando únicamente ceros y unos. ¿Te imaginas tener que programar de esa manera? Te puedo asegurar que además de causarte un gran dolor de cabeza, sería prácticamente imposible hacerlo. Es por ello que la invención de los Lenguajes de Programación y los Compiladores supuso uno de los hitos más importantes en la historia de la computación.

El Compilador procesa el Código Fuente que hemos escrito con nuestro Lenguaje de Alto Nivel y lo traduce al Lenguaje de Bajo Nivel del dispositivo para el que estamos programando

Ejemplo práctico

Te propongo ver un ejemplo práctico para ayudarte a entender mejor el funcionamiento de un Compilador. Para ello te voy a compartir el Código Fuente de una Aplicación muy sencilla que ya he utilizado en otras ocasiones, la cual presenta tres botones en la pantalla con el objetivo de mostrar un mensaje distinto dependiendo del botón que pulsemos.

El objetivo ahora no es que entiendas la sintaxis ni el funcionamiento de este Código Fuente. Lo que pretendo es que veas que un Lenguaje de Programación utiliza palabras en inglés o sus abreviaturas, y que se pueden dar instrucciones de manera similar a un idioma humano. A esto me refería antes cuando te he dicho que se trata de un Lenguaje de Programación de Alto Nivel.

Por ejemplo, puedo indicar que quiero un color de fondo rojo con tan solo asignar el valor red en la instrucción adecuada.

En este momento es cuando tu Entorno de Desarrollo Integrado compilará la Aplicación para que puedas ver el resultado final en tu dispositivo. Para ello, en Xcode, basta con seleccionar el dispositivo y pulsar el botón Start.

Tras lo cual tu IDE se encarga procesar el Código Fuente que has escrito y traducirlo al Lenguaje Nativo de tu dispositivo, obteniendo como resultado final la Aplicación que se muestra en pantalla.

Siguiendo el mismo procedimiento, puedes indicar mediante Código el texto que se mostrará cuando se pulse cualquiera de los botones.

Con todo lo que te he contado, espero haber resuelto tus dudas sobre lo que hace un Compilador y la necesidad de los mismos. Si no es así, no dudes en hacerme llegar cualquier comentario con las cuestiones que te hayan surgido, estaré encantado de leerte y contestar tus preguntas.

Más Contenidos de esta Sección

Qué es un IDE

Qué es un IDE

Un Entorno de Desarrollo Integrado (en inglés Integrated Development Environment) es una aplicación informática que proporciona a los programadores las herramientas para desarrollar software

Tipo de Dato

Es un atributo de los datos con el que indicamos la clase de datos que se vamos a utilizar

API: Interfaz de Programación de Aplicaciones

Conjunto de funcionalidades que nos ofrecen las Librerías de Software que facilitan el desarrollo de nuestros propios programas

Ámbito o Scope

Es la sección de un Programa en la que existen y son accesibles unas determinadas Variables, Funciones, Métodos, etc

Orden Lexicográfico

Es una relación de orden definida sobre el producto cartesiano de conjuntos ordenados. En el caso que nos ocupa, el desarrollo de Apps para iPhone, nos interesa su uso para ordenar y comparar cadenas de caracteres

Actualización OTA

Son las Actualizaciones pendientes de instalar que nos ofrecen nuestros Smartphones, Tablet, ... tanto de los Sistemas Operativos como de las Apps que tenemos en nuestros dispositivos. Son fáciles de realizar por cualquier usuario ya que sólo requieren pulsar el botón Aceptar

Versión Golden Master

Versión final de la Beta de un determinado Software. Salvo imprevistos de última hora, será la versión final de lanzamiento

Control de Versiones

Software cuyo propósito es llevar el registro de los cambios en los archivos de nuestro Proyecto y coordinar el trabajo que varias personas realizan sobre estos recursos compartidos

Casting

La Conversión de Tipos (Type Casting) se refiere a la conversión de un Tipo de Dato en otro

Qué es un Framework

Entorno de Software pensado para hacer más sencilla la programación de nuestras Aplicaciones

Lenguaje de Programación Imperativo

En estos Lenguajes se indica con detalle los pasos que debe dar el ordenador para alcanzar el resultado

Lenguaje de Programación Declarativo

Lenguaje de Programación Declarativo

Los lenguajes declarativos no dicen cómo hacer una cosa, sino qué cosa hacer

Overflow

Se produce un Desbordamiento cuando intentamos almacenar un valor mayor o menor del permitido en una determinada Variable o Constante

Versión Release

Nombre que reciben las versiones de producción de las Aplicaciones que instalamos en nuestros dispositivos

Release Notes

Documentación informativa sobre la última actualización de un determinado producto o software

Unicode

Es un estándar de codificación de caracteres diseñado para facilitar el uso de textos de numerosos idiomas, así como la simbología utilizada en múltiples disciplinas

Depuración de Programas

El debugging es el proceso de identificar y corregir los errores de Programación

Lenguaje de Programación Type Safe

Es aquel Lenguaje que asegura el control sobre los Tipos de Datos que se almacenan en las Constantes, Variables, etc.

Qué es el Código Fuente

Para nosotros los Programadores, el Código Fuente es el conjunto de líneas de texto que indican las acciones que debe realizar un ordenador cuando ejecutamos un determinado programa

Qué es un SDK

Software Development Kit (Kit de desarrollo de software)

Palabras Reservadas

Son palabras con un significado especial para un determinado Lenguaje de Programación

Inferencia de Tipos

Característica de muchos Lenguajes de Programación, como Swift, consistente en definir el Tipo de datos de manera automática dependiendo del valor asignado

Sandbox

En programación se utiliza el concepto de Sandbox para referirse a un entorno aislado y seguro en el que probamos código

Camel Case

Estilo de escritura que se aplica a frases o palabras compuestas. Las mayúsculas a lo largo de una palabra compuesta en Camel Case se asemejan a las jorobas de un camello

Algoritmo

Conjunto de reglas predefinidas y con un orden prestablecido que permiten llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad. ​

Qué es un Lenguaje de Programación

Si hacemos un símil entre los humanos y los ordenadores, diremos que un Lenguaje de Programación es para los ordenadores lo mismo que un Idioma para los humanos. Al igual que dos humanos se comunican y entienden porque hablan un mismo idioma, un ordenador entenderá nuestras órdenes porque se las expresamos en un determinado Lenguaje de Programación.

IntelliSense

Autocompletado inteligente de Código

GUI

Interfaz Gráfica de Usuario

Desarrollo iOS | Interfaz de Usuario | Herramientas | Ciencias de la Computación | Mundo Apple | Recursos Externos | Fundamentos de Programación | Miscelánea |

© Swift, SwiftUI, UIKit, Xcode, iOS, iPadOS, watchOS, tvOS, macOS, Mac, iPhone, iPad, Safari, App Store, Apple y sus correspondientes Logotipos son marcas registradas de Apple Inc.

Profile images of content from Pixabay. You can see the Authors List.