Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: digimikeh en 18 Mayo 2020, 19:30 pm



Título: Conservación general: Como hacen un lenguaje?
Publicado por: digimikeh en 18 Mayo 2020, 19:30 pm
Hola amigos... Este post es a modo de cultura general.

Entiendo a esta altura como funciona la lógica de programar, algoritmos, etcetc... Es relativamente fácil... Sin embargo aun no entiendo como hicieron para crear un lenguaje de programacion a partir de la nada practicamente... 

Acaso Daniel Ritchie ( por nombrar uno) tenía conocimientos profundos de electronica?, como determinaron ellos el curso de un pulso eléctrico que va a la memoria?... Yo he usado protoboards y entiendo cuando la energía eléctrica viaja por los canales y se topa con resistencias y luego encienden un led... Pero eso es extremadamente básico comparado a lo que pienso que se tendría que hacer para generar lo necesario para que la palabra void tuviera un significado...

Lo que me intriga es la cantidad de abstracciones que hay entre una palabra y todos los pulsos eléctricos que hay detrás de ella...

Alguien tiene alguna idea de como funciona esto?

Saludos


Título: Re: Conservación general: Como hacen un lenguaje?
Publicado por: Serapis en 18 Mayo 2020, 21:34 pm
Es que esto no llovió en un día.

Cada uno de los lenguajes se realizó (y se continúa) pensando en solucionar determinados problemas que aparecían en otros o bien a situaciones a las que no daban solución.

Hay varios hitos en la Historia:
- La teoría de conjuntos con Cantor.
- Charles Babbage y su máquina analítica.
- El primer programa de la Historia se concede a Augusta Ada Byron (hija de Lord Byron), al sugerir y programar mejoras en la máquina de Babbage.
- El álgebra de Boole como una clarificación de la teoría de conjuntos que supone la lógica proposicional.
- Las mejoras en aritmética introducidas por Dedekind.
- La arquitectura von Neumann de John Von Neuman en una dosis de genialidad, traza lo que es el comienzo de los ordenadores físicos (palpables), más bien el cálculo a través de 'máquinas' como se concebía por entonces.
- El lingüista, Noam Chomsky definió una jerarquía de los lenguajes bien fundamentado, no caprichosamente.
- Claude Shannon, definió la 'teoría de la información'.
- Fano y posteriormente Huffman, aplicaron dicho concepto para algoritmos, como la compresión en fechas que aún no había ordenadores como los vemos hoy.
- El primer chip integrado (que dejaba atrás las válvulas de vacío). Tengo por ahí revistas de mediados de los 50, de radio y Tv. que narraban las noticias como hoy escuchamos las noticias de la Nasa en cualquier revista de divulgación científica, o igual que se recogían las noticias de la llegada a la Luna.
- Hacia finales de los 50 y comienzos de los 60, se podía asumir que "cada maestrillo tiene su librillo", entonces a alguien se le ocurre reunir, compartir y divulgar todo ese conocimiento que está retenido de forma exclusiva en unos pocos, se crean y patrocinan grupos, congresos y series de divulgación centrada en la materia.
- El concepto de 'programa compiladao'.
- Con John Backus y su propuesta para Algol, y después a Peter Naur surgió el BNF, que permitió doblegar la descripción exahustiva de la sintaxis de los lenguajes hasta entonces, nadie podía alegar conocer completamente ningún lenguaje. algol fue el primero en verse como un lenguaje basado en las especificaciones. Hasta entonces, era puro arte sujeto a errores sin posibilidad de ser exahustivos.
- Con las críticas de Dijkstra sobre el uso del 'Goto' puede afrimarse que nace la programación estructurada.
- ADA tuvo el mérito de unificar criterios, con lo que surgieron los estándares, para no rehacer la rueda. El Departamente de Defensa de USA usaba por aquel entonces alrededor de 500 lenguajes distintos, por supuesto totalmente incompatibles entre sí, que suponían un gasto económico. Podría casi afirmarse que se creaba (o actualizaba) un nuevo lenguaje para cada contrato... ADA vino a solucionar esa infinita diversidad.
- Con John McCarthy, surge Lisp y la inteligencia artificial.
- Kemeny y Kurtz, crearon en 1964 el BASIC... el lenguaje mas cercano al natural aunque muy limitado en funcionalidad, que vino a demostrar que la complejidad puede ser absorbida. Pascal y C son 4 y 8 años posteriores al BASIC, curiosamente.
- Niklaus Wirth con Pascal, asienta en las universidades el estudio de la informática. Hasta entonces los lenguajes eran demasiado complejos, la gente 'común' reuía de ellos.
...
- La programación orientada a objetos, ya estaba muy presente desde prácticamente los 70, pero era conceptual, no es hasta la primera concrección de Bertrand Meyer (quien define y especifica Eiffel), cuando se consagra como tal.

Ni mucho menos los dados en la lista, son todos, solo los que me han venido a la memoria a bote pronto y acortada. Dennis (no Daniel) Ritchie?. Probablemente no lo incluyera como significativo.
En fin, como decía no fue un diluvio de un día, si no muchas lluvias a lo largo de muchos años...


Explicar cada paso en detalle requiere un libro bien gordo, pero 'tirando del hilo' podrás ampliar. Así que te he buscado algunos enlaces:

Historic Documents in Computer Science:
http://web.eah-jena.de/~kleine/history/

The History of Language Processor Technology in IBM:
https://pdfs.semanticscholar.org/20fb/5f3fe267f8df829da85f160868f0dc314abe.pdf

Desde wikipedia:
https://en.wikipedia.org/wiki/History_of_programming_languages