Da tras da la sociedad ha venido dando un cambio dentro de lo que son los programas de automatizacin y lenguaje como un mtodo humano y no instintivo de comunicar ideas, emociones y deseos mediante un sistema de smbolos producidos voluntariamente. Esta denicin en principio se reere a un lenguaje natural, que es aquel hablado o escrito que usamos para la comunicacin ms cotidiana y general. Surgiendo como respuesta a la necesidad del hombre, con la intencin de satisfacerla, y si es posible sacar provecho de ella en el futuro. Las computadoras tambin surgieron como una respuesta de la humanidad ante la falta de organizacin y procesamiento rpido de la informacin que cada vez creca ms en las sociedades post-industriales.
Toda invencin humana viene con respecto a una necesidad, y ese mismo concepto se puede aplicar a la metodologa de programacin siendo este el proceso de disear, codificar, depurar y mantener el cdigo fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje de programacin el cual tiene como propsito crear programas que exhiban un comportamiento deseado. El proceso de escribir cdigo requiere frecuentemente de conocimientos en varias reas distintas, adems del dominio del lenguaje a utilizar, algoritmos especializados y lgica formal. Programar no involucra necesariamente otras tareas tales como el anlisis y diseo de la aplicacin (pero s el diseo del cdigo), aunque s suelen estar fusionadas en el desarrollo de pequeas aplicaciones. Siendo esta surgida como respuesta a la necesidad de los programadores de interactuar con la computadora a un nivel ms humano.
PARADIGMAS DE LA PROGRAMACIN:
El trmino paradigma puede indicar el concepto de esquema formal de organizacin, y ser utilizado como sinnimo de marco terico o conjunto de teoras. Generalmente se puede definir al trmino paradigma como la forma de visualizar e interpretar los mltiples conceptos, esquemas o modelos del comportamiento en todas las etapas de la humanidad en lo psicolgico y filosfico,(y en diversas disciplinas, como el trabajo social), que influyen en el desarrollo de las diferentes sociedades as como de las empresas, integradas e influenciadas por lo econmico, intelectual, tecnolgico, cientfico, cultural, artstico, y religioso que al ser aplicados pueden sufrir modificaciones o evoluciones segn las situaciones para el beneficio de todos.
La programacin estructurada es un paradigma de programacin orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando nicamente subrutinas y tres estructuras: secuencia, seleccin e iteracin; considerando innecesario y contraproducente el uso de la instruccin de transferencia incondicional, que podra conducir a "cdigo espagueti", que es mucho ms difcil de seguir y de mantener, siendo la causa de muchos errores de programacin. Es posible hacer la programacin estructurada en cualquier lenguaje de programacin, aunque es preferible usar algo como un lenguaje de programacin procedimental. Algunos de los lenguajes utilizados inicialmente para programacin estructurada incluyen: ALGO, PASCAL, PL/I y ADA, a veces deliberadamente omiten caractersticas
en un esfuerzo para hacer ms difcil la programacin no estructurada.
Para crear un programa, y que la computadora lo intrprete y ejecute las instrucciones escritas en l, debe usarse un lenguaje de programacin. En sus inicios las computadoras interpretaban slo instrucciones en un lenguaje especfico, del ms bajo nivel, conocido como cdigo mquina, siendo ste
excesivamente complicado para programar. De hecho slo consiste en cadenas de nmeros 1 y 0 (sistema binario). Para facilitar el trabajo de programacin, los primeros cientficos que trabajaban en el rea decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del ingls; las codificaron y crearon as un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. En realidad escribir en lenguaje ensamblador es bsicamente lo mismo que hacerlo en lenguaje mquina, pero las letras y palabras son bastantes fciles de recordar y entender que secuencias de nmeros binarios. A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un mtodo sencillo para programar.
Entonces, se crearon los lenguajes de alto nivel; mientras que una tarea tan trivial como multiplicar dos nmeros puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastar con solo una. Una vez que se termina de escribir un programa, sea en ensamblador o en un lenguaje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguaje mquina. Por consiguiente Gual (1985) refleja que la programacin debe perseguir la obtencin de programas de calidad, para ello se establece una serie de factores que determinan la calidad de un programa como lo son correccin, claridad, eficiencia y portabilidad. Dicho autor especfica y quiere dar a conocer que la programacin sigue varias etapas entre estas se encuentran la correccin que debe hacer tal y como se estableci en las fases previas a su desarrollo, tambin la claridad que el programa sea lo ms claro, legible y posible. Tambin encontramos, eficiencia que 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, un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software.
De esta manera, el estudio de los lenguajes de programacin, es llamado a veces lingstica de la programacin, por analoga con la lingstica de los lenguajes naturales. La analoga se basa en el hecho en que ambos; lenguajes naturales y lenguajes de programacin, poseen sintaxis (forma) y semntica (significado). La analoga no puede tomarse en todo el contexto, Los lenguajes de programacin no pueden ser comparados con los lenguajes naturales en trminos de su rango de expresividad y subjetividad. Por otro lado, un lenguaje natural no es ms ni menos que un grupo de personas que hablan y escriben, as que la lingstica natural est restringida al anlisis de los lenguajes existentes; mientras que los lenguajes de programacin son concienzudamente diseados y se pueden implementar en computadoras. Cada lenguaje de programacin es una creacin y como tal ha sido cuidadosamente diseado. Algunos lenguajes han sido diseados por personas nicas, como por ejemplo Pascal. Otros, han sido diseados por un grupo grande de personas, tales como PL/l y Ada. La experiencia sugiere que aquellos lenguajes diseados por personas nicas o grupos pequeos, tienden a ser ms compactos y coherentes que aquellos lenguajes diseados por grandes grupos. El lenguaje de programacin debe ser universal; es decir, cualquier problema debe tener una solucin que puede ser programada en el lenguaje y dicha solucin ser implementada en cualquier computador. Este requisito es uno de los ms fuertes y pocos lenguajes lo poseen. Se dice que cualquier lenguaje en el cual pueden definirse funciones recursivas se considera universal. De otro lado, un lenguaje sin recursin ni interaccin no puede ser universal. As mismo el lenguaje de programacin debe ser implementable en una computadora, es decir; debe ser posible ejecutar un programa en trminos del lenguaje en cualquier mquina. La notacin matemtica generalmente no es implementable porque en su notacin es posible formular problemas que no pueden ser resueltos por cualquier computador. Los lenguajes naturales tampoco son implementables por razones totalmente diferentes: ellos son tan imprecisos y tienden a ser muy
ambiguos. Segn Niklaus Wirth (1986), Los lenguajes de hoy no son el producto final del desarrollo del diseo del lenguaje; nuevos conceptos y paradigmas estn siendo desarrollados y los lenguajes de programacin de los prximos diez aos podran ser un poco diferentes al de hoy. El siguiente autor nos quiere dar a entender que los lenguajes de programacin han sido inventados, examinados e implementados en sucesivos lenguajes. Y los mismos que vendrn despus no sern iguales a los de hoy en da. Por consiguiente al estudio de los lenguaje en cuanto al enfoque del proceso de programacin de los lenguajes se le denomina paragdimas de programacin entendindose el termino paradigma como la forma de ver y hacerlos programas. Bajo este enfoque se tienen cuatro paradigmas los cuales son: paradigma por procedimiento o paradigma imperativo, paradigma declarativo, paradigma funcional y paradigma orientado a objetos.
Los lenguajes de programacin estn basados en uno o ms paradigmas, que pueden soportar distintos paradigmas de programacin con el objetivo de que un programador utilice el ms conveniente a la hora de resolver un problema. Ningn paradigma es capaz de resolver todos los problemas de forma sencilla y eficiente, por lo tanto es til poder elegir entre distintos estilos de programacin dependiendo del tipo de problema.