lunes, 30 de diciembre de 2013

Gurús de la programación: Ken Thomson

Hola a todos,





















Ken Thomson es un programador americano de 70 años ( todavía en activo) que junto con Dennis Ritchie desarrolló el lenguaje C y el sistema operativo UNIX.

Junto con Dennis Ritchie también desarrolló el lenguaje B ( precursor del lenguaje C) y el sistema operativo Multics.

En su carrera en solitario cabe destacar el desarrollo del editor de textos de UNIX (todos los editores actuales provienen conceptualmente de ese editor), la defensa del uso de pipes dentro de los sistemas operativos y la invención del UTF-8.

Es por todo ello que Ken Thomson es considerado un gurú de la programación.

Actualmente, con muchos años ya de trabajo en sus espaldas, está trabajando en Google desarrollando el lenguaje Go.



LordPakusBlog

Gurús de la programación: Dennis Ritchie

Hola a todos,

















Dennis Ritchie fue un matemático y físico estadounidense (murió en el 2011 a los 70 años de edad) famoso por ser el creador del lenguaje C y el sistema operativo UNIX  (ambos junto a Ken Thomson).

Trabajó durante muchos años en los laboratorios Bell donde colaboró en el desarrollo del lenguaje B y el sistema Multics. Años después trabajó en proyectos como Inferno y e lenguaje Limbo.

Junto a Brian Kerninghan escribió el libro de referencia para todos los programadores de C: "El lenguaje de programación C"

Está claro que Dennis Ritchie fue un pionero de la programación y de la informática y que sus trabajos tanto en C ( base de gran parte de los lenguajes actuales) como en UNIX ( base de la mayoría de los sistemas operativos actuales) han cambiado totalmente la historia de la informática.

Sin su aportación el mundo en general sería muy diferente y deberíamos estarle todos agradecidos.

LordPakusBlog

lunes, 2 de diciembre de 2013

Aprender a programar. Lenguajes de programación


Hola a todos,

Si habéis leído el capítulo anterior ya sabéis lo que significa programar y todo lo que implica. Si pese a saberlo queréis empezar :) os faltará un poco de base de como funciona un lenguaje de programación

Los lenguajes de programación no son más que estandars. Es decir, cuando se define un lenguaje de programación lo que se dice son las normas y características que tendrá ese lenguaje, nada más. Con lo que trabajaremos nosotros será con las implementaciones de ese lenguaje.

Por ejemplo, hace muchos años se definió el lenguaje C. Posteriormente aparecieron compiladores como turboC, watcom, visualC, gcc que implementaban dicho estandar.

Un mismo código en diferentes compiladores, aunque genere diferentes ejecutables, debería de comportarse igual. Así pues las diferencias entre compiladores normalmente radican en tres factores importantes:
- como de bien transforma el código en un ejecutable : tamaño del ejecutable, velocidad de ejecución, uso de memoria, etc...
- facilidades que aporta a la producción: tiempo de compilación, incorporación de debuger y profiler, etc...
- soporte para librerias: que librerias externas soporta (OpenGL, DirectX o las que fuera) y cuan fácil es usarlas.


Todo esto aplica tanto para un lenguaje compilado como uno interpretado. Un caso claro lo podemos ver en la programación web. Podemos definir el lenguaje html , que es un estandar, pero cada navegador lo implementa a su manera.



Ahora la gran pregunta. Ya se la teoría.... ¿cómo empiezo con la práctica?

Antes de empezar con un lenguaje en concreto vamos a ver un poco las operaciones comunes entre los lenguajes más usados (C/C++ y Java entre otros muchos). Si domináis la lógica de estas operaciones aprenderéis cualquier lenguaje en un suspiro.

- Condicional (normalmente en código es "if"): Si se cumple "lo que sea" hago "esto". Opcionalmente, también puede haber el caso en que sino se cumple la condición ("else"), haga "lo otro". Ejemplo de código en C:
          if (dinero < 5 )
          {
                trabajar();
          }
          else
          {
                 descansar();
          }

- Bucles: Repetir una y otra vez una zona de código o una operación (los puede haber de muchos tipos diferentes, pero se centran en dos categorías):
     - De repeticiones fijas: Quiero repetir una operación X veces. Ejemplo de código.
for( i = 0 ;  i < 1000 ; i = i+1 )     //Voy a repetir una operación 1000 veces
{
        dormir();
}
     - De repeticiones variables: Quiero repetir una operación mientras que haya una condición que se cumpla.
while ( tengosueño() )   //Repito una operación mientras se cumpla una condición.
{
       dormir();
}

- Funciones: Zonas de código que se pueden ejecutar desde cualquier parte del código. La sintaxis puede variar mucho de un lenguaje a otro, pero el funcionamiento siempre es parecido. Se reciben unos parámetros de entrada (números de la derecha) y se devuelve un resultado (número de la izquierda). Si no hay parámetros se usa void (vacio). Ejemplos:
bool tengosueño(void)
{
        if (sueño > 5)
             return true;   //Es una función que se usa para finalizar una función y devolver un valor.
        else
              return false;
}

void dormir(void)
{
       sueño--;
}

//int, char y bool son tipos de variables. Es la manera de indicarle al compilador como queremos que interprete esos datos.
int cobrar( int horas)
{
          return horas*6;
}


Ahora que tenéis la base , mirad código. Aún sin entender lo que diga. Iros quedando con la "gramática" y con la estructura. Código para leer por internet lo hay a cientos. Si queréis tengo un par de proyectos que os pueden servir para ir mirando código: pakengine, algún que otro motor gráfico y el math engine

Cuando ya esteis empapados de código os podéis plantear mirar algún que otro tutorial del lenguaje que queráis aprender. (si queréis aprender C/C++ espero que este os sirva).

A partir de ahí, sabiendo la teoria y teniendo la lógica, haced ejercicios. Nuevamente, si os apetece aprender C/C++ tengo un conjunto de ejercicios que tal vez os interesan.

A partir de ahí todo es practicar, practicar y practicar.

Ya sin más, os dejo hasta el siguiente capítulo, espero que os haya gustado.

Nos vemos

LordPakusBlog

Entradas populares