martes, 22 de enero de 2013

Introducción a la programación - Curso Android para no programadores


Introducción a la Programación

Comenzaremos por definir que es una computadora, y como podemos utilizarla para que realice tareas por nosotros.

Computadora

Una computadora, es más que un dispositivo que nos permite navegar en Internet para acceder a redes sociales, escribir un texto o enviar e-mails, para un programador, una computadora es un dispositivo capaz de ejecutar ordenes a una gran velocidad. ¿Qué son estas ordenes? No son más que cálculos entre ciertos valores. Sin entrar en grandes detalles, podemos dividir una computadora en dos partes: una memoria de datos y un procesador.
En la memoria de datos se guardarán los datos con los que el procesador realizará cálculos.

Por ejemplo: tenemos dos valores almacenados en la memoria : 5 y 7, el procesador tiene la capacidad de “leer” esos dos valores y realizar un calculo con ellos, por ejemplo, sumarlos.

La pregunta es ¿Cómo llega una computadora que solo puede sumar valores, a permitirme navegar por Internet, o ver una película o escuchar un mp3? La respuesta es que, obviamente, la única operación que realiza un procesador no es la suma, y que tampoco realiza una sola operación, sino un conjunto ordenado de ellas, y este conjunto es lo que se conoce como un programa.

Programa.

Un programa informático es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora. Sin programas, estas máquinas no pueden funcionar.” (Wikipedia)

De modo que nuestra tarea como programadores, valga la redundancia, es escribir programas. Estos programas realizarán tareas, al comienzo más simples ( desde sumar dos números hasta una simple calculadora), y luego mas complejas.

Ejemplo de nuestro primer programa:

ValorA = 5
ValorB = 7
Resultado = ValorA + ValorB

Para explicar este pequeño programa, introduciremos el concepto de “Variable”. Una variable, es una porción de memoria de nuestra computadora, en donde podremos almacenar un valor.

 En nuestro programa, representamos estas porciones de memoria con un nombre definido por el programador, en este caso, tenemos 3 variables:

  • ValorA
  • ValorB
  • Resultado

En la primera se almacenará el valor 5, en la segunda el valor 7 y en la tercera, la operación “suma” entre las dos primeras.

Cabe destacar que en un programa, cada línea se ejecuta por el procesador en orden descendente, es decir:

  1. ValorA = 5
  2. ValorB = 7
  3. Resultado = ValorA + ValorB

Al ejecutarse la primera línea, el procesador almacena el valor 5 en la porción de memoria llamada “ValorA”:

Memoria de datos
ValorA 5
ValorB -
Resultado -
... ...

Al ejecutarse la segunda línea, el procesador almacena el valor 7 en la porción de memoria llamada “ValorB”:

Memoria de datos
ValorA 5
ValorB 7
Resultado -
... ...

y al ejecutarse la tercer línea, el procesador realiza la operación suma entre los valores almacenados en las porciones de memoria “ValorA” y “ValorB” y almacena el resultado en la porción de memoria llamada “Resultado”:

Memoria de datos
ValorA 5
ValorB 7
Resultado 12
... ...

Lenguaje de programación

Una vez comprendido qué es un programa, nos resta preguntarnos ¿Cómo se escribe un programa? Es decir, no podemos pretender que una computadora nos entienda cuando le decimos:

ValorA = 5
ValorB = 7
Resultado = ValorA + ValorB

Porque del mismo modo que nosotros escribimos este programa sin ninguna consideración, otra persona podría haber escrito:

ValorA vale 5
ValorB vale 7
Resultado es igual a (ValorA mas ValorB)

Como podemos observar, necesitamos definir ciertas reglas de cómo escribir un programa, para que cualquiera que lo escriba, lo haga de la misma forma, y a su vez, esta forma tiene que poder ser interpretada por la computadora. Estas reglas de escritura, conforman un lenguaje de programación.

Como se podrán imaginar, no existe solo un lenguaje de programación, sino que a lo largo de la historia de la computación, se fueron desarrollando una gran cantidad, cada uno posee sus reglas de escritura, y el programador que escriba en cada lenguaje deberá respetarlas para que el programa funcione.

Ejemplos de nuestro pequeño programa en algunos lenguajes de programación:

Java:
public class Main {
    public static void main(String[] args) {
        int valorA;
        int valorB;
        int resultado;
        valorA=5;
        valorB=7;
        resultado=valorA+valorB;
    }
}

Python:
valor_a = 5
valor_b = 7
resultado = valor_a + valor_b

PHP:
<?php
$valor_a = 5;
$valor_b = 7;
$resultado = $valor_a + $valor_b;
?>

C:
int main(int argsc, char ** argsv) {
    int valorA;
    int valorB;
    int resultado;
    valorA=5;
    valorB=7;
    resultado=valorA+valorB;
}

Cada lenguaje tiene su sintaxis y pueden diferir ampliamente, durante el curso se estudiará el lenguaje Java, necesario para escribir las aplicaciones para Android.


Compilación

Debido a la gran diferencia de sintaxis que poseen los diferentes lenguajes, nos preguntamos ¿Cómo una computadora puede comprender las sentencias escritas? La respuesta es que no lo hace, el conjunto de ordenes que nosotros escribimos al programar, deben ser traducidos a un conjunto de ordenes que el procesador comprende, este conjunto de ordenes es conocido como el set de instrucciones del procesador. Estas instrucciones no son más que números que el procesador sabe interpretar para saber qué operación debe realizar.

El “traductor” de nuestro lenguaje al set de instrucciones del procesador ( también conocido como lenguaje de máquina) es un programa que se llama “Compilador”.
El compilador, transformará lo que el programador escribe en un conjunto de números que el procesador puede interpretar y ejecutar. También será el encargado de verificar que lo que el programador escribió cumple con las reglas del lenguaje, es decir, existe un compilador para cada lenguaje.



Proceso de programación

Haremos un resumen de los pasos necesarios para obtener un programa que realice una tarea:

  1. Elegir un lenguaje de programación para escribir nuestro programa.
  2. Escribir el programa en un archivo de texto respetando las reglas del lenguaje elegido.
  3. “Compilar” nuestro archivo de texto para obtener un archivo ejecutable que el procesador puede interpretar.
Este archivo que nos devuelve el compilador, será nuestro programa.

Este programa obtenido, será diferente para cada tipo de procesador (X86,ARM,PowerPC,etc.) y también será diferente para cada sistema operativo (Windows,Linux,MAC OS,Android)