Vous êtes sur la page 1sur 8

INTRODUCCIN A LA PROGRAMACIN

Hoy da, todos estamos acostumbrados a usar un sistema informtico y las diferentes aplicaciones
instaladas en l, los procesadores de texto, hojas de clculo, vemos el correo o ficheros grficos, etc.,
todos tenemos ordenador en casa o acceso a algn PC.
Cuando se comienza a estudiar informtica se inicia estudiando qu es un sistema informtico. Un
sistema informtico es un conjunto formado por tres partes: hardware, software y el hombre.
HARDWARE. Es la parte tangible del sistema, parte fsica. Se denomina hardware a
todos los componentes fsicos que forman el sistema informtico, todas aquellas piezas
que forman la torre" del ordenador junto a la pantalla, impresora, y dems elementos que
an no incluyndose en la torre interactan de algn modo con ella.
SOFTWARE. Es la parte no tangible. La forman todas aquellas aplicaciones o programas
instalados en el equipo. El software se clasifica en software base y software de aplicacin.
EL HOMBRE. Es una parte importante del sistema ya que es quien usa el mismo. Sin la
iteracin del hombre de nada servira que tuviramos un hardware y un software.

CONCEPTOS BSICOS
ALGORITMO VS PROGRAMA
Segn la RAE (http://www.rae.es) un Algoritmo es un conjunto ordenado y finito de operaciones
que permite hallar la solucin de un problema.
Para solucionar nuestro problema (comprar los billetes para realizar un viaje a Londres) se deben
seguir una serie de pasos u operaciones. Este conjunto de operaciones es finito y naturalmente
ordenado, la secuencia debe ser tal y como se indica, por ejemplo no podemos concretar formas de
pago si antes no se ha ido a una agencia. As, acabamos de desarrollar un algoritmo, de hecho de
forma cotidiana estamos continuamente generando algoritmos ya que continuamente se plantean
problemas que debemos solucionar.
Ahora bien, cuando este problema debe ser resuelto en un ordenador, el algoritmo se convierte en lo
que se denomina programa. Seguimos usando una secuencia ordenada y finita de pasos pero escrita
en un lenguaje que la mquina es capaz de entender.

CARACTERSTICAS DE UN PROGRAMA
Un algoritmo, posteriormente convertido en programa, debe cumplir una serie de caractersticas:
Debe ser finito. Estar formado por un conjunto finito de lneas de forma que en algn
punto ve alcanzado su fin.
Debe ser legible. Es importante crear cdigos limpios y fciles de leer, con tabulaciones
y espacios que diferencien las partes del programa. Si desarrollamos cdigos bien
estructurados nos ser ms fcil la correccin de errores y modificacin del mismo.
Busing System; using
System,Collections.Genericj

using System.Linq;
jusing System.Text;
Enamespace HolaMundo{class Program{
E3
statc void Hain(string[] args){Consol.MriteLine("Hola mundo);|:cnrcle.ReadLine();

Cdigo fuente con lneas de cdigo mal estructuradas. poco legible.

Busing System; using


System.Collections .Generic,;
using System.Linqj using
System.Text;
El namespace HolaMundo{

El
El

class

prograin{
static void Hain(string[] args){
Ccnscle,Writeline("Hola
mundo")j Cense le,ReadLine();

}
}
}
Cdigo fuente con lneas de cdigo bien estructuradas. Fcil de entender, detectar errores y modificar.

Debe ser fcilmente modificable, es decir, debe estar diseado de forma que debe ser
sencillo el proceso de actualizacin o modificacin del mismo ante las nuevas necesidades
del usuario final.
Debe ser eficiente. El usuario acabar usando programas que solucionen sus problemas
de la mejor y ms rpida forma posible, as debemos crear programas que ocupen poco
espacio en memoria y se ejecuten rpidamente.
Deben ser modulares. Esta caracterstica ayuda a que el programa sea ms legible y fcil
de entender. Debemos perseguir realizar algoritmos que se encuentren divididos en
subalgoritmos de forma que se disponga de un grupo principal desde el que llamaremos
al resto. Al usar subprogramas adems incitamos la reutilizacin de cdigo y evitamos
la repeticin de este. Deber estar estructurado. Esta caracterstica engloba de alguna
forma las anteriores, ya que un programa estructurado ser fcil de leer, de modificar y
estar compuesto de subprogramas que permitirn la reutilizacin de cdigo.
NOTA: A la hora de realizar las actividades que encontrar en los captulos que forman el libro se
aconseja al lector que sus diferentes cdigos fuente posean las caractersticas mencionadas. Para ello:
Se comenzar cada subprograma un nivel hacia dentro con respeto al programa en
el que se incluye (pulsaremos la tecla TAB para empezar a escribir una serie de
caracteres.

Se unificar la nomenclatura utilizada a la hora de definir los elementos del


programa creados por el propio usuario, por ejemplo, los nombre de los elementos
seguirn unas normas a la hora de ser definidos.

Se comentar el cdigo para tener constancia de qu funcin realiza cada


subprograma.

Siempre que sea posible dividiremos el cdigo en partes.

LENGUAJE DE PROGRAMACIN
Habitualmente el ser humano se comunica a travs del uso del lenguaje, es decir, es capaz de generar
una serie de sonidos que forman lo que conocemos como fonemas, pasadas al papel son las letras de
nuestro alfabeto, que combinadas constituyen las slabas, palabras y frases. A este lenguaje se le

conoce como lenguaje natural.

Lenguaje natural = comunicacin hombre - hombre.


Un ordenador comunica sus componentes hardware mediante la emisin de seales elctricas, pulsos
que vienen a formar los valores 0 (no se aplica voltaje) y 1 (si se aplica voltaje). As, la CPU da una
orden a la memoria mediante una combinacin de ceros y unos, algo similar a 1101001. A esta forma
de comunicacin se le denomina lenguaje mquina.

Lenguaje mquina = comunicacin mquina - mquina.


Un lenguaje de programacin es similar al lenguaje humano o lenguaje mquina, la diferencia estriba
en que la comunicacin se realiza entre hombre y ordenador, es decir, un lenguaje de programacin
es aquel por el que el PC es capaz de entender qu est dicindole el ser humano que haga.
Lenguaje de programacin = comunicacin hombre - ordenador.
A la hora de combinar los diferentes sonidos en el lenguaje natural seguimos una serie de reglas. Una
frase est formada por sujeto + verbo + predicado, a su vez, cada verbo est representado en una
forma verbal concreta, sabemos que se ha finalizado una frase porque se realiza una pausa antes de
comenzar con la siguiente y existe un nmero limitado de letras y palabras. En un lenguaje de
programacin pasa exactamente igual:
Existe un nmero finito de palabras reservadas que podemos usar.
Las frases o instrucciones poseen una secuencia que viene determinada por el lenguaje
de programacin que estemos usando.
Cada frase finaliza de una forma concreta.

Los lenguajes de programacin se pueden clasificar teniendo en cuenta diversos criterios:

Segn la cercana a la mquina.

Segn la funcin o propsito del lenguaje.

Segn la evolucin histrica.

Segn la manera en la que se ejecutan.

Segn cmo afrontan las tareas a realizar.


Segn el estilo de programacin empleado.
Segn la capacidad de generar procesos concurrentes o no.
Segn la interactividad.
Segn si son o no visuales

CLASIFICACIN EN FUNCIN DE LA CERCANA A LA MQUINA


Unos prrafos ms arriba estudibamos que un ordenador solo entiende de 0 y 1 y qu entendemos
por lenguaje mquina. Existen lenguajes de programacin bastante cercanos al lenguaje mquina, que

usan instrucciones similares a las que entiende la CPU de forma directa; mientras que otros estn
formados por palabras reservadas ms cercanas a las que usamos normalmente en el lenguaje natural.
As, en funcin de si el lenguaje de programacin est ms cerca del lenguaje mquina o del lenguaje
natural encontraremos:
Lenguajes de bajo nivel. Es el lenguaje de programacin ms cercano al lenguaje
mquina. Est constituido por palabras reservadas difciles de recordar y la sintaxis de las
instrucciones
es
bastante
compleja
ya
que
se
suele
trabajar
a nivel de registr
o.
Ejemplo de este tipo es el lenguaje ensamblador.
Lenguajes de nivel medio. Son lenguajes que se acercanun
poco
ms
al
lenguaje
natural introduciendo palabras reservadas similares a las que usamos habitualmente como
if, int o while pero que siguen proporcionando rdenes para trabajar a nivel de bit. Un
ejemplo claro de este tipo es el lenguaje de programacin C.
Lenguajes de alto nivel. Lenguajes parecidos al lenguaje humano tal que su forma de
proceder, su sintaxis, etc., es ms similar al lenguaje natural. Abstrae al programador del
funcionamiento interno de la mquina.

CLASIFICACIN EN FUNCIN DEL PROPSITO DEL LENGUAJE


Podemos clasificar un lenguaje de programacin en funcin del tipo de programas que son capaces
de generar:
Lenguajes de propsito general. Son lenguajes diseados para realizar cualquier tipo de
programa, desde software base a software de aplicacin. Un lenguaje de este tipo es C.
Lenguajes de propsito especfico. Lenguajes que se disean para actuar en una
determinada rea y generar programas con una finalidad determinada. Estos lenguajes
dispondrn de palabras reservadas y funciones propias para la explotacin del rea de
trabajo concreta.

CLASIFICACIN EN FUNCIN DE LA EVOLUCIN HISTRICA


A lo largo de los aos las necesidades de los usuarios que utilizan los sistemas informticos y el
hardware del mismo, han ido evolucionando y cambiando. Los ordenadores de hace 20 aos no
posean elementos fsicos con caractersticas demasiado sofisticadas de forma que solo podamos
ejecutar programas en modo texto, en cambio hoy da estamos acostumbrados a usar entornos
visuales. As, se diferencian diferentes generaciones, cada una de ellas caracterizada por lenguajes de
programacin que cumplan ciertas caractersticas segn la poca.

Primera generacin. La forman los lenguajes mquina y lenguajes ensamblador. Aos


40 y 50 donde se usaban tapetas perforadas y el programador deba codificar en ellas las
combinaciones de ceros y unos que indicaban el tipo de clculo a realizar. Se comienzan
a usar lenguajes ensamblador de forma que no se tenan que especificar cadenas binarias,
ya que se crearon una serie de sentencias que representaban los clculos, pero seguan
siendo instrucciones complicadas a nivel de registro y era necesario que conociramos el
juego de instrucciones del microprocesador.
Segunda generacin. Aparecen lenguajes de nivel medio. Se comienza a desarrollar el

primer compilador de FORTRAN. Esta etapa perdura aproximadamente desde 1958 a


1970.
Sabas que...
FORTRAN (Formula Translating System) aparece debido a la necesidad de agilizar las tareas y la
dificultad que supona trabajar con el lenguaje mquina o lenguaje ensamblador. A finales de 1953,
John W. Backus propone a sus superiores de IBM comenzar a trabajar en un nuevo proyecto por
el que se desarrollara un lenguaje de programacin ms sencillo y cmodo de utilizar para
programa el IBM 704. Fue a mediados de 1954 cuando se consolida el primer borrador de la
especificacin y en octubre de 1956 cuando aparece el primer manual de FORTRAN. Fue usado
ampliamente por la comunidad cientfica, desarrollando potentes programas de anlisis
matemtico.

Tercera generacin. En esta etapa empezamos a hablar de la denominada programacin


estructurada. Los lenguajes de programacin de este perodo se caracterizan por el uso de
subprogramas, variables locales o estructuras de datos dinmicas. Ejemplos de lenguajes
de programacin de tercera generacin son Pascal, Modula o C.
Cuarta generacin. En esta generacin encontraremos lenguajes desarrollados para crear
un determinado tipo de software, se configuran para tareas muy concretas.
Quinta generacin. Generacin asociada a lenguajes diseados para abordar la
inteligencia artificial. Este tipo de lenguajes trabajan con una serie de reglas y hechos y
en funcin de estos deben concretar si una premisa conclusin es cierta o no. Ejemplo de
esta generacin es Prolog. Adems, comienza a ponerse en prctica la programacin
orientada a objetos.
Generacin visual. Nace a principios de la dcada de los 90 debido a la necesidad de usar
interfaces cada vez ms amigables y fciles.

CLASIFICACIN EN FUNCIN DE LA FORMA DE EJECUCIN


A la hora de crear un programa el primer paso que se lleva a cabo es la escritura del mismo; existen
entornos especializados para ello. A continuacin, el nuevo software debe ser ejecutado, ahora bien,
la ejecucin se puede realizar en funcin de si todo es cdigo, es correcto o bien, si una instruccin es
correcta. As, existen lenguajes diseados de forma que comprueban todo el cdigo y si no hay ningn
error en ninguna lnea, este se ejecuta o bien si una instruccin es correcta, esta se reproduce.
Encontraremos segn el modo de ejecucin:
Lenguajes compilados. Los lenguajes compilados son aquellos que realizan un anlisis
minucioso de las lneas de nuestro cdigo en bsqueda de posibles fallos lxicos,
sintcticos o semnticos. Si nuestro cdigo no tiene errores genera un fichero llamado
cdigo objeto. A partir de este nuevo cdigo usar un programa llamado enlazador o
linker que se encargar de aadir libreras u otro tipo de software necesario para as
obtener el cdigo o archivo ejecutable. Hasta que nuestro cdigo fuente no est libre de
fallos no se ejecutar nuestro programa.
Lenguajes interpretados. Los lenguajes de programacin que poseen la etiqueta de
interpretados ejecutan lnea a lnea el cdigo creado. En caso de que exista alguna
instruccin con fallos esta no se ejecutar, pero seguir el proceso con el resto de lneas a
no ser que la lnea que falla sea una parte importante de nuestro programa.

CLASIFICACIN EN FUNCIN DE CMO AFRONTAN LAS TAREAS A REALIZAR


Segn esta clasificacin encontraremos lenguajes imperativos y declarativos.
Lenguajes imperativos. Los lenguajes de programacin imperativos son aquellos en los
que se escribe lnea a lnea qu se debe hacer, de forma que se indica una secuencia de
pasos a realizar para llegar a resolver el problema en cuestin que dio pie a la realizacin
del software. Tanto C# como Java son lenguajes imperativos.
Lenguajes declarativos. Los lenguajes de programacin declarativa, en cambio, incluyen
una serie de premisas o conjunto de condiciones finitos y la conclusin a la que se debe
llegar. En ellos no se indica de forma expresa los pasos a seguir para alcanzar la solucin,
solo se plantean una serie de reglas y en funcin de estas se van describiendo los pasos.
Se usan normalmente en inteligencia artificial.

CLASIFICACIN EN FUNCIN DEL ESTILO DE PROGRAMACIN EMPLEADO


A la hora de crear un programa podemos optar por escribir todo el cdigo, lnea a lnea, como un solo
bloque, realizar pequeos bloques incluidos en el programa principal a los que se hace referencia
desde este o bien crear ficheros independientes con subprogramas a los que accederemos segn
nuestras necesidades. As, segn lo explicado encontraremos:
Lenguajes de programacin estructurados. En estos lenguajes encontraremos el cdigo
tal que se haya estructurado en un conjunto de funciones. Suelen poseer una funcin
principal que es llamada en el momento de ejecucin. Esta funcin har uso del resto
segn decida el programador. Podemos hablar adems de programacin modular en los
casos en los que se usan otros ficheros, llamados mdulos, en los que se agrupan funciones
diseadas para trabajar con el mismo tipo de datos o estn relacionadas segn algn
criterio establecido por la persona que crea la aplicacin.
Lenguajes de programacin orientada a objetos. En este tipo de lenguajes se usan
elementos denominados clases de forma que se pretende con ellos reflejar al mximo
posible la realidad que rodea el software. As, si en el tipo anterior se agrupan en funciones
lneas de cdigo segn tareas o acciones a realizar, en la programacin orientada a objetos
la agrupacin se realiza en funcin del objeto que se quiere plasmar en el programa. Por
ejemplo, si queremos realizar un programa que gestione un concesionario de vehculos
programaremos una clase que llamaremos vehculo, en ella (en este conjunto de lneas)
incluiremos todo lo que rodea a un coche, desde sus caractersticas a las funciones que
pueden desarrollarse sobre l.

CLASIFICACIN EN FUNCIN DE LA CAPACIDAD DE GENERAR PROCESOS


CONCURRENTES O NO
La concurrencia es la ejecucin de varios procesos a la vez. Generalmente usamos de forma
errnea los trminos programa y proceso. Debe quedar claro que:
Programa. Es el cdigo que hemos generado, que es correcto y est listo para
ejecutarse pero an no est en ejecucin.

Proceso. Una vez damos la orden de ejecutar nuestro programa y este se coloca en
memoria y es decodificado instruccin a instruccin por el procesador se le denomina
proceso.
Encontraremos lenguajes de programacin con funciones que permiten generar programas

concurrentes o no. As, tendremos:


Lenguajes de programacin concurrente. Proporcionan los mecanismos necesarios para
generar seales, tuberas, semforos, etc., que permiten la ejecucin concurrente.
Lenguajes de programacin concurrente. Caso opuesto al anterior. Lenguajes que no
aportan ningn tipo de dato o funcin para producir concurrencia.

CLASIFICACIN EN FUNCIN DE LA INTERACTIVIDAD


Existen lenguajes orientados a sucesos o eventos o no, as:
Lenguajes de programacin orientados a sucesos. Son aquellos que permiten la
iteracin continua del usuario con el software de forma que realizar una tarea u otra
segn el tipo de accin que el usuario realice.
Lenguajes de programacin no orientados a sucesos. En este caso, el programa seguir
una secuencia de acciones sin dar opcin al usuario a modificar esta.

CLASIFICACIN EN FUNCIN DE SI SON O NO VISUALES

Para finalizar, hoy da usamos sobretodo aplicaciones con entorno grfico similar a los sistemas
operativos actuales. As, existen lenguajes de programacin adaptados a los nuevos tiempos que
desarrollan este tipo de programas que adems son orientados a sucesos.
Lenguajes de programacin no visuales. Este tipo de lenguajes generan programas en modo
texto. Aunque actualmente primen los entornos visuales an se sigue usando este tipo de
software en comandos para configuracin y administracin de equipos.
Lenguajes de programacin visuales. Generan programas a los que se asocia un entorno
visual. Estos lenguajes usarn entornos de desarrollo que proporcionarn las herramientas
necesarias para la creacin de paneles, botones, cuadros de texto, etc., de forma que el
programador se evite la programacin de estos componentes.

CDIGO
Aunque el trmino cdigo se ha usado en varias ocasiones en los prrafos anteriores no ha sido
definido an formalmente. Segn la Real Academia de la Lengua una de las definiciones de cdigo
es: Combinacin de signos que tiene un determinado valor dentro de un sistema establecido.
Podemos usar esta definicin para expresar la esencia de cdigo de un programa, ya que este est
formado por un conjunto de signos (elementos del lenguaje, elementos generados por el usuario,
signos matemticos, etc.) que tienen valor dentro de un sistema establecido, es decir, en las
especificaciones de un lenguaje de programacin concreto.
Ms comnmente podemos decir que se define cdigo al conjunto o subconjunto de lneas que forman
un programa. Estas lneas se configurarn con una estructura concreta y estarn formadas de unos u
otros elementos en funcin del lenguaje de programacin que estemos usando. Usaremos con
frecuencia la palabra cdigo fuente en lugar de cdigo.
Adems, en los lenguajes de programacin compilados usaremos el trmino cdigo objeto, siendo
este el cdigo generado tras la compilacin del cdigo fuente. El cdigo objeto es un cdigo mquina
o bytecode de forma que a partir de un cdigo fuente escrito en lenguaje natural, obtenemos cdigo

que la mquina es capaz de procesar de forma directa.


Cada lnea de cdigo se suele llamar con frecuencia instruccin. Una instruccin sigue una serie de
reglas de construccin, de forma que segn el lenguaje de programacin que usemos una instruccin
poseer una estructura u otra.

PALABRAS RESERVADAS DEL LENGUAJE


Los lenguajes de programacin usan una serie de palabras o smbolos que desempean una funcin
especfica dentro un programa. A este conjunto se signos o combinacin de ellos se les denomina
palabras reservadas.
Estas palabras solo pueden usarse en un concepto determinado, nunca libremente por el usuario.
Por ejemplo, en el lenguaje de programacin C tiene como palabras reservadas if o while. Ambas
solo podrn ser usadas en caso de que se quiera iniciar una sentencia de control condicional o un
bucle.

Vous aimerez peut-être aussi