sábado, 19 de abril de 2014

Tema 1 Unha pequena Introdución

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 da
    linguaxe.
  • 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