3.1. Características Del Lenguaje de Programación
3.1. Características Del Lenguaje de Programación
3.1. Características Del Lenguaje de Programación
Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana.1 Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el cdigo fuente de un programa informtico se le llama programacin. Tambin la palabra programacin se define como el proceso de creacin de un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los siguientes pasos:
El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de programacin especfico (codificacin del programa). Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin.
Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y 'lenguaje informtico'. Los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como por ejemplo HTML (lenguaje para el marcado de pginas web que no es propiamente un lenguaje de programacin, sino un conjunto de instrucciones que permiten disear el contenido de los documentos). Permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural. Una caracterstica relevante de los lenguajes de programacin es precisamente que ms de un programador pueda usar un conjunto comn de instrucciones que sean comprendidas entre ellos para realizar la construccin de un programa de forma colaborativa.
Una vez que se ha visto cmo abordar un problema y cmo escribir un algoritmo que lo modelase se vern a continuacin las herramientas de que se dispone, los lenguajes de programacin para programar un algoritmo, cmo construir un programa, y cmo programarlo utilizando pseudocdigo.
FUNDAMENTOS DE PROGRAMACION
Cul es el propsito de un lenguaje? Los lenguajes de computacin pueden ser de propsito general o especficos. C, C++, Java, Pascal, etc. Son lenguajes de programacin de propsito general SQL, PROMELA, Actionscripts son lenguajes especficos POR QU LA DIVERSIDAD DE LENGUAJES INFORMTICOS? En primer lugar, existen distintos tipos de lenguajes de programacin porque cada uno de ellos est especificado para resolver un grupo de problemas con caractersticas similares. En segundo lugar, los lenguajes de programacin han ido evolucionando hacia una mayor facilidad, flexibilidad y potencia. Por esto, han ido apareciendo distintos tipos de lenguajes que ofrecen una funcionalidad mayor y generalmente una filosofa de programacin novedosa. Por ltimo, las compaas que disean software estn muy interesadas en tener muchos lenguajes de programacin en el mercado porque esto les reportar ms beneficios econmicos. POR QU ES IMPORTANTE EL ESTUDIO DE DIFERENTES LENGUAJES O PARADIGMAS CUANDO AL FINAL SLO TRABAJAS CON UNOS POCOS? Hay muchas razones que justifican su estudio, entre las cuales las ms importantes son: Mejora el uso del lenguaje de programacin: si se conoce cmo estn implementadas las caractersticas en un lenguaje de programacin, se mejorar la habilidad para escribir programas eficientes. Por ejemplo, si se conoce cmo crear y manipular listas o cadenas en un lenguaje, por ejemplo Scheme, utilizando recursin se conseguir construir programas ms eficientes. Incrementa el vocabulario de los elementos de programacin. Permite una mejor eleccin del lenguaje de programacin: El conocimiento de diversos lenguajes de programacin facilitan la eleccin del lenguaje ms adecuado para un proyecto determinado. Mejora la habilidad para desarrollar programas efectivos y eficientes: Muchos lenguajes proporcionan caractersticas que, cuando se utilizan correctamente, aportan muchos beneficios a la programacin pero, cuando se hace un uso incorrecto, pueden ocasionar un gran coste computacional. El ejemplo tpico es la recursin, que permite una implementacin elegante y eficiente de funciones. Pero cuando no se sabe utilizar, puede ocasionar un aumento exponencial del tiempo de ejecucin.
FUNDAMENTOS DE PROGRAMACION
Facilita el aprendizaje de un nuevo lenguaje de programacin: Cuando se conocen las estructuras, tcnicas de implementacin y construcciones de un lenguaje, es mucho ms sencillo aprender un nuevo lenguaje de programacin que tenga estructuras similares. Facilita el diseo de nuevos lenguajes de programacin: Es posible que en un futuro tenga que disear un lenguaje que se adapte a vuestras necesidades. Cuantos ms lenguajes y paradigmas se conozcan, ms sencillo resultar el diseo y la implementacin.
Caractersticas comunes a todos los lenguajes de programacin: Tienen una sintaxis: un conjunto de reglas que definen qu expresiones de texto son correctas. Por ejemplo, en C todas las sentencias deben terminar en ';'. Los lenguajes de programacin se ejecutan en un computador y tienen una determinada semntica que define cul ser el resultado de la ejecucin de un programa. Definen un conjunto de tipos de datos primitivos que representan los posibles valores que pueden devolver las expresiones del lenguaje. Tienen mecanismos de abstraccin para definir nuevos tipos de datos a partir de los primitivos o nuevas funciones y procedimientos. Todos los lenguajes de programacin permiten combinar ideas simples en ideas ms complejas mediante los siguientes tres mecanismos: expresiones primitivas, que representan las entidades ms simples del lenguaje mecanismos de combinacin con los que se construyen elementos compuestos a partir de elementos ms simples mecanismos de abstraccin con los que dar nombre a los elementos compuestos y manipularlos como unidades
FUNDAMENTOS DE PROGRAMACION
Compilacin: es el proceso que traduce un programa escrito en un lenguaje de programacin a otro lenguaje de programacin, generando un programa equivalente que la mquina ser capaz interpretar. Los programas traductores que pueden realizar esta operacin se llaman compiladores. stos, como los programas ensambladores avanzados, pueden generar muchas lneas de cdigo de mquina por cada proposicin del programa fuente. Interpretacin: es una asignacin de significados a las frmulas bien formadas de un lenguaje formal. Como los lenguajes formales pueden definirse en trminos puramente sintcticos, sus frmulas bien formadas pueden no ser ms que cadenas de smbolos sin ningn significado. Una interpretacin otorga significado a esas frmulas.
Se puede tambin utilizar una alternativa para traducir lenguajes de alto nivel. En lugar de traducir el programa fuente y grabar en forma permanente el cdigo objeto que se produce durante la compilacin para utilizarlo en una ejecucin futura, el programador slo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuacin, un programa intrprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la mquina, convierte cada proposicin del programa fuente en lenguaje de mquina conforme vaya siendo necesario durante el procesamiento de los datos. El cdigo objeto no se graba para utilizarlo posteriormente. La siguiente vez que se utilice una instruccin, se la deber interpretar otra vez y traducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instruccin del bucle tendr que volver a ser interpretada en cada ejecucin repetida del ciclo, lo cual hace que el programa sea ms lento en tiempo de ejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpido en tiempo de diseo (porque no se tiene que estar compilando a cada momento el cdigo completo). El intrprete elimina la necesidad de realizar una compilacin despus de cada modificacin del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelacin deber ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una ejecucin del cdigo. La mayora de lenguajes de alto nivel permiten la programacin multipropsito, sin embargo, muchos de ellos fueron diseados para permitir programacin dedicada, como lo fue el Pascal con las matemticas en su comienzo. Tambin se han implementado
FUNDAMENTOS DE PROGRAMACION
lenguajes educativos infantiles como Logo que mediante una serie de simples instrucciones. En el mbito de infraestructura de internet, cabe destacar a Perl con un poderoso sistema de procesamiento de texto y una enorme coleccin de mdulos.
Tcnica
Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una serie de detalles.
Correccin. Un programa es correcto si hace lo que debe hacer tal y como se estableci en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qu debe hacer el programa antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace. Claridad. Es muy importante que el programa sea lo ms claro y legible posible, para facilitar as su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, as como cuidar el estilo en la edicin; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creacin como en las fases posteriores de correccin de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es an ms necesaria para que otros programadores puedan continuar el trabajo fcilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de cdigo. Otros, por diversin o para impedir un anlisis cmodo a otros programadores, recurren al uso de cdigo ofuscado. Eficiencia. Se trata de que el programa, adems de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que tambin pueden ser de consideracin al obtener la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, trfico de red que genera, etc.). Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en la que se elabor. La portabilidad es una caracterstica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse tambin en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a ms usuarios ms fcilmente.
FUNDAMENTOS DE PROGRAMACION