Clasificación
Clasificar
nunca é sinxelo pois require establecer de primeiras uns criterios
concretos que permitan dividir en clases ou tipos o conxunto de
elementos a clasificar. Dado que e moi frecuente que estes elementos
teñan aspectos comúns, outros con certos matices e outros
claramente diferentes, a clasificación pode non ser sempre tan
rigorosa como cabe pensar. Imos realizar varias clasificacións das
linguaxes de programación en función de diferentes criterios:
Segundo a
súa proximidade á linguaxe máquina:
Linguaxes
de baixo nivel: Son diferentes para cada procesador, cada tipo de
computadora posúe o seu. Controlan directamente o recursos de
hardware da máquina. Como exemplos temos a linguaxe máquina e a
linguaxe ensambladora (Assembly).
Linguaxes
de medio nivel: Tal e como reflexa o seu nome este grupo contén
aquelas linguaxes que teñen características dos de baixo nivel e
outras dos de alto nivel. O exemplo máis representativo e a
linguaxe C.
Linguaxes
de alto nivel: Son independentes do procesador. Son máis
sinxelos e lexibles pero xeran un código moito menos eficiente
(velocidade e tamaño) que os de baixo nivel. Para poder executalos
precisan dun procesador que trate unha vez o código e xere un
programa executable por un procesador (compiladores) ou ben o
interprete liña por liña cada vez que se executan (intérpretes).
Exemplos Pascal, php, Java, etc.
Segundo o
propósito da linguaxe:
Linguaxes
de propósito xeral: como Pascal, o C ou incluso Java aínda que
este último se relaciona moito coas aplicacións empresariais.
Linguaxes
de propósito especifico: php orientado o desenvolvemento de
aplicacións web, LISP orientado a intelixencia artificial, etc.
Segundo a
súa orientación:
Linguaxes
orientadas ao procedemento: son linguaxes imperativos coma Pascal
nos que se describen os pasos que deben darse para resolver un
problema determinado. Explicase como resolver un problema.
Linguaxes
orientadas ao problema: coma por exemplo Prolog. Nestas linguaxes
descríbese o problema en si; son de tipo declarativo.
Linguaxes
orientadas a obxectos: son linguaxes nas que se modela a
realidade centrándose nos elementos que a compoñen.
Neste curso
estudarase unha linguaxe de alto nivel, de propósito xeral e
orientada ao procedemento imperativo: a linguaxe Pascal.
Linguaxes
de alto nivel
As linguaxes
de alto nivel buscan:
- Sinxeleza: ser un medio sinxelos para expresar a solución de problemas.
- Simplicidade: contar cun conxunto reducido de operacións básicas e un conxunto de regras para combinar as anteriores.
- Eficiencia: de maneira que permitan una tradución rápida e un código máquina o máis eficientes posible.
- Lexibilidade: facendo máis doada a comprensión do código e presentando a posibilidade de engadir comentarios que aínda que non aportan nada ao propio programa, permite que outros programadores ou incluso o mesmo autor transcorrido o tempo poidan comprender o seu contido con facilidade. Todo isto fai que sexa máis doado depurar ou modificar o códigos incluso por persoas que non o realizaron.
- Portabilidade: as linguaxes de alto nivel son independentes da máquina para a que se estea a facer un determinado desenvolvemento. Isto permite que o esforzo de programación non estea condicionado pola variedade de plataformas nas que se desexa executar.
Características
das linguaxes de alto nivel
As
características máis importantes que deben presentar este tipo de
linguaxes son as seguintes:
- Utilizar un xogo de caracteres determinado (por exemplo non admiten o “ñ”) e un xogo de palabras reservadas que constitúen o léxico da linguaxe.
- Presentar unhas regras sintácticas de maneira que a portabilidade das linguaxes de alto nivel son independentes da máquina para a que se estea a facer un determinado desenvolvemento estrutura dos programas debe cinguirse as mesmas. Estas regras conforman a gramática dalinguaxe.
- Ter capacidade para realizar operacións de tipo aritmético, relacionais e lóxicas incluíndo o tratamento de cadeas de texto.
- Ter capacidade para bifurcar ou repetir o código (ou partes del) no lugar de executalo sempre secuencialmente.
- Ter facilidades para a programación modular baseada en subprogramas.
Vexamos a
continuación que elementos son necesarios para a realización dun
programa.
Ámbitos
de programación
Un ámbito de
programación é un programa ou conxunto de programas que engloban
todas as tarefas
necesarias
para o desenvolvemento dun programa ou aplicación. Estas tarefas son
basicamente as seguintes:
- Edición do programa.
- Compilación e enlazado.
- Execución.
- Depuración.
Hai quen
ademais inclúe a creación de documentación complementaria que
facilita o mantemento do programa dentro desas funcións.
Este tipo de
ámbitos incorporan numerosas ferramentas, utilidades, aplicacións
xa desenvolvidas, exemplos, titoriais, etc. Todas elas encamiñadas a
facilitar e mellorar o desenvolvemento.
Editores
O
primeiro elemento necesario par o desenvolvemento dun programa e un
editor de texto. Un editor e un programa que nos permite escribir
(editar) as instrucións do programa e posteriormente gardar o
programa nun ficheiro nun soporte de almacenamento. Pódese utilizar
calquera editor de texto para editar programas coa única precaución
de que a hora de gardar, salvar ou almacenar o programa so se
almacene o texto sen opcións de formato: grosa, estilos, itálica,
etc.
O
normal é utilizar un editor especialmente preparado para a
programación. Estes teñen facilidades para a corrección de erros,
destacan as palabras da linguaxe en cores, e en xeral facilitan a
labor do programador.
Procesadores
da linguaxe: tradutores, compiladores e intérpretes.
Unha
vez editado o noso programa é necesario que este sexa procesado e
transformado en ordes que
podan
ser executadas polo ordenador. Estas ordes polo tanto deben estar na
única linguaxe que a máquina entende: o código máquina. Para elo
son necesarios os procesadores da linguaxe cuxo concepto é moi
amplo. Dentro dos procesadores da linguaxe destacan os tradutores, os
compiladores e os intérpretes.
Un
compilador e un programa cuxo cometido é realizar a conversión dun
programa escrito nun linguaxe de programación ao seu correspondente
equivalente en linguaxe máquina. O resultado que devolve o
compilador e un programa que xa pode ser executado polo ordenador
destino sen necesidade de que o compilador estea presente. Por
exemplo, en linguaxe Pascal ou a linguaxe C son linguaxes de
programación que precisan ser compilados. Cando a conversión se
realiza entre a linguaxe ensamblador e o código máquina, o
compilador recibe o nome específico de Ensamblador.
Un
intérprete e un programa que convirte liña por liña o
programa escrito nunha linguaxe de programación e que a medida que
realiza a conversión executa as instrucións. Evidentemente o
intérprete non devolve nada xa que a execución realizase de forma
simultánea. Por este motivo, o intérprete debe estar presente
durante a execución. Linguaxes de programación que tradicionalmente
son interpretados son o LISP e o BASIC.
Un
tradutor e o nome que reciben aqueles procesadores da linguaxe que
converten programas de unhas linguaxes a outras pero no xeran código
máquina. Por exemplo hai tradutores de Pascal a C e viceversa.
Hai
outras linguaxes de programación que combinan ambas estratexias como
por exemplo sucede ca linguaxe de programación Java. Para esta
linguaxe existen tradutores que xeran un programa nun código
denominado intermedio que logo será executado a través dun
intérprete que recibe neste caso recibe o nome de máquina virtual
de Java.
Enlazadores
Por
simplificación e para facilitar a comprensión dos conceptos
anteriores sinalouse que os compiladores e os ensambladores (caso
particular do compilador) xeran código máquina que pode ser
executado polo ordenador. Sen embargo isto non e totalmente certo xa
que hai unha etapa de enlazado que debe ser realizada por outro
programa denominado enlazador (linker). O habitual e que durante a
escritura dun programa sexa necesario utilizar outros subprogramas en
forma de bibliotecas de funcións ou ben que o propio programa estea
formado por realmente por varios programas almacenados en diferentes
ficheiros. Esta situación fai que durante a compilación de cada
módulo non se coñeza con exactitude a situación das instrucións
do resto de programas ou bibliotecas de funcións. É frecuente que o
enlazado sexa un paso máis da compilación e que se execute
inmediatamente tras a compilación de todos os ficheiros.
É
habitual denominar a cada un dos ficheiros que participan no
desenvolvemento dun programa con nomes xenéricos que identifican en
que fase se atopan. Por exemplo, as instrucións que escribe
directamente o programador e que forman o programa na linguaxe de
programación escollida coma ficheiros fonte (source file). O
resultado da compilación destes programas denomínase ficheiro
obxecto (object file) e por último o resultado do enlazado ficheiro
executable (executable file). É este último o único que pode
entender o ordenador sen a presenza do compilador. No caso de
linguaxes interpretados o ficheiro fonte e directamente interpretado
e executado polo interprete.
Depuradores
Unha
vez editado e compilado o programa é necesario executalo (run en
inglés), pero o é habitual que durante o desenvolvemento dunha
aplicación se xeren ficheiros executables que aínda que sexan
correctos dende un punto de vista sintáctico non realicen o que
realmente se agarda deles polo que se considera que non funcionan
correctamente. Os depuradores (debuggers) son capaces de executar o
programa paso a paso incluíndo ademais un conxunto de facilidades
que permiten observar o valor das variables e estruturas de datos
permitindo así unha mellor localización de erros non evidentes.
Ningún comentario:
Publicar un comentario