sábado, 21 de febrero de 2015

CONCEPTOS BÁSICOS SOBRE PROGRAMACIÓN

0. CONCEPTOS BÁSICOS SOBRE PROGRAMACIÓN


Un programa es un conjunto de órdenes para un ordenador o computadora. Éstas órdenes se le deben dar en cierto lenguaje que la computadora sea capaz de "entender".
  El problema es que los lenguajes que realmente "entienden" los ordenadores resultan difíciles para nosotros porque son muy distintos de lo que utilizamos habitualmente para hablar. Escribir programas en el lenguaje que utiliza internamente la computadora (Llamado lenguaje máquina o código máquina), es una trabajo duro , tanto para crear el programa como en el momento de corregir algún fallo o mejorar lo que se hizo. Por eso en la práctica se emplean lenguajes más parecidos al lenguaje humano, llamados lenguajes de alto nivel. Normalmente estos son muy parecidos al idioma inglés, aunque siguen unas reglas mucho más estrictas.

      0.1 LENGUAJES DE ALTO NIVEL Y DE BAJO NIVEL

Vamos a ver en primer lugar algún ejemplo de un lenguaje de alto nivel para después comparar con lenguajes de bajo nivel que son los más cercanos al ordenador.
   Uno de los lenguajes de alto nivel más sencillos es el lenguaje BASIC. En este lenguaje escribir el texto "Hola" en pantalla sería tan sencillo como:

PRINT "Hola"

Otros lenguajes, como Pascal (que en la actualidad casi nadie lo usa), nos obligan a ser más estrictos pero a cambio hacen más fácil descubrir posibles errores:

program Saludo

begin
   write('Hola');
end.

El equivalente en lenguaje C resulta algo más difícil de leer, por motivos que iremos comentando más adelante.

#include<stdio.h>

int main(){
   printf("Hola");
}

Los lenguajes de bajo nivel son más cercanos al ordenador que a los lenguajes humanos. Eso hace que sean más difíciles de aprender y también que los fallos sean más difíciles de descubrir y corregir, a cambio de que podemos optimizar al máximo la velocidad (si sabemos cómo), e incluso llegar a un nivel de control del ordenador que a veces no se puede alcanzar con otros lenguajes. Por ejemplo, escribir "Hola" en lenguaje ensamblador de un ordenador, equipado con el sistema operativo MS-DOS y con un procesador de la familia Intel x86, sería algo como:

dosseg
.model small
.stack 100h

.data
hello_message db 'Hola', 0dh, 0ah, '$'

.code
main proc 

     mov ax,@data
     mov dx,ax

     mov ah,9
     mov dx,offset hello_message
     int 21h

     mov ax,4C00h
     int 21h
main endp

end main

Resulta más difícil de seguir . Pero eso todavía no es lo que el ordenador entiende, aunque tiene una equivalencia casi directa. Lo que el ordenador realmente es capaz de comprender son secuencias de ceros y unos. Por ejemplo, las órdenes "mov dx,ax" y "mov ah,9"(en cuyo significado no vamos a entrar), se convertiría en lo siguiente:

1000 0011 1101 1000 1011 0100 0000 1001

Nota: los colores de los ejemplos anteriores son una ayuda que nos dan algunos entornos de programación para que sea más fácil descubrir errores, para que sea más legible e identificar las partes de nuestro programa.

Aquí se publicarán algunas pequeñas ayudas a los que empiezan a programar. Espero que se de utilidad.

Encontré un libro en internet, mejor dicho, una aplicación de android en la que se muestra dicho manual. Quería compartirlo pero no puedo porque desapareció de la Play Store, así que empezaré a transcribirlo. Primero dejo en claro que no es de mi autoría, los datos del manual son:
TÍTULO: Fundamentos de programación en C.
AUTOR: Nacho Cabanes.