Habla con la máquina: como Su ordenador y el teléfono, comprenden lo que Usted quiere

Lo que sucede cuando Usted presiona los números en la calculadora o escribe un mensaje en el мессенджере? El joven científico sergey Лисицын explicó cómo funcionan los traductores del lenguaje humano en la máquina, a saber, los compiladores, y como el principio de su trabajo nos puede ayudar a aprender los dos idiomas y más.





Lo que debe saber sobre todo los Lenguajes de programación y programas, y en ellas escritas que ha llenado nuestra vida. Se calcula que, en este momento hay de dos y media a diez mil de los lenguajes de programación — formales emblemáticos de los sistemas. Con su ayuda, se escribe el programa — es el conjunto de pasos que debe realizar la máquina.

Por cualquiera de nuestros acción en el ordenador, la tableta y el teléfono, hay un montón de idiomas en los que está estrictamente de acuerdo con ciertas reglas describe lo que potencialmente podemos cometer. Y sólo una pequeña parte de estos lenguajes es capaz de comunicarse con el ordenador directamente, es decir, interactuar directamente con el código de máquina, compuesto por unos y ceros.

Para el resto de lenguajes, como C++ o Java se necesitan traductores que copiarán nuestro programa en el claro de un ordenador de forma. Una de las variedades de estos traductores y se llama compilador.

No es de extrañar que la redacción y la ortografía de los traductores — una ciencia, que es muy actual y versátil. Antes de la aparición de la vida de los programadores era pesado y неказиста: los profesionales tenían que escribir sus programas en forma de código, es decir, el conjunto de ceros o unos. Él se veía muy complicado, es muy difícil de leer, y además editar. Pero en vez de código nativo llegaron los lenguajes de programación, mediante los cuales es mucho más fácil de explicar equipo de las tareas asignadas. Y para esos idiomas, respectivamente, eran necesarios los traductores.

El primer traductor en la urss — o, como se llamaba entonces, el pp, программирующая programa fue escrito en el año 1954. Hoy en día los traductores son variadas: juegos gratis para descargar y editar (o de código abierto) y de pago, que no se puede ajustar.

 

Asumir el rol de compilador

Traducir el idioma del programa en el idioma del equipo puede ser diferente. Existe la opción de tomar por separado cada línea y de explicar su equipo, sin embargo, a menudo es mejor leer el programa completo, procesar, hacer más óptimo para la comprensión de la computadora, y luego formalizar en forma de código. Los traductores del primer tipo se llama intérpretes, y la segunda a los compiladores.

Hay muchas formas intermedias. Asumir el papel de un compilador o un intérprete fácilmente mediante la presentación de sí mismo intérprete, por ejemplo, con el coreano ruso. Se pueden volver a escribir el texto en otro idioma, traduciendo cada propuesta por separado, y se entera de leer el libro, comprender, reflexionar, como en otro idioma, se sonará mejor, los otros medios de expresión. Si su objetivo es transmitir la idea principal, puede incluso limpiar el exceso en su opinión, los capítulos y de llamar a los personajes por otros nombres. Todo depende de la meta antes de que el traductor de la tarea.





Sin embargo, vale la pena aclarar otro un punto extremadamente importante. Si usted es un traductor-intérprete, para cada uno de leer la traducción que volver a escribir cada línea de nuevo. Dicho de otro modo, el libro en el estante con el final de una traducción del coreano al ruso no tienes.

En caso de que usted estudiosos traductor, compilador, el fruto de sus obras — la traducción se estructura en un libro, que se puede poner en la estantería, admirar, смахивать con ella el polvo y sacar en cualquier momento conveniente. En el idioma del equipo este libro, escrito en un lenguaje comprensible por la máquina, se llama el archivo ejecutable. Sin embargo, si después de las reflexiones sobre el texto, el autor del libro, que se está traduciendo, decidí hacer otro par de ofertas, o el exceso de comas, tendrás que hacer todo de nuevo, leer un nuevo libro, reconocer, reflexionar y poner en el estante junto a la antigua traducción de un nuevo volumen. Con los dos obtenidos en el trabajo no pueden incluso variar entre sí, sin embargo, para esto es sin duda descubrirlo tendrás que traducir todo de nuevo.

 

Más — más, Que se encuentra en el interior del compilador, o cómo funcionan los traductores profesionales? Convencionalmente, el compilador se puede dividir en tres partes: la parte de frontend, middle-end y backend. Pararemos en detalle en cada uno de ellos.

Frontend trabaja directamente con la lengua, con la que queremos traducir el libro. Y es increíblemente útil (más tarde, el lector comprenderá por qué). El compilador produce el léxico, sintáctico y semántico de análisis. Hablando el lenguaje de los libros, aquí propuestas se dividen en las palabras, está el predicado y el sujeto, se establece la relación entre las partes de la propuesta y el resto de las propuestas.

Ahora imagine otra cosa interesante. Digamos que usted ponga el gran libro en el idioma ruso, y de su nacionalidad francés. Su tarea en la primera etapa — leer coreano prueba y traducirlo al francés, en el que prefiere trabajar. Volviendo a los equipos, el idioma en el que se presenta la información en el compilador, es diferente de la lengua de un archivo ejecutable (un libro en ruso), y del programa de idioma que desea traducir (libro en coreano). Este lenguaje se llama lenguaje de la representación intermedia.

En la segunda etapa — middle-end — usted en su propio idioma (en nuestro caso, en francés), reflexiona y transformar el texto para que sea más claro, es decir, realiza el papel no sólo de un intérprete, pero y el editor. Si este es el artículo de análisis, la mitad compuesta por "agua", en la fase de middle-end de la traducción al francés del texto quita todo el exceso y lo dejas solo sentido componente.

Sucede que antes de que usted no tiene la tarea de editar la autora. Además, si te consideras suficientemente inteligente para decirle que necesita y lo que no, usted no puede editar el texto completo. Es decir, el equipo no puede optimizar y no modificar el código del autor traducido en una representación intermedia, puede hacerlo con alguna de las restricciones, y totalmente a su discreción. La ruta más óptima depende de la situación.

Totalmente неоптимизированный el código, especialmente escrito para los principiantes, a menudo es lento e ineficaz. Por lo tanto, algunos elementos de la optimización de escribir recomiendan. Pero totalmente optimizar el código, también, que no siempre vale la pena — por ejemplo, en el lenguaje C, donde el programador puede disponer de la memoria, a su discreción, teniendo en cuenta el seguimiento de la tarea: es el factor, que el equipo no puede prever.





Finalmente, en la última parte del compilador, en el backend, traducimos reciclado o la versión guardada del libro francés en el idioma ruso. O, hablando el lenguaje de los programadores, la traducimos a lenguaje intermedio de su ejecución en el idioma del archivo ejecutable. Este ejecutable, el archivo se guarda con independencia del origen de programa en la memoria y se puede ejecutar tantas veces como queremos.

 

Los compiladores como la esencia del progreso

En un mundo constantemente se crean nuevas y finalizados los antiguos idiomas. Está en constante desarrollo y la arquitectura de su equipo, la manera en que la máquina recibe y lee la información. Resulta que cualquier cambio en la arquitectura o los idiomas requieren volver a reescribir el compilador? No.

Todo esto requeriría de grandes cantidades de dinero y esfuerzo de los programadores después de cada pequeño cambio, y el progreso no podría marchar a un ritmo similar. Para romper este problema por lo que es conveniente aplicar el esquema anteriormente descrito tres etapas. El caso es que al crear una nueva o la finalización de un antiguo idioma desea grabar sólo el frontend es la primera etapa, que interactúa directamente con el lenguaje de los programas y переводящий en el lenguaje de la representación intermedia. Tras esta acción, los otros dos piezas que trabajan ya con el intermedio de la representación y el lenguaje de un archivo ejecutable, procesan el código de la misma manera que antes.

Similar situación se presenta en el caso de cambios en la arquitectura. Ya que es la última etapa, backend, funciona con la traducción intermedio de la presentación de la final del código, los cambios sólo parte de él es suficiente para que el compilador ha ganado y bajo una arquitectura diferente. Volviendo a la analogía con las obras literarias de los traductores, al aprender un nuevo idioma, por ejemplo, en hebreo, es suficiente recordar la traducción de todas las palabras del hebreo al francés, para luego traducir a cualquier otro idioma. Esto es ideal. Esta situación se encontraba a cualquier persona, con amplia experiencia en el estudio de más de dos idiomas.

La clase de científicos y técnicos en constante aumento, se escriben nuevos idiomas, para los viejos se publican nuevas normas, constantemente se realizan cambios en la arquitectura del equipo. Todo esto requiere un esfuerzo por parte de los programadores que escriben los compiladores. Las técnicas de optimización aplicadas a la mejora de código en tiempo de compilación, también constantemente matemáticos. En el intercambio de experiencias en ciencias de computación, una gran ayuda para proyectos de código abierto, cuando toda elaboración se impone a la vista de todos y puede ser utilizado libremente por todos. En general, los compiladores junto con el desarrollo seguido por los programas y equipos, y sin ellos en este momento no hay desarrollo ni una informatizado de la industria. publicado

Autor: Sergey Лисицын

P. S. Y recuerde, sólo cambiando su consumo — estamos juntos cambiando el mundo! ©

Únase a nosotros en Facebook , Twitter, Myspace

Fuente: theoryandpractice.ru/posts/12435-compilers

Tags

Vea también

Nueva y Notable