Contactos

Diferentes lenguajes de programación y su alcance. Conferencia en yandex. Extensión de las lenguas de programación existentes Idiomas de programación extendidos

Zalina 13 de enero de 2016 a las 15:42

Diferentes lenguajes de programación y su alcance. Conferencia en yandex

  • YANDEX BLOG
  • Desarrollo de sitios web,
  • Programación
  • Programación industrial

Nuestro primer puesto este año decidimos dedicar un tema muy básico, una conferencia en la que se leyó en un pequeño horario. Están involucrados en estudiantes de secundaria que son tecnologías interesantes, desde aquí la especificidad de la presentación, la conferencia será particularmente interesante para aquellos que apenas están comenzando a programar y pensar cómo desarrollarse. Para ellos, Yandex tiene un curso "Introducción a la programación (C ++)", que se puede pasar en la plataforma Stepic.org.

El profesor Mikhail Gustokashin es un curador de los programas académicos de Yandex, director del Centro de Juegos Olímpicos de los Estudiantes de la Facultad de Ciencias de la Computación HSE. Mikhail preparó docenas de ganadores y medallistas de las competiciones de programación de todas las rusas.

Como parte de la conferencia, se describe sobre qué son los idiomas de programación que difieren a medida que aparecen y cuál de ellos es mejor, y qué son peores. Al principio, hablaremos un poco sobre la historia de los idiomas: cómo aparecieron cómo la gente comenzó a programar cómo se desarrolló todo, que está sucediendo ahora. En la segunda parte, se verá afectada por las tareas de qué idioma es adecuado, cómo "elegir su idioma favorito y disfrutar de la vida". El profesor también contará un poco sobre cómo, en su opinión, para aprender todo a esto y luego obtener un trabajo.

Como siempre, bajo la decodificación detallada de las conferencias de corte para que pueda navegar en su contenido.

Historia de las lenguas de programación.

Vamos a empezar desde el principio. Al principio, las computadoras ni siquiera tenían un teclado! Es decir, todo fue muy malo, no tenían un teclado ni la pantalla, había tarjetas (estas son tales cosas con agujeros o con la falta de agujeros). En consecuencia, los pasadores se pusieron allí, si la luz brillaba allí. Si hay un agujero (o viceversa no lo es), significó un Nolik o uno. Y los programas en ese momento escribieron con la ayuda de códigos de máquina: cada operación en la computadora (adición, resta, algunas operaciones más complejas) fue una especie de código de máquina. Las personas mismas eligieron este código sobre la mesa, todo tipo de direcciones en la memoria, todo esto se eliminó con las manos y lo puso en el lector, y se lo consideró todo. Por supuesto, el trabajo del programador era, probablemente, entonces, entonces, no particularmente interesante, hacer agujeros, y con el desarrollo de la ciencia y la tecnología, por supuesto, comenzó a inventar todo tipo de piezas "interesantes". Por ejemplo, Asssembler (ensamblador), que ya ha facilitado unas pocas vidas.

Bueno, ¿cómo facilitó la vida? En lugar de memorizar que hay algún tipo de código de "magia" del equipo, se utilizaron todo tipo de palabras, similares a los ingleses "humanos", algunos agregar o MOV, y luego los registros o registros de memoria, las variables con las que esta operación Operaciones. Pero está claro que esto en general, también exigió una tensión bastante grande de la mente para mantenerse en mi cabeza, en la que tenemos el registro, donde lo que variables y lo que está sucediendo en absoluto. ¿Por qué sucedió? Porque las computadoras eran "estúpidas" y no pudieron entender nada más "inteligente". En realidad, y recoger el código de la máquina del ensamblador también lleva tiempo, la memoria (para aquellos tiempos fue ciertamente pocos).

Gradualmente, quedó claro que era muy difícil desarrollar programas complejos tan grandes. El rendimiento del programador en estos equipos fue extremadamente bajo, es decir, escribió varias líneas por día (significativas), y cada línea no hizo realmente nada, una simple acción aritmética. Y la gente quería hacer idiomas mucho más como un idioma humano, en inglés, en particular, para escribir programas fue más fácil y más conveniente. Y fue, fue!

Idiomas viejos y muertos

Uno de los primeros idiomas fue FORTRAN. Por cierto, también estaba eliminado en las capillas, había capillas especiales para eliminar programas en Fortran. Pero si toma este Fortran ahora, en mi opinión, está incluso en algún lugar entre 50-60. Apareció, y intentas escribir algo en él, entonces serás muy desagradable, te garantizo! Modern Fortran sigue vivo, pero ya es bastante diferente de lo que era antes.

Otros idiomas: ahora escribiré una cosa sobre la que probablemente hayas escuchado, solo en cualquier evento, donde se cuenta la programación sobre la historia es COBOL. Fue un idioma para escribir aplicaciones de negocios. ¿Qué es una aplicación de negocios? Algunas transacciones en bancos, algo más escribió todo esto en un COBOL. Nosotros, comprensibles, no es muy popular. Creo que un programador en un COBOL, en Moscú, encontrarás con gran dificultad. Y en algún lugar no en Moscú, con aún más dificultad. Pero, que es sorprendente, hace 10 años, más de la mitad de todo el código escrito por la humanidad, se escribió en un COBOL. Y hasta ahora, se está realizando una parte importante de todas las transacciones bancarias con los programas escritos en él (COBOL), y aún las personas escriben algo en él.

También hay un lenguaje "divertido", se le llamó algol (68ª versión, que caracteriza el año de su creación). Este es un lenguaje algorítmico. En general, pudieron morir allí, pero ahora no estamos muy interesados \u200b\u200ben lo que saben. Y sobre esto, nuestra excursión en la antigüedad y en idiomas relativamente no utilizados se puede terminar y proceder al hecho de que todavía hay vida (y vive activamente).

Lenguas antiguas, pero en vivo.

Algol se inventó en Europa, y Fortran se usó principalmente en los Estados Unidos, no hay grandes diferencias. ¿Cuál es la tendencia notable? Al principio, todo fue difícil y escribirlo era necesario ser casi un ingeniero, ingeniería eléctrica, para comprender dónde se cierran los contactos y algo más para la programación. Luego también necesitaba sentarse con las hojas y contar la memoria, observándola. Y gradualmente, todo se hizo más fácil, más fácil, más fácil y más fácil aún más fácil para el programador, lo más pequeño posible para pensar que una persona lo más posible se puede hacer automáticamente. Al final de este período (el profesor indica Algol y Cobol), los idiomas comienzan a aparecer, lo que, en cierto sentido, "vivió" hasta nuestros días.

Básico. Quizás aún algunas personas escriben algo en él, al menos he visto que en algunas instituciones se enseña en QBASIC 'E: una ventana tan azul, donde se escribe "1989". En general, "¡Mayorwall" vive! Fue inventado como un lenguaje para no programadores. En ese momento, el programador era una profesión tan especializada. Y aquí le dicen: "Tenemos un idioma genial básico, y cualquier persona razonable tomará y escribirá un programa en él, fácil". Una vez más, el Beysik y el Beysik moderno son una gran diferencia. Todo tipo de estas filas con la numeración después de 10, todo tipo de goto y otro horror, no tienen relación con el Basik moderno, e incluso a lo básico del 89º año que tienen una pequeña relación.

Otra historia divertida es Pascal, ampliamente conocida en los círculos universitarios, principalmente en Rusia y en los países de la antigua Unión Soviética. Se usó y continúa siendo sorprendente como un lenguaje de entrenamiento. En el resto del mundo, está smallado, pero también vive y vive. Hay tal interrupción de un hombre, aquí es un científico, teórico. Participó en la discusión de Algola, no le gustó lo que sucedió, y se le ocurrió su lenguaje: Pascal. Y luego la compañía Borland (y antes de que muchas otras empresas (Apple lo hicieron, en particular) tomaron y arruinaron todo. Tenía una hermosa teoría, delgada: "todo estará bien", y tomaron y metieron el hecho de que las personas necesitan trabajar. Bueno, y resultó ser tan hermoso como él quería.

Y finalmente. Si inventó ingenieros. Si Pascal se le ocurrió a un científico, entonces Si inventó a Kernigan y Ritchi, trabajaron como ingenieros en Bell. ¿Cómo pasó esto? En ese momento en estos idiomas (el profesor indica FORTRAN, COBOL, ALGOL), NADA SYSTEMIC escribió. ¿Qué es "Sistema"? Por ejemplo, un sistema operativo, algunos conductores, algo más. Estos idiomas estaban destinados a cálculos matemáticos, para los cálculos de negocios, ya que todos tales. Y todo lo demás escribió en el ensamblador. Hubo algunos idiomas, ahora murieron, es decir, el idioma XI apareció de inmediato desde el ensamblador, sino a través de algunas cosas intermedias.

¿La esencia de qué? Kernigan y Ritchi le encantaban jugar al juguete de los asteroides: una nave espacial vuela, y hay asteroides, los tira, y se deshacen. Tenían un servidor en el que jugaban, pero había mucha gente, y el juguete se desaceleró. Y descubrieron en algún lugar de la oficina que tienen algún tipo de computadora que nadie usa. Pero hubo un problema, era otra arquitectura, y el juego fue escrito en el ensamblador.

Ellos lo reescriben, por supuesto, incluso esculpieron las características de algún tipo de juego. Pero les llevó a la idea de que no es muy inteligente volver a escribir a una nueva arquitectura cada vez. Y decidieron escribir tal lenguaje nivel altoLo que será adecuado para la programación del sistema, es decir, en la que puede administrar la memoria en la que puede entender dónde, qué mentiras y cómo ponerse en contacto con estas piezas de memoria. Y así apareció el idioma SI, lo que tuvo un gran impacto en todos los demás. Todos ellos son (el profesor muestra algol, más y otros idiomas mencionados) tuvieron una gran influencia, pero aquí SI - Straight SI ...

En consecuencia, fue el idioma principal en el sistema operativo Unix, que en ese momento fue aún más popular que ahora. Y alrededor de los años 80, la situación fue una especie de tal situación (el profesor muestra en los idiomas básicos, C y otros mencionados). Supongamos que todo esto ya está muerto lentamente (el profesor borra referencias al ensamblador, la fortaleza y al algaole) ... y en los años 80, las computadoras se han vuelto menos, más inteligentes, más baratas, y las personas querían que todo tipo de rarezas vivieran aún mejor, viviendo Se ha vuelto más divertido.

Idiomas de los años 80

Una de las primeras rarezas fue C ++. El idioma C tiene una gran cantidad de deficiencias (bueno, muy grandemente): todo se puede hacer en ello en general, incluso para dispararse, dispararse con ficción, a otra pierna, disparar un pie a otra pierna, en general, qué hazlo. Pero al mismo tiempo, algunas cosas arquitectónicas se hacen bastante difícil, nuevamente, como en el ensamblador, tenemos que seguir todo el tiempo, donde nosotros, qué y qué memoria se asigna; Ella está allí todo el tiempo "fluye" en algún lugar de este recuerdo, es decir, asignamos, olvidamos eliminarlo, no lo eliminaron, salió de memoria, en general, miré un montón de problemas.

C ++ se creó primero como un conjunto de adiciones a C, que hará que sea más fácil desarrollar. En ese momento, la programación de moda orientada a objetos y la gente decidieron que todo pudiera describirse en forma de jerarquía, es decir, tuviste una pelota (resumen), heredas un balón de fútbol, \u200b\u200buna pelota de voleibol, otra bola abstracta. Luego, fue de moda que "ahora escribimos todo en forma de alguna jerarquía, y todo estará bien, la vida funcionará, todo se volverá hermoso y eso es". C ++ En cierto sentido, se implementó este enfoque de objeto, no fue el primer idioma de la programación orientada a objetos, pero se hizo bastante popular y todo tipo de características comenzaron a aparecer en ella. Al mismo tiempo, C ++ conservó la compatibilidad casi completa (en ese momento) con el idioma C, el programa escrito en C 99% de los casos fue exitoso como C ++ - Naya e incluso funcionó también. Estaba destinado a hacerlo fácilmente para ir a C ++.

Además del enfoque de objeto (en C ++), apareció rápidamente biblioteca estándar Plantillas (STL). Creo que en la escuela, aquellos que aún enseñaron Pascal descubrieron que usted tiene, en primer lugar, no hay una clasificación incorporada (en el antiguo Borland Pascal, ahora ya está en versiones modernas), hay un ejemplo (Fuente ) Clasificación, se puede copiar y pegarse. Pero si desea ordenar los números completos aquí, aquí desea números reales, y aquí las líneas que se pueden comparar entre sí, tenías que escribir tres clasificaciones diferentes que hacen absolutamente lo mismo, simplemente tienen diferentes tipos de datos. Esto no es muy bueno y las plantillas que no aparecieron de inmediato en C ++, este problema fue muy aliviado. Es decir, tenías un programa abstracto, que algo que se puede comparar entre ellos, ordenado con éxito.

Idiomas de guión desde 90-X

Pero el tiempo no estaba en su lugar, en los años 80 todavía había muchas cosas interesantes. Pero en algún lugar a la vez de los años 80 y 90, las computadoras se han vuelto tan buenas que ya era posible hacer cosas muy extrañas y muy ineficientes. En particular, estos fueron idiomas con guión que no se compilaron en el código de la máquina, pero fueron interpretados. Beysik, también, se interpretó por algún tiempo, pero estos idiomas con guión estaban destinados principalmente a procesar textos: esto, por ejemplo, PERL, Python (no fue muy famoso entonces), PHP, Ruby, estos son los idiomas con guión. Que en uno o todavía hay un grado diferente (todos tienen tiempo para aparecer hasta el año 2000, incluso mucho antes).

Vamos a ir un poco en ellos, porque estas son cosas específicas y ahora se usan muchos. La idea es qué? Si no nos compilamos, puedes permitirnos más. Por ejemplo, el programa puede ver su código y, de alguna manera, usarlo; Ella sabe lo que sucede en él y, debido a esto, puedes hacer muchas cosas interesantes.

Perl fue diseñado para manejar los textos: en aquellos días ya la memoria se ha convertido en muchos en las computadoras que hubo algún texto para empujar allí y con este texto, algo útil para hacer (por ejemplo, considerar palabras, algún tipo de búsqueda). Pero, en mi opinión, fue diseñado por personas que no eran un poco en sí mismas, porque hay una broma sobre él: "Cualquier conjunto de personajes escritos es el programa correcto en la perla". En mi opinión, solo puedes escribirlo, es imposible leerlo. Cuando miro el código en Pearl y tratando de entender algo, no entiendo nada. Tal vez si lo conociera mejor, entendería algo, pero como escuché de aquellas personas que aún sabían cómo, dicen que es más fácil volver a escribir nuevamente. Es decir, el programa funciona es corto y es realmente más fácil volver a escribir nuevamente de lo que está allí y arreglarlo.

En el momento, a mediados de los 90, apareció Internet. Al principio, estos fueron por correo, niñers con HTML estático, pero la gente quería agregar algún tipo de dinámica allí para que todo nos sucediera dinámicamente, algunos moldes podrían llenarse, los libros de invitados para hacer otra cosa. En consecuencia, esto requirió una interacción, se le ocurrió un protocolo, ya que interactúa, y, lo que es más importante, la generación de estas páginas estáticas (condicionales) que serán "tensas" por el usuario en respuesta a su solicitud.

En general, nada más que la perla en ese momento no encajó. Escribir en Handler de SI o C ++ puro fue una mala idea. Y de la falta de lo mejor en ese momento (y lo suficientemente largo), la perla fue popular para el desarrollo web. Por supuesto, la escala no se comparará con lo que está sucediendo ahora.

PHP apareció como ... por casualidad. Una persona rápidamente dejó de hacer esto, hizo su página algún tipo, tenía algún tipo de libro de invitados, de alguna manera, algunas cosas. Y escribió un conjunto de macros de algunos para una perla, que eran similares a Si, porque sabía cómo SI, simplemente porque estaba tan cómodo. Y llamó a la página de inicio personal. Ella compartió y dice: "Gente, ve qué tipo de cosas que escribí, todo es mucho más claro aquí que en la perla y se puede editar". Y a la gente le gustó.

Luego tiró esto. En general, al final, este PHP comenzó a vivir y comenzó con el tiempo mucho más popular que PERL. Pero esta es su "lesión genérica" \u200b\u200b(idea como un conjunto de macros para la perla) con él jugó una broma bastante malvada. El lenguaje resultó extraño. Es decir, desarrollado por sí mismo, nadie lo diseñó, nadie le administró el proceso de desarrollo (ni la compañía, ni a una persona), y había mucho grupo, cada uno de los cuales vio lo que les gusta. Como resultado, las funciones se llaman de manera diferente, incluso no hay estilo, todo es a través del énfasis, en general, a medida que cayó, la configuración se encuentra aquí y allá, y cómo todo funcionará no muy claro. Pero puedes sentarte y escribir en dos horas a PHP, porque lo pensó.

Python y Ruby: Ruby ahora es menos popular, Python es de alguna manera mejor "compartir", hablemos de ello. Está claro que en aquellos días fue (el profesor indica perl, Python, Ruby, PHP) lenguas fuertemente especializadas para fines altamente especializados. En general, no hay programación del sistema, ninguna lógica de negocios en ellos escribió en ese momento y ahora realmente no lo hace.

Idiomas compilados de los años 90

Vamos a ir a los mismos momentos, pero de otra manera. En ese momento, C ++ se usó casi por todo lo que era necesario escribir no para la web, no para procesar texto, sino para simplificar aplicaciones, para sistemas operativos, para juguetes, en general, para cualquier cosa. Pero C ++ es un lenguaje terrible de hecho. ¿Por qué? Porque, primero, se heredó debido a la compatibilidad atrasada, todos los problemas si. Todavía podría haber matado un millón en maneras diferentesLo mismo que estaba en C (naturalmente, se agregaron nuevos métodos en C ++. Al mismo tiempo, si escribe todo bien y correctamente, como fue concebido por los autores de C ++, entonces, por supuesto, era imposible matar con viejos caminos, y parece que parece más pequeño que ellos. Sin embargo, tenía un modelo de objeto muy extraño peculiar. La división del programa en los módulos, en algún tipo de piezas, salió de SI (si incluye que puede escribir en Si o en C ++, de hecho, se intencionó a insertar el texto de la biblioteca en su El programa, como resultado, cuando escribe un montón de inclusión, lo tiene todo, si está "primitivamente", ya que fue al principio, todo se inserta en un archivo y luego todo esto está terriblemente compilado durante mucho tiempo, porque Da la vuelta varias veces. El mismo Pascal, Wirth, fue muy reflexivo en este plan, las versiones posteriores se han vuelto aún mejor.

En general, C ++ tiene muchos defectos. La calificación del programador debería haber sido alta para escribir en C ++, y costará a los programadores caros (y preparación, y otra cosa, es decir, encontrar a los programadores en el mercado es difícil, deben pagar mucho, y en general. no es ...). Y nuestras computadoras son más rápidas y rápidas y más rápidas, se vuelve más más barata, las personas compran nuevas computadoras y desean más aplicaciones, más juguetes para el teléfono, en general, más alegría.

Así que apareció Java (Java). También hay una historia bastante divertida, ya que el nombre ha aparecido a partir de este idioma. Hay programadores, beben café todo el tiempo y en ese momento estuvieron de moda para tomar café, que en la isla de Java Ros. El idioma se concibió como un lenguaje para dispositivos incrustados, en particular para una máquina de café. Así que resultó el nombre ...
Lo que comenzó con él, ¿qué fue bueno en ella y por qué ella ganó más popularidad? Primero, se libraron de la herencia de un azul, completamente. Sin punteros, muchas menos maneras de dispararte parte del cuerpo y romper todo. En segundo lugar, han implementado ideas mucho más recientes en términos de modelo de objeto, es decir, C ++ apareció mucho antes que Java y usó más objeto de modelo "Wild", "Wild". Bueno, aquí (el profesor apunta a Java), ella ya era más reflexiva entonces, y en teoría las personas pensaban, y en la práctica usaron y hicieron que todo era mucho más fresco.

Finalmente, el tercero. Tenemos un programa en Java que no se recoge en un código de máquina, pero en el código para una máquina virtual. Es decir, viviste máquina virtual (VM) JVM - JAVOVSKAYA. Sus programas iban a una representación intermedia y luego, con la ayuda de estos autos ya se realizaron. ¿Qué le dio? Primero, se desaceleró, en segundo lugar, entró en erupción de la memoria con una fuerza terrible, en el tercero, se transfirió en cualquier lugar (teóricamente), al menos a la cafetera, incluso en el molinillo de café, al menos en la computadora, al menos en la computadora. el teléfono móvil. Esto, por un lado, bueno, es decir, simplemente escribió la implementación de la máquina virtual, luego ejecuta sus programas de Javov en todas partes. Pero, por otro lado, es malo que en el mismo teléfono hubo poca memoria, hubo un bajo rendimiento y todo esto se comenzó a mezclarse y disminuir.

Pero incluso esto no es lo principal, por lo que en general se inventó el idioma. El idioma de Java se invenció a reducir los requisitos para las calificaciones de los programadores. Es decir, los programadores más malos pueden escribir buenos programas en Java, ya que no le permite escribir malos programas: no hay medios para escribir programas mal. Allí puedes escribir solo bien, programas. Bueno, en entender a los creadores del lenguaje.

Es decir, si está en C ++, en Python, en lo que complace, podemos criar desde su proyecto una basura terrible, una especie de donde todo está sucediendo allí, yendo durante horas y hay algo más. En Java, la basura también se puede diluir, pero para esto ya necesitas hacer algún esfuerzo. Es decir, de forma predeterminada, no hay "basura", hay otros problemas que hay algo allí, fingieron, en general, una cadena significativa no es muy significativa. Pero, tal vez tal calificación secundaria, un programador escribiendo un código de bastante calidad.
Casi llegamos a su fin. Nosotros, lo siguiente, que apareció es. Eso. Se "(DotNet), bueno, en particular, estamos interesados \u200b\u200ben C # (casi el mismo [profesor [profesor indica Java], es decir, hay diferencias en los detalles. Si elige entre ellos - vea dónde paga más dinero).

Y una cosa más - JavaScript. No tiene nada que ver con el lenguaje de Java, apareció en el mismo año: la palabra estaba de moda, con licencia marca comercialUsar.

¿Qué es lo más importante, necesitas prestar atención? (El profesor dibuja las flechas de C ++ a Java, .NET, C #, JavaScript y PHP). Para escribir un programa simple en uno de estos idiomas, y en muchos otros, si conoce C ++, no necesita nada más: tome y escriba en C ++, y luego agregue dólares al principio. Algo más haciendo las pequeñas cosas y lo tienes comienza a trabajar en cualquier cosa (el profesor muestra los idiomas a los que se reservaron las flechas de C ++). Es decir, son extremadamente similares en algunas cosas simples. Si decides algunos desafíos escolares, tareas, algo más (no diseñe un gran proyecto: tiene un archivo que lee los números, muestra los números en la consola, algo más hace algo), entonces casi no hay diferencia entre estos idiomas. Está claro que JavaScript y PHP están especializados, todos son un poco diferentes. Pero aquí (el profesor indica Java y C #) generalmente una mayor diferencia.

Desde entonces, aparecen todo tipo de cosas interesantes, pero no está claro: vivirán o morirán con éxito. ¿Qué es ahora, para qué tareas usas?

Seleccione el idioma dependiendo de la tarea

Supongamos que tiene una tarea para escribir un controlador para una tarjeta de video. ¿Qué idioma usarás hoy? (Llorando del pasillo: ¡Java!) Y qué ... Java es excelente, pero ¿qué no está en Ruby ni PHP? (El profesor habla con sarcasmo.)

Programación de bajo nivel

Si escribes algo de bajo nivel, entonces la mejor opción es Si, pero en realidad escuché algo (pero no vi) que C ++ se usa para esto. Pero yo creo débilmente en ello, porque en SI se puede controlar claramente, ya que le dio mucho byte de la memoria, significa mucho. Y en C ++ (STL) ¿Cómo se implementa la línea? Bueno, de alguna manera implementado. Y al final, no sabemos cómo y qué está sucediendo allí, tal vez nuestra memoria terminará en nuestra tarjeta de video o otra cosa que suceda. Por lo tanto, SI todavía vive y no muere, estas tareas de programación del sistema todavía están allí, escriba un sistema operativo, escriba a los conductores, escriba algo más - SI GRANDE PARA ESTO. Además, aparece todo tipo de dispositivos, Internet de las cosas prometen que está a punto de venir) que viven de la batería (y, naturalmente, habrá millones de ellos, todo estará comprometido en este Internet de las cosas), Deben ser muy baratos y muy poca electricidad consumir. En consecuencia, habrá 2 kb de memoria, el procesador es de 5 kHz, bueno, está claro que no convertirá una máquina virtual o el idioma de scripting en un futuro cercano, significa que tiene que escribir algo en Si. Sí, y ahora, por ejemplo, cálculos en la tarjeta de video (OPENCL o cualquier otra tecnología): no hay un idioma nuevo para escribir programas para ellos, hacen que SI con algunas grandes limitaciones. ¿Solo porque la gente ya sabe cómo aprender algo nuevo? Formalmente, es probablemente también, en cierto sentido de Si.

Programación web

Supongamos que desea escribir un nuevo Facebook (red social). ¿Qué le escribirás a esto? (Desde el pasillo, hablan de HTML y CSS.) HTML, CSS es un diseño, y queremos agregar fotos allí, amigos, comentarios a partir.

Para la parte de scripting, es decir, lo que sucederá en el lado del cliente es JavaScript. Además, a veces, JavaScript se genera en otro idioma y se envía (sucede que se genera el guión ... porque es tan fácil a veces manejar algunos cambios en la lógica).

Sorprendentemente, está escrito en PHP, y Facebook, y muchos otros grandes proyectos. Por supuesto, fue necesario escribir mis propias cosas que todavía estaba funcionando bien, y no como "TRAP-LYAP", pero se enfrentaron. En principio, más o menos, sobre lo que escribirás, pero no aconsejo Perl. Aquí y ahora, un caso claro, nadie escribe nada desde cero para la web. Todos escriben algún marco o algo más. ¿Tienda en línea? Descargué el marco para la tienda en línea, bueno, todo, escribió una tienda en línea.

Programación para empresas

A continuación, quiere escribir una aplicación aburrida para el banco. O, por ejemplo, ¿tiene a alguien que vende SIMS? Tal vez usted haya comprado un teléfono o algo más que le dijeron: "Aquí está el sistema colgando, no podemos hacer nada". ¿Qué escribirás tal aplicación? (Llorando de la sala de Python) en Python, es imposible escribir, ¿qué eres? Nada por los negocios no debe escribir en Python. ¿Por qué? Debido a que cuando escribes algo en Python, no puedes detectar una cantidad significativa de errores en el proceso de escritura. Python está en todos los sentidos de forma dinámica, y en general puede haber ocultado el error que surgirá en tal situación que ni siquiera puede entender lo que estos usuarios de cruceros han hecho aquí que todo estalló. Es decir, es mejor escribir en Python para ti mismo, scripts pequeños: entiendes lo que está sucediendo allí y lo que se está haciendo. Bueno, o algo que no es una pena para tirar: quieres desplegar algo antes de los competidores, para que se rompa en tiempos. Usted escribió en Python y todo, capturó el mercado. Y si escribe algo durante mucho tiempo, por ejemplo, una solicitud bancaria es algún tipo (para que haya aprobado los préstamos, otra cosa), lo escribe en Java. Debido a que hay un serio, papel, dinero, documentos, otra cosa, pero en ella es imposible en ello, que todo se romperá, de lo contrario, la gente se ofenderá, no le quedan dinero y no han llegado a ninguna parte, porque tiene algunos tipo El momento de la cadena se ha convertido en un número o viceversa. Por lo tanto, significa, tomamos una metódicamente en Java y escribimos, escribimos ... Bueno, o en .NET, también tales situaciones, en principio, hay. Allí, por supuesto, también puede conducir problemas, pero aún así, la probabilidad de esto es algo más baja.

Programación para el ejército, industria aeroespacial.

Y ahora imagina que decidiste enviarte a la luna en el cohete. ¿Qué preferirías escribir un código que controla los motores de cohetes? Veamos. Esto es probablemente (el profesor se muestra en Perl, Python, PHP, Ruby), no vale la pena, se ralentiza, algo más sucede, bueno, en general, no aceptaría volar en un cohete de este tipo. En C ++? También lo haría, honestamente, no confio, porque en C ++ demasiadas formas de matar. Cuando estás allí en algún lugar del espacio, no es muy bueno.

Tal vez en Java? Parece que hay bastante de manera confiable, y la arquitectura es buena, no hay tipos silvestres, sin resultados más allá de los límites de la memoria innecesaria. Supongamos que ha llegado el momento más responsable, y nuestro Java decidió recolectar la basura por nosotros. Necesitamos aterrizar, disminuir la velocidad, y es: "No, la basura va". En general, no mucho.

Honestamente, preferiría que Pascal escribiera este programa. Por supuesto, realmente no me gusta Pascal, pero de alguna manera en tales asuntos sería muy grande.

Utilice inmediatamente varios idiomas para desarrollar

Bueno, lo que necesitas decir sobre los idiomas modernos. Ahora, muchos proyectos no viven en un solo idioma, es decir, a alguien vive en un idioma, parte, por otro lado, otra parte está en el tercero. Por ejemplo, si tiene alguna aplicación web que procesa las cantidades silvestres de información, accediendo a los discos (ni siquiera a las bases de datos, son tan grandes que incluso existe una base de datos que aún no se haya escrito), es probable que esté escrito en cualquier SI de bajo nivel. Para escribir salvajemente al disco y todo eso. Naturalmente, escribir todo el proyecto en SI no vale la pena. Tal vez haya algún tipo de lógica intermedia escrita en Java, que se refiere a las funciones azules para solicitudes rápidas. Bueno, el frontendiano (entonces lo que el usuario está mirando), por supuesto, ya escrito en algo, en algunos scripts, sobre lo que se ejecuta directamente por el navegador (Javascript). Y todo esto vive juntos y interactúa con éxito.

En el desarrollo de algunas aplicaciones, incluso grandes, a veces las personas hacen lo que? Toman y escriben un prototipo en Python (ya que funcionará todo), tiraron algún tipo de arquitectura. Escritiendo en él realmente muy rápido, lanzó el prototipo, experimentaron con él y dijo: "¡En! ¡Eso es lo genial! " Y completamente reescrito. Parecería que hicieron el trabajo dos veces, de esto dos veces al tiempo (bueno, en uno y medio). ¡Pero no! A menudo resulta que ese camino de este tipo no es malo, porque si escribes inmediatamente en algo, por ejemplo, en Java, y luego decide: "No, vamos a refactorizar, cambiar la arquitectura por completo y todo eso", luego gasta 10 veces más tiempo. Tales cosas también existen y viven.

Condiciones de éxito de cualquier lenguaje de programación.

Ahora hablemos de por qué algunos buenos idiomas no sobrevivieron, bien o viven en un espacio muy limitado. Cuando Wirth, vio que las malas firmas de Apple, Borland, y todo eso, y todo eso, se le ocurrió un lenguaje aún mejor: Oberon. Él era simplemente un minimalista salvajemente, es decir, había muy pocos equipos (líneas? ¿Por qué necesitamos cuerdas? ¡Haremos una serie de personajes!). Bueno, algo no fue con él, en la medida en que podría ir.

Otra cosa. El ejército de los Estados Unidos les pidió que desarrollaran un lenguaje empinado, en el que todo funciona y todo se puede escribir. El resultado fue un lenguaje bastante monstruoso ADA, en el que, sin embargo, todavía escribía algo, pero de nuevo, solo para los militares.

¿Cuál es el problema? Por qué algunos idiomas como Python, que no lo apoyaron al principio, capturaron el mercado. PHP, que también está mal diseñado, también se tomó y capturó el mercado (la mayoría). Y todos los miles de millones de dólares están incrustados (el profesor muestra en la ADA) y no pasó a ninguna parte, no pasó nada. ¿Con qué está conectado? Esto se debe al hecho de que no hay infraestructura en torno a estos idiomas. Es decir, el idioma puede ser excelente, pero no hay documentación hasta que no haya comunidad que sea capaz de responder preguntas (en el desbordamiento de la pila) y, finalmente, lo más importante no es el gran número de bibliotecas, el idioma no lo hace disparo. Es decir, usted, por ejemplo, quería escribir un sitio web en Oberone. ¿Y qué pasa, por qué no? Y el Moroka comienza ... No puede elevar su servidor web en el Oberone para probar a la ligera, ninguna biblioteca que no pueda conectarse, porque no haylas en el OBOURON. Y todo esto a través de algunas muletas se realiza, las fuerzas se van y, en general, se está escupiendo y escribe en el sitio de SI limpio en lugar del OBOURON. Y aquellos idiomas que saben cómo usar las bibliotecas de otros idiomas viven bien. El mismo Python en esos lugares donde se ralentiza. En general, todo tipo de cosas estándar como la clasificación y algo más escritas en C, y él (Python) puede interactuar con ellos.

Java también tiene la interfaz nativa de Java. Esto es esencialmente si, es decir, allí (en mi opinión, todo el tiempo que quiere prohibir, pero aún no parece prohibido), estos idiomas pueden interactuar con las bibliotecas existentes (en su mayoría azul). Y a expensas de esta toma y trabajo. Se entiende por la idea de que estoy tratando de transmitirte, ¿verdad? No escriba en esos idiomas que no sepa cómo conectar una biblioteca azul. Bueno, si quieres usar algo genial. Bueno, y gradualmente (idiomas) convierten su propia infraestructura. Y viven de alguna manera bien.

Lenguaje de programación y orientación profesional.

Ahora hablemos de cómo entender lo que quieres en la vida. ¿Qué pasa de cosas divertidas? Puedes participar en algún tipo de programación del sistema, ¿verdad? Eres genial para considerar estos bytes allí, quiere ejecutar quadcopters, algunas cámaras, algo más que hacer. Luego, probablemente, C es su elección.

Si desea escribir, tal vez no sea el más interesante en la vida de la aplicación, pero usted es genial para diseñarlos, piense en todo y gane mucho dinero, por sentarse y perder la mayor parte del tiempo (por ello necesita Para pagar, si cualitativamente faltamos), aquí están, Java, .NET. Vas a trabajar en algún banco, escribir, vamos a nueve para trabajar en una camisa blanca, obtener un buen salario y escribir de acuerdo con las recomendaciones de las mejores ovejas de java-agua, .NET y todo eso ...

Si desea escribir cualquier aplicación, algún tipo de navegador, algunos juguetes, algo más, entonces C ++ es genial. Si desea escribir siters, aquí están idiomas en su elección (el profesor muestra en Perl, Python, PHP, Ruby), no hay una gran diferencia. Lo único: PHP morirá antes de Python, así que si eres perezoso para aprender uno nuevo, luego aprende a Piton. No notaré una gran diferencia, pero mueras más tiempo.

Lo que sucede con Ruby también es incomprensible. Bueno, puedes y PHP, si ya lo han aprendido, son tan simples que no hay tanto tiempo.

Y, finalmente, hay otra área de aplicación de lenguajes de programación: esto es cuando no usan el programador. Supongamos que usted es un matemático, un físico, un químico, un analista, a cualquiera, y debe contar algo rápidamente, para analizar los datos (biólogos, por ejemplo, cuántas escaleras viven en las Islas Comandantes). Puedes firmar todo esto en Excel en Excel o analizar cualquier cosa. Además, Python es bueno para acercarse a esto, con el texto que puede trabajar y las bibliotecas están llenas de todo tipo de estadísticas y todo. Si desea hacer un aprendizaje de la máquina, algunos datos para procesar, predecir, luego en Python, ahora se está haciendo más rápido. Es cierto, se debe tener en cuenta que las tareas son muy diferentes. Por ejemplo, si desea intercambiar la Bolsa de Valores al instante en condiciones de que las cotizaciones están cambiando todo el tiempo, entonces sea que su aprendizaje automático escrito en Python, las personas que están escritas en algo serán más rápidas, tendrán tiempo para comprar todo antes. Todo te viene, incluso si peor los algoritmos peor. Por lo tanto, incluso estas tareas de aprendizaje de la máquina (algunas de ellas) requieren una alta productividad (y extremadamente alta), y respectivamente, otros idiomas.

La única forma de entender lo que quieres es probarlo todo. Ahora diré como una de las visiones de cómo puedes probar todo. ¿Cómo convertirse en un programador y feliz? Entonces. De las hojas puras comienzan. Aquí estudias en la escuela con sus matemáticas, idioma ruso y otros temas obligatorios y opcionales, y su conocimiento en el campo de la programación se refleja en la Junta (el profesor muestra en un tablero vacío) en este momento. Y quieres convertirte en una persona feliz, hacer un ser querido, ganar mucho dinero y no te niegues y te regocijas.

Una forma de lograr esto. Por supuesto, hay todo tipo de historias inspiradoras sobre las personas que no fueron a las universidades en absoluto, o los arrojaron y se convirtieron en multimillonarios, propietarios de empresas, etc. Pero se debe tener en cuenta que la mayoría de las personas que pueden no ser multimillonarias, sino también vivir bien, después de que toda la universidad termine.

¿Cuál es nuestra situación con la admisión a la universidad (¿estás estudiando en la escuela)? Mientras estudias en la escuela, necesitas entender qué el siguiente paso - Inscribirse y cuidarlo. Para pasar el examen o ganar los Juegos Olímpicos. En el examen, puede usar Pascal, C ++ (incluido Pure SI), Python (no lo mencionaré). En los Juegos Olímpicos, el mismo Pascal, el mismo C ++, el mismo Python (vamos a hablar de sus problemas ahora) y, con mayor frecuencia, hay Java. Todavía hay algo, dependiendo de los Juegos Olímpicos, pero no la esencia.

¿Qué aspecto tiene el programa de distribución en la Olimpiada All-Russia en la Ciencia de la Computación? Personas que participan en la Olimpiada más rusa, la más escarpada, ¿en qué escriben? Se parece a esto (aquí significa Pascal, y aquí cerca de 2000, y aquí hay aproximadamente cero, aquí C ++, y aquí 2015).

En 2000, C ++ casi nadie escribió. Tomó 15 años, y casi nadie escribe en Pascal, a pesar del hecho de que Pascal es moderno. Este es un lenguaje que puede casi todo lo mismo. Solo algo para todos se volvieron demasiado perezosos para aprender esto, cada nueva tendencia, y todo continúa escribiendo en Borland Pascal, que, por supuesto, nada puede. En C ++, las personas escriben cortes de algoritmos (STL), perfectamente, escribieron ordenar () y eso es todo. En el Pascal, de lo habitual, en el anterior es un problema. Escribieron algunos set (necesarios), perfectamente, en C ++, escribieron, en Pascal, nuevamente, el tormento sólido. En los nuevos Pascales, puedes hacer esto, puedes hacerlo, pero cuesta dinero en realidad. Tal vez no notaste esto, pero lo es.

Todavía hay Java, pero en Java hay muchas letras. Es para grandes proyectos, y para pequeños programas desechables resulta bastante mal, porque muchas letras extra. Pero también algunas personas escriben, puedes aprender a escribir en ella. Pero no hay nadie en su examen y el examen todavía tendrá que tomarse en su mayor parte.

¿Qué es mejor para el examen? Para el examen mejor (si no conoce nada y en la escuela no se le enseña) para aprender Python. Algunas tareas de examen se resuelven perfectamente en ella. En los Juegos Olímpicos, en general, resulta que (usado) C ++, porque Python es muy lento, no todo se resuelve en él.

Por lo tanto, estudió un pequeño subconjunto del lenguaje y algunos algoritmos (posiblemente) y muchas tareas formadas para obtener un diploma de nuestros Juegos Olímpicos y ingresaron a la universidad para recibir educación superior.

Le informaré sobre cómo estamos construyendo un curso en la Torre, en qué idioma van los idiomas, como estudiando sobre matemáticas y informáticas aplicadas de la Facultad de Ciencias Aplicadas, que estamos haciendo con Yandex. En el primer semestre, Python (no en su totalidad, aproximadamente cómo debe aprender en la escuela) y C ++ (más ancho, mucho más amplio de lo que generalmente se enseña en las escuelas). Digamos ahora para que no tenga miedo de que, de repente, quiere hacerlo, digamos: "¿Qué, ya lo sé todo, por qué voy a aprender a algún lugar? Mejor iré a otro lugar ". Para aquellos que ya saben cómo programar bien, existe la oportunidad de ir inmediatamente al estudio de los algoritmos, y en una capacitación más teórica. No los estamos mirando ahora, (muestra en la pizarra) para aquellos que los programas de la OMS son medios o de ninguna manera.

El primer semestre estudia los fundamentos de Python, solo que las personas aprendieron a programar y que nadie realmente decepcionó. Python es pequeño donde enseñan en las escuelas, la mayoría de las personas vienen con el conocimiento de Pascal o C ++. En su mayoría incluso Pascal, si es una escuela de masas. Bueno, para que nadie decepciona, todos se les enseña un nuevo idioma (como si estuviera en condiciones iguales). Y C ++ es simplemente porque de C ++, entonces puedes ir a cualquier lugar.

Luego hay un curso "algoritmos" y un proyecto de término separado. Algoritmos clásicos con implementación. No es que en teoría tomamos algo, considerado complejidad. Tomamos en la conferencia, consideramos la complejidad, en el seminario que tomaron, implementó el algoritmo. El proyecto es que los estudiantes hacen algo completo. Por ejemplo, uno de los proyectos fue: calcular ... Supongamos que tienes muchos apartamentos en Moscú y entiendes: "Oh, tengo mucho superfluo, lo alquilaré. Y ponen un poco de precio, y nadie quiere que algo dispare a su apartamento, probablemente demasiado caro. O establezca un poco, inmediatamente se eliminó y cree: "Oh, probablemente haya pasado el barato", y también molesto. Es decir, ¿fue necesario calcular cuánto se encuentra un apartamento? Usted conduce los datos: se le evalúa. Tal Sittik que consistía en varias cosas: Tomar la ofrenda, vertido, aplicar algún tipo de algoritmo de aprendizaje de la máquina (probablemente) simple y hacer una hermosa cara web, en la que puedes elegir algo, conducir algo, algunos metros, cualquier número de habitaciones, El número de saunas, el número de jacuzzi en su apartamento y evalúe aproximadamente el costo. Es decir, algún tipo de cosa completa, no muy compleja. Significa aquí (el profesor muestra un curso sobre algoritmos), como C ++ C ++, con una introducción de consola. Bueno, aquí (el profesor muestra el "proyecto" de la inscripción ") algo bajo la guía del mentor, posiblemente con bases de datos, posiblemente con el análisis de textos y con otra cosa.
Luego, el tercer semestre dice: este es un curso llamado "Sistemas informáticos". Hay un ensamblador asociado muy poco para la comprensión (muy poco) y luego, algo similar a SI y la interacción limpias con los sistemas operativos, la programación sistémica es esencialmente. Y el proyecto al seminario también es algo en todo tipo de interacciones de red, suficientemente bajo nivel: desarrollar alguna utilidad, como RSYNC (sincronización, quizás lo conozcas. En Limpio Si, menos, escribe un análogo de RSYNC, que lo harás. Haga que las carpetas de sincronización de red con todos los archivos a los archivos, etc.).

Y finalmente, el cuarto. Ni siquiera sé cómo llamarlo, es una vinagreta necesaria para el desarrollo real, por ejemplo, para el desarrollo web. Es decir, esta es la aplicación práctica de las bases de datos, nuevamente algo similar a lo que se hizo en el proyecto (el profesor muestra el segundo proyecto del curso) pero ya más profundo. Es decir, tales cosas más o menos concretas ya, la programación práctica. En paralelo con esto, cada teoría va, bueno, y aquí la ciencia todavía está comprometida.

Y después de dos cursos, las personas divergen para participar donde están interesadas, porque esto cubre muy ampliamente los conceptos básicos de la programación y las personas en este punto ya entienden que no quieren hacerlo. sistemas informáticos En ningún caso (programación del sistema, por ejemplo, no le gustaba), pero quieren participar en algunos algoritmos teóricos, la dificultad considerar, inventar cosas nuevas, distribuidas o algo más. O, por el contrario, piensan que no son muy ( el profesor indica una línea de primer año con Python y C ++) fue, entonces ( el profesor indica una cadena de terceros platos, con la programación del sistema.) - Cómo no les gusta, contar adiós y poner todo tipo de restricciones al leer y grabar, hacer flujos, árboles y algo más. Y de acuerdo con esto, la gente elige algún tipo de dirección y aprende. Es decir, en principio, que no desarrollas "Síndrome de Utanki", fuiste el primero en ver mi Pascal y ahora dice "Pascal - Power"; O más avanzado: viste C ++ y comenzó a hablar de todos los que la fuerza de C ++, y todo lo demás no está muy allí.

Debe mirarlo (el profesor muestra la lista de cursos en la pizarra) es más amplio: esta es una de las formas en que se eligió, en particular en la Torre (apareció recientemente, por lo que es bastante moderno). Hay otras formas de reunirse. En otras buenas universidades, hay un poco en un orden diferente y se organizan otros acentos. Pero también pruebe a las personas con todos que presenten lo que tienen.

Como programador busca trabajo.

Tú eres esto ( profesor muestra una lista de cursos.) Hicieron todo, aprendieron en la universidad, y algo durante dos años trabajaron de manera más productiva y necesitas ir a trabajar. ¿Cómo elegir algo para trabajar? Primero, conociste a todos, se profundizaron en algún lugar y sabes que amas. Es necesario elegir lo que amas naturalmente. Porque si lo desea, invertirá, tendrá motivación y todo estará bien. Debido a que hay una cuestión de no solo en el dinero, el punto es que estás interesado y agradable. Bueno, y quieres entrar en compañía fresca, para conseguir un trabajo. ¿Qué persona que personalmente me gustaría ver? Viene a mí, digamos, cien estudiantes, tengo que tomar dos para trabajar o uno. ¿Qué vienen, no entiendo quiénes son, qué son, cómo están? En el mejor de los casos, me mostrarán un diploma que consiguió en la universidad, y diré: "¡En! Este es un diploma genial, ¡y esto no es tan genial! " Y puedo cometer un error, por cierto. Tal vez una persona tuviera mucho tiempo libre, y aprendió mucho mejor.

¿Qué sería bueno? Primero, algún proyecto de código abierto, que ha escrito desde el principio hasta el final. Es deseable si hago alguna infraestructura para que los datos sean considerados rápidamente, otra cosa, entonces, por supuesto, me interesaría escribirme algo. No es un Saytyik de alguna manera, pero algo sobre el tema. ¿Por qué es interesante para mí? Puedo ver su código, puedo ver con qué frecuencia se comprometió, puedo ver cómo reaccionó a errores de usuarios, errores de los desarrolladores que se utilizan: todo está escrito, hago todo y pienso: "En, aquí el error es el error. Ya no se cerraron, aquí estabas contestado de manera impolitamente al usuario, hay algo más: no lo tomo ". Es decir, este es tu proyecto personal.

A continuación, ¿qué sería genial? Me gustaría ver cómo hiciste el trabajo de mando. Es decir, vienes a mí para una entrevista y dices: "Nosotros y los muchachos de la UNI lavaron algún tipo de aparato. Hice una base de datos allí, hicieron algún tipo de aplicación móvil allí, y todavía tenemos un niño allí, una chica diseñadora, un niño en soporte técnico. Éramos cinco personas, e hicimos un proyecto genial ". Bueno, veo lo que realmente es tu proyecto, digo: "¿Qué es el tuyo?" Miro de nuevo el código y entiendo que puedes trabajar en un equipo con personas.

El programador no es el que se sienta (indie, tal) en el garaje, en algún lugar con la luz apagada, no habla con nadie, se convierte en barba y escribe. De todos modos, hay alguna interacción con las personas. Con el jefe, por ejemplo, que tal vez, a veces jura (los jefes, no siempre son amables). Y veo que puedes trabajar con la gente y me hace feliz si tienes un buen equipo. Incluso si no es bueno, es mejor que su ausencia.

¿Qué más me gustaría personalmente? Si se hubieras mostrado en grandes proyectos. Por ejemplo, se compró algo en el núcleo de Linux, si está involucrado en la programación del sistema, corregí un error. Es decir, mostraron que sabes cómo leer el código de otra persona y saber cómo hacer algunos cambios. Miro: "¡Oh, realmente, descubriste algo difícil y algunos errores corrigieron!" Y empiezo a regocijarme muy lejos de esto. Porque tengo ... Bueno, no sé ... Esa es mi programmer de renuncia, porque los competidores le ofrecieron más salario, y necesito que me hiciera urgentemente a alguien para esconder su lugar, tú. Veo tal cosa que acaba de escribir desde cero, y el código de otra persona no sabe cómo leer y editar, y enojarse.

Bueno, finalmente, dependiendo del post específico, hay otras cosas diferentes. Si es adecuado para un analista, me gustaría que Kaggle tenga una tarea de análisis de datos. Si eres adecuado para algunas cosas algorítmicas, me gustaría estar en la programación deportiva, se han hecho algunos algoritmos. Finalmente, si te preguntaste sobre la profesión, lea como una entrevista, "se encontraron con que algunas personas expresan un gran descontento:" Vine, y me pregunto cuál es mi hobby. Estoy sentado como un búho y yo no respondo, porque no tengo un pasatiempo ", y creo que las hrs lo hacen. De hecho, están tratando de entender lo benevolente que también eres adecuado. Si usted es hostil e inadecuado, sea lo que sea que haya un genio y el trabajo, un especialista empinado con gran conocimiento, el equipo será difícil trabajar con usted, y solo no tire del proyecto. Además, incluso si se tire, puede imaginar qué carga para la empresa. Y, ¿qué vendrás mañana y dirás: "Aumente un salario 10 veces, de lo contrario, le dejo". A menudo, las empresas no quieren entrar en tal situación. Por lo tanto, la educación en sí misma la adecuación y la buena voluntad es tan importante (al menos) como el desarrollo de algunas habilidades profesionales.

Resumiendo, ¿qué puedo decir? ¿Qué idiomas son buenos, y qué mal? Bueno, dentro de algún grupo de idiomas, por ejemplo, entre Ruby, Python y PHP, ¿qué elegir? Por supuesto, la respuesta correcta es Python, pero de hecho, la diferencia entre ellos en el número de errores permisibles, en la cantidad de algo más: 5%, bueno, tal vez un 10%. Es decir, si ya tiene un proyecto preparado en PHP, nadie dirá en la mente correcta: "Vamos a reescribirlo todo en Python". Se decía: "Contramos a otros desarrolladores de PHP y continuaremos escribiendo en PHP". Genial, esta es una buena opción. Está claro si de repente escribes para escribir algún tipo de proyecto, entonces es razonable elegir Python ahora. Aunque también depende. Tal vez tenga un montón de desarrolladores de PHP baratos en el mercado, y Python caro, y cree: "Sí, la tecnología es más genial, pero ahorraré dinero a desarrolladores listosizados". Y todo, excelente, ya vienes y trabajas allí.
¿Cómo elegir entre Java y C ++? Sí, sucede lo mismo. Creo que en el momento en que decidirá qué idioma inició un nuevo proyecto grande, obtendrá conocimiento en su campo profesional y puede tomar la decisión correcta. Ahora aún no tiene que hacer tal elección, y por lo tanto, le aconsejo que haga lo que me gusta.

Los conceptos básicos, como dije, lo más básico de la programación (lo que es una función, lo que, si es, por sus, los masivos, algo más) se puede aprender más o menos en cualquier idioma. Por ejemplo, C ++, ya que hay muchas cosas en él, y los detalles en ella (a tal nivel) menos, y los picos de la escritura innecesaria menos. Bueno, y luego, cuando aprenderás las cosas arquitectónicas complejas, aprender y preocuparse por esto. Es decir, lo más importante, intente, busque lo que le guste y cuando lo entiende ahora durante las 4 de la mañana, y usted es por diversión siéntate y escribe, porque le gusta, probablemente, en este momento está claro. que encontraste el tuyo.

Para resolver tareas informáticas, los procesadores gráficos se utilizan cada vez más, pero la pregunta sigue abierta: cómo escribir programas efectivos Bajo las configuraciones apropiadas?

15/06/2011 ANDREII ADINETS

Para resolver tareas informáticas, los procesadores gráficos se usan cada vez más ahora, pero la pregunta aún está abierta: ¿cómo escribir programas efectivos para las configuraciones relevantes? Solución estándar: un montón de CUDA u OPENCL: le permite implementar relativamente rápidamente el algoritmo, pero es difícil crear una configuración específica con su ayuda. Requiere herramientas para programar procesadores gráficos de alto nivel que se pueden crear, por ejemplo, con la ayuda de idiomas expandibles.

Hace tres años, el equipo de procesador gráfico (Unidad de procesamiento gráfica, GPU) se consideró solo como tarjetas de video para una PC, ahora la actitud hacia ellos cambió: hubo modelos especiales del servidor de GPU enfocados en la resolución de tareas de computación, el rendimiento en los cálculos de doble precisión aumentó Los sistemas registran el rendimiento, que ocupan las líneas principales en el TOP500. ¿Cómo escribir programas efectivos para tales máquinas? Respuesta estándar: un grupo de CUDA u OPENCL para la programación GPU y MPI en el nivel de clúster. Estas herramientas están disponibles, están respaldadas activamente por los fabricantes de equipos, muchos programas ya se han escrito para ellos, pero también hay desventajas.

CUDA y OPENCL: extensiones del idioma SI, no son difíciles de estudiar, aunque son herramientas suficientemente de bajo nivel. Con su ayuda, puede implementar de manera relativamente rápida el algoritmo GPU, pero la versión optimizada para una aplicación específica y la configuración es mucho más complicada. Todas las optimizaciones se realizarán manualmente, lo que conducirá a un aumento en el tamaño del Código y el deterioro de su legibilidad. Y aunque los programas creados con OPENCL se transferirán entre una amplia gama de arquitecturas, el rendimiento con tal transferencia no se guardará. Herramientas buscadas para programación de niveles más altos de GPU.

Cree tales herramientas que se puedan crear por diferentes maneras: ingrese un nuevo lenguaje de programación; Agregue directivas a un idioma existente, como se realiza en el modelo PGI Accelerator o CAPS HMPP; Aproveche los idiomas extensibles. Idiomas ampliables- Lenguajes de programación, sintaxis y semántica de las cuales no están fijas, y se pueden cambiar según las necesidades del programador. En comparación con los idiomas tradicionales y ampliables tienen una serie de beneficios: es más fácil agregar nuevas características; Están abiertos El estudio de los nuevos modelos de programación sobre la base de tales idiomas es más fácil, ya que es necesario estudiar solo relativamente pequeño en términos de expansión; Con la ayuda de tales idiomas, es más fácil realizar una configuración fina y optimización de programas.

Idiomas ampliables

Para que el idioma sea expandible, es necesario estar presente en él:

  • el mecanismo de expansión sin cambiar el compilador es igualmente respaldado por todos los compiladores, lo que significa, en particular, la presencia de una interfaz estándar de interacción con los compiladores;
  • diseños para la expansión y manipulación con un código de código, como macros o cuasicización, para ampliar el idioma;
  • los medios potentes para escribir extensiones, por ejemplo, el lenguaje expandible en sí y el otro idioma, cuyo poder sugiere que el código de extensión puede hacer lo mismo que cualquier programa en este idioma.

Resulta que los idiomas que cumplen con estos requisitos son relativamente pocos: Lisp, Nemerle, Seed7, XoC y Stratego. Al mismo tiempo, XOC, que está destinado a extender el idioma SI, utiliza un idioma Zeta separado para escribir extensiones, y Stratego es el idioma del área temática para crear los convertidores del código fuente. Nemerle es un lenguaje extensible usando el miércoles. NETO.

Todos los organismos de soporte de idiomas expandibles para trabajar con un programa de programas, y sobre todo este diseño de la quásicitización: la especificación del objeto que representa el árbol del programa, utilizando el código fuente.

En el idioma de Nemerle, se usa un diseño para esto, por ejemplo, crea un árbol que consiste en una declaración i variable I con un valor inicial de 0. La quasicicización es similar a la creación de objetos de cadena con constantes de cadena. En la Fig. 1 muestra un ejemplo de quasicitización. El diseño de interpolación le permite sustituir los valores de las variables en un patrón fijo dentro de la quasicitización. En Nemerle, utiliza diseños de $ (...) para esto si desea sustituir una lista, por ejemplo. También en idiomas expandibles hay diseños para el análisis del árbol del programa. En el idioma de Nemerle, se usa la coincidencia del operador (...) (...), un análogo del interruptor del idioma SI, como las ramas que son utilizadas por los diseños de quásicitización. En este caso, la interpolación se trata como nuevas variables ad, que, si la comparación exitosa, recibe valores de los subárboles correspondientes. Por ejemplo, para la coincidencia del operador correspondiente (E) (| \u003d\u003e ...), si E contiene un árbol, en una variable A caerá, y en la variable b.

Las herramientas para trabajar con un árbol de programas se utilizan en los diseños de expansión del lenguaje. En Nerlele, estos son macros. funciones especialesRealizado en la etapa de compilación y devolviendo un fragmento de un árbol de un programa que está sustituido en la ubicación de su llamada. Al mismo tiempo, la macro toma fragmentos del programa como parámetros, y puede transformarlos. En principio, la macro puede ser causada de la misma manera que característica convencional; Pero la oportunidad más interesante es unir la llamada macro a una sintaxis especial. Esto le permite ingresar nuevas construcciones de sintaxis en el idioma Nerlele y, por lo tanto, expandir el idioma.

En la Fig. 2 muestra un ejemplo de una macro con una extensión sintáctica, que le permite declarar un ciclo multidimensional con variables y el número de iteraciones para cada medición, y en la FIG. 3 Este es un ejemplo de una conversión del programa que hace de esta macro. Tenga en cuenta que la macro que ejerce tal extensión toma menos de 30 filas del código fuente y en este caso incluye varias verificaciones de errores. Con un enfoque tradicional, la implementación de dicha extensión requeriría un número significativamente mayor de código y, además, requeriría el estudio del dispositivo interno del compilador.

Históricamente, el mecanismo macro en Lisp apareció primero, el programa en el que parece una lista regular y no requiere diseños especiales para trabajar con el árbol del programa, por lo que fue en este idioma que la programación extensible se ha convertido en la mayor distribución. Macros en Nemerle son similares en Lisp. En el sistema XOC, el mecanismo de extensión se implementa a través de la expansión de la gramática y los atributos de árbol de análisis. Cualquier extensión necesariamente establece dos atributos: Tipo de sintaxis y expresión en lenguaje básicoen el que se convierte.

Para los idiomas ampliables, la implementación de muchas estructuras estándar se caracteriza por macros. En el idioma de Nemerle, todos los ciclos y operadores condicionalesAdemás de coincidir, implementados a través de macros, y en Macros Lispy son ciclos estándar y características de las funciones.

¿Cómo usar los idiomas?

Para un lenguaje de programación ampliable, puede escribir estructuras que permiten la forma más conveniente de programar los procesadores gráficos, que se realizó como parte del proyecto NUDA (Arquitectura de dispositivos unificados de Nemerle), cuyo propósito es crear las extensiones de idioma Nemerle para GPU programación. OpenCL se utiliza como una interfaz de interacción con la GPU y el idioma de destino para representar el programa.

Para comenzar, es necesario implementar la ejecución en el código de subconjunto GPU en el idioma Nemerle. Esto debe ser apoyado por los operadores de idiomas habituales, como ciclos y sucursales, así como trabajar con tipos de datos simples, estructuras y matrices. El código para la GPU se envía a funciones individuales, o en el Nuda Kernel. Cada kernel está marcado por una macro nukernel, que es generada por el código en el código de OPENCL y el método de enchufe para llamar al kernel en el lado del host. Antes de generar el código, la divulgación de todas las macros se realiza, con la excepción de los ciclos y las macros de rama. Si se requiere dentro del kernel para llamar a una función, esta función debe estar marcada por la macro de nucode, que generará código para esta función en OpenCL. La llamada principal se lleva a cabo utilizando una macro de NUBALL; Además de los parámetros del kernel, también se transmite a la configuración de la cuadrícula de transmisión con la que se inicia.

La mayoría de las veces, el cuerpo del ciclo se utiliza como un núcleo para la GPU, por lo que me gustaría transferir inmediatamente el ciclo a la GPU. En Nerlele, esto se puede implementar: la macro correspondiente en NUDA se llama Nuwork. Como los parámetros requeridos, toma el tamaño del bloque de la corriente y, sobre la base del contexto actual y el análisis del código del cuerpo del ciclo, determina el conjunto de variables que deben transferirse al kernel como parámetros. El cuerpo del núcleo se genera desde el cuerpo del ciclo, calculando los índices de ciclo a través del número de flujo global, así como las condiciones que le permiten ejecutar correctamente el ciclo, incluso si el tamaño de la cuadrícula global no se divide en el tamaño de la grupo de flujo. Una macro de NUCALL llama a la ubicación del ciclo, que llama al kernel generado.

En principio, puede permitir el uso de matrices de lenguaje de Nemerle en programas de GPU, pero conduce a costos de gastos generales altos: la matriz se requiere para copiar a la memoria GPU cada vez que se llama al kernel, y luego copiarlo. Por lo tanto, se utilizan tipos especiales de matrices en programas GPU con sincronización perezosa entre GPU y CPU. Esto permite, por un lado, no agarrar el texto del programa copiando los comandos de datos, y, por otro lado, para evitar gastos generales de copia de datos. Para tales matrices, en cuanto a las matrices ordinarias en Nerlele, la administración de la memoria se usa usando la recolección de basura. Para resaltar la memoria para tales matrices, hay una macro Nunew, que debe aplicarse al operador de asignación de memoria habitual.

En la Fig. 4 A la izquierda hay un programa de matrices convencionales, y a la derecha, un programa similar, pero realizando cálculos en la GPU. Obtenga programas de GPU de ordinarios simplemente simplemente: solo aplique macros a ciclos y operaciones de asignación de memoria, y la cantidad de código prácticamente no cambia. El programa escrito utilizando NUDA toma menos de 20 líneas de código. Programa similarPero en el lenguaje limpio, Si y OpenCl toma más de 100 líneas.

Además de las macros, facilitando el trabajo con la GPU, el sistema de extensión NUDA también incluye anotaciones para convertir los ciclos. Las anotaciones son macros esencialmente especiales. Por ejemplo, el extracto en línea se utiliza para un ciclo con un número fijo de iteraciones y realiza su exploración completa. Dmine Resumen realiza un escaneo de ciclo profundo. "Escaneo profundo" significa que la creación de varias copias del cuerpo del ciclo y la agitación se realizan no solo para el ciclo más convertible, sino también para ciclos anidados, si independientes.

Efecto

¿Por qué debería el programador debe aprender un nuevo idioma y desarrollar nuevas bibliotecas de idiomas expandibles? La respuesta principal es la productividad. Tener un algoritmo de los ciclos paralelos que operan con arreglos y registrados en el idioma de Nemerle, es suficiente para agregar varias anotaciones para obtener un programa para la GPU. Al mismo tiempo, el programa se ejecutará en cualquier dispositivo con Soporte de OpenCl, incluido el gráfico procesadores nvidia y AMD, así como los procesadores X86. Para lograr lo mismo con solo las tecnologías de OpenCl o CUDA, será necesario gastar mucho más recursos que se llevarán a cabo no solo para escribir el código fuente, sino también para depurar la interacción entre el host y la GPU.

Otra razón es el rendimiento del código creado. En CUDA u OPENCL, la conversión de ciclos se realizará manualmente, y por separado para cada arquitectura. Este es un proceso de error largo y envuelto, y el código resultante es difícil e inconveniente para el acompañamiento. Con Nuda, este trabajo se puede hacer con la ayuda de anotaciones. Por ejemplo, para múltiples núcleos, puede optimizar la convolución de imágenes o multiplicación de matrices con las anotaciones en línea y DMINE. Sin aumentar el tamaño del código fuente, es posible lograr un aumento en la productividad en dos o cinco veces. Al mismo tiempo, si las mismas transformaciones se realizaron manualmente, conduciría a un aumento en el código a veces, y a veces un orden de magnitud, sin mencionar el tiempo dedicado a depurar y seleccionar parámetros óptimos de barrido. Por ejemplo, un programa anotado universal de siete filas en la multiplicación de NUDA de una matriz transpuesta en una matriz de doble precisión se realiza en la NVIDIA TESLA C2050 solo 40% más lenta en el momento adecuado en el momento de la implementación (Cublas 3.2). Un programa similar escrito a mano ocupará 70 líneas de código. Naturalmente, para tareas estándar, puede escribir un código manualmente una vez para aumentar la productividad, pero para tareas específicas, la reducción de los costos laborales y la productividad será muy útil. Finalmente, el aumento de la productividad también incluye la creación de extensiones en sí mismas: para crearlas con la ayuda de idiomas expandibles es más fácil que el uso de herramientas tradicionales. Todo el sistema NUDA, a pesar de su funcionalidad, toma solo 12 mil líneas de código, sin contar las pruebas. Esto es relativamente pocos, por ejemplo, el compilador de lenguaje Nemerle (montaje 9025) toma aproximadamente 130 mil líneas.

El lenguaje expansivo es una herramienta poderosa, y su uso en cálculos paralelos aún se encuentra en el estado más inicial. Hay muchas tareas interesantes en el desarrollo de lenguajes de programación paralelos, y cualquiera de ellos se puede resolver utilizando una combinación de extensiones y bibliotecas. Puede agregar a los bloques de código asíncronos del idioma y los ciclos paralelos, puede crear diseños cómodos Para la programación sistemas de clústeres, como las matrices distribuidas. Finalmente, es posible usar extensiones para construir un lenguaje de programación paralelo de pleno derecho, como la capilla o X10.

ANDREY ADINETS([Correo electrónico protegido]- - M.N.S. Nivz Moscú Estado Universidad (Moscú).



La escritura de la mayoría de los programas informáticos modernos se lleva a cabo cuando se utilizan idiomas de alto nivel. Cabe destacar que muchos de ellos se han desarrollado en los años 60 y 70, pero siguen siendo relevantes. ¿Qué otros hechos sobre los idiomas de alto nivel podemos celebrar? ¿Cuáles son las variedades más comunes de las soluciones relevantes?

Esencia de programas de alto nivel para programas de escritura.

Idioma de programación de alto nivel: herramienta relacionada con la categoría independiente de la máquina. ¿Qué significa esto? El hecho es que los lenguajes de programación se dividen en varias categorías.

Hay un código de máquina: un conjunto de algoritmos que están diseñados para administrar el usuario directamente por elementos de hardware de la computadora. Su entidad será completamente dependiente de la máquina: solo ciertos algoritmos son adecuados para tipos específicos de PC.

Hay lenguajes ensamblos. De hecho, son una superestructura sobre los diseñados para el control de bajo nivel de los componentes de hardware de PC por medio de un código de máquina. Pero en muchos signos, también se aceptan los idiomas del ensamblaje para relacionarse con la máquina dependiente. Como regla general, se adaptan a una variedad específica de componentes de hardware de PC. Su tarea principal es simplificar la administración del usuario de la computadora a través de las comunicaciones apropiadas de bajo nivel.

A su vez, el lenguaje de programación de alto nivel permite al usuario interactuar con la PC, independientemente de qué equipo en particular esté instalado en la computadora. Por lo tanto, debe atribuirse a independiente de la máquina. Al escribir sistemas operativos, el lenguaje de programación de alto nivel se involucra con mayor frecuencia. Pero hay un sistema operativo, que está escrito en el ensamblador. Los niveles bajos y altos se pueden utilizar simultáneamente. Una persona, dándole a los equipos de alto nivel de PC, debe, de todos modos, para transmitirlos a componentes de hardware específicos, y esta función se puede implementar cuando se utiliza los lenguajes del ensamblador simultáneamente con alto nivel, lo que está involucrado en la estructura de la operación. sistema.

Traductor

Los elementos más importantes que están en lenguajes de programación de alto nivel son traductores. Su función puede ser diferente. Entre las áreas clave de aplicación de traductores: "Traducción" de comandos generados en el lenguaje de programación de alto nivel, en el código de la máquina, comprensible a un componente de hardware específico de la PC, por ejemplo, el procesador. Los traductores que realizan esta función también se llaman compiladores. Hay otra variedad de componentes relevantes: intérpretes. Están destinados, a su vez, para la "traducción" de equipos de alto nivel en aquellos que son comprensibles para el sistema operativo o cualquier programa.

Clasificación de idiomas de alto nivel.

Los idiomas de programación de alto nivel se pueden clasificar para diferentes bases. Un esquema para el que se dividen en las siguientes variedades principales son comunes:

Orientado de procedimiento (operar como herramienta al procesar información en cualquier etapa de cálculos);

Orientado a problemas (utilizado como un medio para resolver la industria y las tareas aplicadas formadas al expandir las aplicaciones de las PC);

Sin embargo, orientados a objetos (pueden ser casos particulares de idiomas de los dos primeros tipos, se adaptan al uso de una amplia gama de desarrolladores con niveles diferentes Preparación, por ejemplo, en forma de una solución con una interfaz visual).

Ahora considere algunos idiomas de programación históricos y modernos de alto nivel, que corresponden a esta clasificación.

Idiomas orientados a procedimientos

Tal se puede atribuir a Fortran. Se considera el primer lenguaje de programación de alto nivel creado para uso generalizado. Se caracteriza por una estructura simple. Los idiomas orientados a procedimientos también pertenecen a Beysik. Se considera una de las programaciones más utilizadas. Un ejemplo de otro idioma orientado a procedimiento - SI. Inicialmente, se creó para UNIX OS. Sobre su base, el idioma de C ++ se creó posteriormente, complementado con herramientas de programación orientadas a objetos. Otro idioma que pertenece a la categoría en consideración es Pascal. A menudo también involucrado en la programación de capacitación. Las posibilidades de este lenguaje permiten que se utilice como una herramienta muy poderosa para desarrollar especies profesionales de software.

Idiomas orientados a problemas

Estos incluyen Lisp, Prologue. El primer idioma se desarrolló en 1962, unos años después de la creación de Fortran. Se considera, de una manera como la segunda en la historia. Participa activamente como una herramienta para el trabajo de programadores con cadenas de caracteres. En la práctica, LISP se utilizó en sistemas clasificados como expertos, así como los que estaban destinados a cálculos analíticos. El prólogo fue ampliamente utilizado en el campo de la programación lógica. En la práctica, con mayor frecuencia involucrados en la gestión de algoritmos de inteligencia artificial en los sistemas respectivos.

Idiomas orientados a objetos

Ahora estudiamos los ejemplos de lenguajes de programación de alto nivel que se refieren a la categoría de objetos orientados. Entre esos - Visual Basic, Delphi, Visual Fortran, señaló anteriormente C ++, así como Prolog ++. De hecho, todos ellos se basan en idiomas orientados a procedimientos. Sin embargo, se supone que es una adición significativa a los elementos visuales de la gestión para el desarrollo posterior de los algoritmos necesarios por parte de los desarrolladores acostumbrados a otras herramientas. Por lo tanto, el primer lenguaje de programación de alto nivel: Fortran, puede ser estudiado por expertos en TI a través de las posibilidades de Visual Fortran. Un método similar puede dominar rápidamente una base o prólogo.

Se lleva a cabo, a su vez, cuando se usa la programación de Delphi en el idioma del objeto Pascal de alto nivel. Hay una gran cantidad de otros entornos de desarrollo de software, clasificados como un lenguaje orientado a objetos. Este campo de las tecnologías de desarrollo se está desarrollando activamente.

Fortran y Lisp: los idiomas de primer y segundo de alto nivel

Estudiaremos más, a medida que apareció el primer lenguaje de programación de alto nivel, Fortran, así como el Lisp, considerado el segundo. En 1954, los desarrolladores de IBM, encabezados por John Bacus, crearon un idioma por el cual los programadores pudieron aliviar significativamente la interacción con la PC, que hasta el momento se realizó a través de comandos de máquinas o ensamblador. Fue llamado a Fortran y pronto se hizo conocido en la URSS bajo el artículo rusificado. Fortran se ha convertido en una herramienta popular para la computación científica.

El principal elemento revolucionario propuesto por los especialistas de IBM, se convirtió en el mismo compilador, diseñado para ser una alternativa al ensamblador. En los primeros años de la práctica de escribir programas al utilizar FORTRAN, muchos desarrolladores consideraron que el compilador no era una solución exitosa, en primer lugar, en términos de costos laborales. Muchos códigos de máquina estaban preparados más fáciles que cuando el traductor está involucrado. Sin embargo, como un aumento rápido en el rendimiento de la computadora, los programadores comenzaron a darse cuenta de que sin utilizar el compilador, un software efectivo que usará completamente la potencia de cómputo de la PC, para crear extremadamente problemáticos. Entonces, los comienzos de los desarrolladores de IBM se desarrollaron aún más. Las principales estructuras sintácticas del lenguaje de programación de alto nivel de Fortran, en muchos casos, comenzaron a usar lo básico al crear nuevas soluciones.

Un ejemplo de logrando resultados prácticos en el desarrollo de conceptos establecidos en Fortran se puede considerar la creación de Lisp. Este idioma se desarrolló en 1958, sin embargo, adquirió una fama amplia un poco más tarde, en la década de 1960. Lisp fue desarrollado por John McCarthy y publicado en una de las revistas populares para especialistas en TI. El propósito principal del idioma en consideración es procesar listas. Lisp se hizo popular en el entorno de desarrollo de los sistemas de inteligencia artificial. Sobre su base, se crearon lenguas como el planificador, el plan, así como a Lisp comunes. También también proporcionó un impacto significativo en muchas herramientas modernas de desarrollo de software. La estructura de lenguajes de programación de alto nivel, popular hoy en día, se basa en gran medida en los algoritmos de Fortran y Lisp.

Sin embargo, será interesante considerar otros enfoques para la clasificación de las herramientas consideradas de las herramientas de desarrollo de software.

Idiomas universales de alto nivel

Por lo tanto, los expertos modernos asignan idiomas universales de alto nivel. Estos incluyen, en particular, aquellos que se han desarrollado en los años 60. Caracteristicas claves:

Orientación en una amplia gama de tareas (en primer lugar relacionadas con la computacional);

Un gran número de estructuras de lenguaje y algoritmos;

Significado no solo por su tiempo, sino también para la etapa moderna del desarrollo de equipos informáticos;

Apoyo en los idiomas relevantes de la metodología imperativa.

Los idiomas universales son fundamentales en la industria relevante para el desarrollo de TI. Se puede observar que hasta ahora no tienen análogos directos en la parte de la estructura interna. En realidad, esto explica en gran medida la relevancia del uso de idiomas relevantes en las modernas interfaces orientadas a objetos. También en general en lenguas marcadas: tipo de datos. Este factor predetermina en gran medida su versatilidad. Entre las propiedades más notables de los idiomas pertenecientes a la categoría de continuidad universal. Por lo tanto, los idiomas históricamente posteriores generalmente se basan en los conceptos de predecesores.

Idiomas únicos

Algunos expertos en TI asignan en una categoría independiente "Idiomas únicos". Entre esas: APL, COBOL, DEPANTE, SETL, así como CLU. ¿Cuál es su especificidad?

El aspecto más importante del APL es la participación de las matrices (vectores y matrices) como un tipo estructural clave. Los detalles del lenguaje COBOL, en la orientación en la esfera comercial. Por lo tanto, es aconsejable utilizarlo cuando resuelva los problemas asociados con un formato estandarizado de representación de los resultados. El idioma del último idioma se caracteriza por el uso de registros de software Postfix, así como el uso de una notación elegante. En el lenguaje SETL, los conjuntos de valores se utilizan como uno de los tipos clave de datos. El lenguaje de programación de alto nivel también es CLU. Su característica principal es usar el concepto de trabajar con tipos de datos abstractos. Muchos especialistas en TI ven la aparición lógica de nuevas soluciones basadas en lenguas únicas, como, por ejemplo, COBOL orientado a objetos.

Instalaciones Programación paralela.

Esta categoría puede incluir una gran cantidad de soluciones. A su vez, los lenguajes de programación paralelos pueden tener una gran cantidad de motivos para la clasificación. Por ejemplo, el método de organización de procesos. Esta base implica la clasificación de los medios de programación paralela basados \u200b\u200ben la presencia en ellos:

Soprogramas;

Sucursales;

Asociaciones;

Soportes paralelos;

Algoritmos de trabajo con procesos.

Otra base para clasificar los idiomas del tipo en consideración es los métodos de sincronización de los procesos. Las soluciones correspondientes pueden incluir así:

Semáforos;

Monitores;

- "RANDEVU";

Secciones críticas;

Procedimientos de desafío remoto;

Transacciones relacionadas con la categoría Atómica.

Los idiomas del tipo de tipo incluyen Modula-2, Bliss, Pascal concurrente, DP, Argus.

Familia de idiomas C.

ANTERIOR, consideramos un ejemplo de un lenguaje de programación de alto nivel, una solución como C. De hecho, forma una familia completa. Los idiomas que pertenecen a ella son estructuras privadas C. Por lo tanto, su adición a varios componentes orientados a objetos llevó al desarrollo de C ++. Después de un filtrado sustancial de una fila de construcciones C, apareció Java. Se puede observar que Java fue creada de muchas maneras bajo la influencia de los conceptos del Proyecto Oberon, que es administrado por Niklaus Wirth, el Creador de la lengua Pascal. ¿El JavaScript de alto nivel se relaciona con JavaScript de alto nivel? Por supuesto, sí, a pesar de la estrechez de la solicitud, como una herramienta para desarrollar páginas web. Pero los lenguajes de programación de alto nivel no incluyen, en particular, HTML, XML y SGML. Se clasifican como herramientas de marcado de hipertexto.

Idioma Pascal Familia

Las lenguas de programación de alto nivel Pascal también forman una familia separada. En la base de Pascal, en realidad creó a Oberon, clasificada como un lenguaje de tipo orientado a objetos. Función clave Oberon: en la capacidad de garantizar la seguridad de los tipos. Sin contar a Oberon, los idiomas de la familia Pascal se pueden atribuir a Modula-2, así como Pascal de componentes.

Familia de idioma ADA

El fundamental en la categoría relevante de idiomas, ordenada por el Departamento de Defensa de los EE. UU. ADA. Fue creado a fines de los 70 a principios de los 80. Caracterizado gran cantidad Funciones, oportunidades, versatilidad. La familia ADA incluye soluciones como Cedar, Modula 3.

Familia de idiomas simula

El lenguaje simula se distribuye en las ramas de programación asociadas con el modelado de imitación. La especificidad de las soluciones apropiadas, en la participación de un núcleo específico. Su uso le permite aplicar varias extensiones adaptadas a una u otra aplicación. Sobre la base de Simula, se creó un lenguaje de pequeñostalk orientado a objetos, así como beta, caracterizado por la capacidad de combinar dentro de una sola abstracción de algoritmos, reflejando el trabajo con datos, procedimientos y control. Los objetos beta se pueden considerar en un contexto diferente, por ejemplo, como variables, funciones o sistemas paralelos.

Título del informe

Languas de programación modernas y su uso.

El autor del proyecto.

Estructura del proyecto

● Esquema de clasificación de idioma de programación

● Clasificación de lenguajes de programación

● Descripción general de los idiomas de programación

● Recursos útiles

Languajes de programación del esquema de clasificación

Clasificación de lenguajes de programación.

Programación de procedimientos - Hay un reflejo del fondo de la arquitectura de NYMANOVSK de la computadora. El programa escrito en lenguaje de procedimiento es una secuencia de comandos que determinan el algoritmo de resolución de problemas. La idea principal de la programación de procedimientos es el uso de la memoria para el almacenamiento de datos. El comando principal es la asignación, que se determina y la memoria de la computadora cambia. El programa hace la conversión de contenido de memoria cambiándolo del estado de origen a la resultante.

Hay procedimientos similares lenguajes de programación:

 El lenguaje FORTRAN fue creado a principios de los años 50 del siglo XX para programar tareas científicas y técnicas;

 COBOL, creado a fines de los años 60 del siglo XX para resolver problemas para procesar grandes cantidades de datos almacenados en varios portadores de datos;

 Algol (1960) es un lenguaje de programación avanzado multiusos. Por primera vez, se introdujeron los conceptos de la "estructura de bloques del programa" y la "distribución de memoria dinámica";

 A mediados de los años 60 del siglo XX, se creó un lenguaje de programación especializado para principiantes, básico. Se caracteriza por la simplicidad del desarrollo y la presencia de medios universales para resolver tareas científicas, técnicas y económicas, así como las tareas, por ejemplo, los juegos.

Todos los idiomas enumerados anteriormente se enfocaron en diferentes clases de tareas, pero fueron de una forma u otra estaban atadas a una arquitectura informática específica.

 En 1963-1966, se creó un lenguaje universal multiuso PL-1. Este lenguaje está bien adaptado para procesos informáticos de investigación y planificación, modelado, resolución de tareas lógicas, desarrollo de sistemas de soporte matemático.

 Idioma Pascal (Pascal) (1968-1971GG) - El lenguaje de programación de procedimiento es el más popular para PC, que actualmente se ha aplicado con éxito. El lenguaje Pascal se basa en una tarea común para privar (más simple y menos en volumen). Los principios básicos con los que posee Pascal pueden ser: a) Programación estructural, que se basa en el uso de subrutinas y estructuras de datos independientes; b) Programación "de arriba abajo" cuando la tarea se divide en tareas simples e independientes. Luego, la solución del problema inicial está completamente rematado.

 Para el procedimiento, los lenguajes de programación incluyen el idioma del infierno (1979 d), el idioma se nombra después del primer programador de los Dooms de los Lavlayers de Bairon. Cuenta con la modularidad de las estructuras.

 Idioma SI (principios de los 70) también se relaciona con lenguajes de programación de procedimientos. Su opción inicial se planificó como un idioma para implementar el sistema operativo UNIX en lugar del ensamblador. Una de las características del idioma SI es que las diferencias entre expresiones y operadores se suavizan, lo que lo lleva a los lenguajes de programación funcionales. Además, no hay concepto de procedimiento en el idioma C, y el uso de subrutinas se basa en el concepto de una función que puede combinar las capacidades del procedimiento. Por un lado, en el conjunto de estructuras de control y estructuras de datos, se puede atribuir a idiomas de alto nivel, y, por otro lado, tiene un conjunto de medios de acceso directo a los nodos funcionales de la computadora, lo que significa que puede ser utilizado como un lenguaje operativo.

Programación orientada a objetos (OOP) - Este es un método de programación, al usar los elementos principales de los programas son los objetos. En los lenguajes de programación, el concepto de un objeto se implementa como un conjunto de propiedades (estructuras de datos características de este objeto), métodos de su procesamiento (subrutinas para cambiar sus propiedades) y eventos para los cuales este objeto Puede reaccionar y, que conduce, por regla general, a un cambio en las propiedades del objeto. La combinación de datos y el tratamiento de los procedimientos de procesamiento en un objeto se denomina encapsulación y es uno de los principios más importantes del OOP.

Otro concepto fundamental es la clase. La clase es una plantilla basada en la cual se puede crear un objeto de programa específico, describe las propiedades y los métodos que determinan el comportamiento de los objetos de esta clase. Cada objeto específico que tiene la estructura de esta clase se denomina instancia de clase.

Los próximos principios más importantes de la OOP son la herencia y el polimorfismo. La herencia implica la creación de nuevas clases sobre la base de existentes y permite al niño tener un descendiente de tener (heredar) todas las propiedades de la clase principal.

El polimorfismo significa que las instalaciones nacidas tienen información sobre qué métodos deben usar dependiendo de los cuales las cadenas sean en las que se encuentren.

Otro principio importante de la OOP es la modularidad: los objetos incluyen la definición completa de sus características, ninguna definición de métodos y propiedades debe ubicarse fuera de él, hace que la copia gratuita y la introducción de un objeto a otros.

Los lenguajes de programación más avanzados son C ++ y Java. Desde mediados de los años 90, muchos idiomas orientados a objetos se implementan como sistemas de diseño visual en los que la parte de la interfaz producto de software Creado en diálogo, prácticamente no hay operadores de software de escritura. Los sistemas de diseño visual orientados a objetos incluyen Visual Basic, Delphi, C ++ Builder, Visual C ++. Idioma VBA (Visual Basic para Aplicación) - Idioma de la aplicación Microsoft Office. (Excel, Word, Power Point, etc.). VBA cumple con la sintaxis principal de las reglas de lenguaje y programación de dialectos básicos, le permite crear macros para automatizar la ejecución de ciertas operaciones y interfaz gráfica Integración del usuario entre varios productos de software.

Lenguajes de programación declarativos

Estos incluyen funcional y idiomas lógicos Programación. La programación funcional es una forma de elaborar programas en los que la única acción es una llamada de función. La programación funcional no utiliza la memoria como una ubicación para el almacenamiento de datos, y, por lo tanto, no se usan las variables intermedias, la asignación y los operadores de ciclos. El concepto clave en lenguajes funcionales es una expresión. El programa escrito en el lenguaje funcional es una secuencia de las funciones y expresiones que describen. La expresión se calcula por el complejo de información a simple. Todas las expresiones se registran en forma de listas. El primer idioma fue LISP (Lisp, procesamiento de listas, procesamiento de listas) se creó en 1959. Este idioma le permite procesar grandes cantidades de información textual. La programación lógica es la programación en términos de lógica. En 1973, se creó el lenguaje de la inteligencia artificial Prolog (PROG) (programación en la lógica). El programa Prologue se basa en la secuencia de hechos y reglas, luego la aprobación de que el prólogo está tratando de probar con la ayuda de las reglas. El idioma en sí está buscando una solución utilizando los métodos de búsqueda y comparación que se colocan en ella. Programas de lógica No se diferencia de alta velocidad, ya que el proceso de su ejecución se reduce a la construcción de cadenas directas y reversas de razonamiento con una variedad de métodos de búsqueda.

Descripción general de las lenguas de programación

Ensamblador

Los lenguajes de programación de computadoras se dividen en 2 grupos principales:

1) Idiomas de bajo nivel;

2) Idiomas de alto nivel.

Los idiomas de bajo nivel incluyen lenguajes de ensamblaje. Recibieron su nombre en nombre del programa del sistema del ensamblador, que convierte los programas de origen escritos en idiomas directamente a los códigos de los comandos de la máquina. Las partes aquí son operadores, y el resultado del conjunto de la secuencia de comandos de la máquina, el lenguaje del ensamblador combina las ventajas del idioma de los comandos de la máquina y algunas características de los idiomas de alto nivel. El ensamblador proporciona la posibilidad de aplicar nombres simbólicos en el programa de origen y elimina al programador del trabajo tedioso (inevitable al programar en el idioma de los comandos de la máquina) en la distribución de la memoria de la computadora para comandos, variables y constantes.

El ensamblador le permite utilizar de manera flexible y completa las capacidades técnicas de la computadora, así como el idioma de los comandos de la máquina. El traductor de origen en el ensamblador es más fácil que un traductor requerido para un lenguaje de programación de alto nivel. En el ensamblador, puede escribir como efectivo en tamaño y tiempo para ejecutar el programa, así como el programa en el idioma de los comandos de la máquina. Esta dignidad está ausente en idiomas de alto nivel. Este idioma se usa a menudo para programar el sistema en tiempo real. procesos tecnológicos y equipo, asegurando el funcionamiento de la información y los complejos de medición. Dichos sistemas generalmente tienen altos requisitos para el volumen de la memoria de la máquina ocupada. A menudo, el lenguaje del ensamblador se complementa mediante la formación de un macrocomand, cada uno de los cuales es equivalente a un grupo completo de comandos de máquinas. Tal idioma se llama el lenguaje del macroensista. El uso de la "construcción" de la amapola "bloquea y trae el idioma del ensamblador al lenguaje de alto nivel. Idioma dependiente de la máquina del ensamblador, es decir, refleja las características de la arquitectura de un tipo particular de computadora

Pascal

El lenguaje de programación de Pascal fue desarrollado por el Profesor del Departamento de Ingeniería Informática del Instituto Federal de Tecnología de Swiss, Nikolas Virgen en 1968 como alternativa a las lenguas de programación existentes y todos, como PL / 1, Algol, Fortran. El desarrollo intensivo de Pascal llevó a la aparición en 1973 su estándar en forma de un mensaje revisado, y la cantidad de traductores de este idioma en 1979 superó los 80. A principios de los 80, Pascal aún más fortaleció su posición con la llegada de la EM. -Pascal y Turbo Translators -Pascal para PEVM. A partir de este momento, Pascal se convierte en uno de los lenguajes de programación más importantes y ampliamente utilizados. Es esencial que el lenguaje haya estado durante mucho tiempo más allá del alcance del interés profesional académico y estrecho y se utiliza en la mayoría de las universidades de los países altamente desarrollados, no solo como una herramienta de usuario. La característica más importante de Pascal es la idea incorporada de la programación estructural. Otra característica esencial es el concepto de estructura de datos como uno de los conceptos fundamentales.

Las principales razones de la popularidad de Pascal son las siguientes:

El lenguaje fácil le permite dominar rápidamente y crear programas algorítmicamente complejos.

Las herramientas desarrolladas para presentar estructuras de datos proporcionan conveniencia tanto de la información numérica como simbólica y simbólica.

La presencia de técnicas especiales para crear traductores de Pascal simplificó su desarrollo y contribuyó a un lenguaje generalizado.

Optimizar las propiedades de los traductores de Pascal le permiten crear programas efectivos. Esto sirvió como una de las razones para usar Pascal como lenguaje de programación de idiomas.

En el idioma Pascal, se implementan las ideas de programación estructural, lo que hace que el programa sea visual y brinda buenas oportunidades para desarrollar y depurar.

Bell Labs El empleado Denis Ritchci creó el idioma C en 1972 durante la colaboración con Ken Thompson, como una herramienta para implementar el sistema operativo UNIX, sin embargo, la popularidad de este lenguaje obtuvo rápidamente el marco de un sistema operativo en particular y tareas específicas Programación del sistema. Actualmente, cualquier sistema instrumental y operativo no se puede considerar completo si su composición no incluye el compilador de idioma C. Ritchee no inventó un SI simplemente de la cabeza: el prototipo fue el lenguaje de BI desarrollado por Thompson. El lenguaje de programación de SI se desarrolló como una herramienta para los profesionales. De acuerdo con esto, el propósito principal de su autor fue crear un lenguaje conveniente y útil en todos los aspectos.

Si es un sistema de programador de sistemas y le permite escalar profundamente en los mecanismos más sutiles para procesar información en una computadora. Aunque el idioma requiere un programador de alta disciplina, no es estricto en las reivindicaciones formales y permite formulaciones breves.

C - Lenguaje moderno. Incluye aquellos diseños de gestión que son recomendados por la teoría y la práctica de la programación. Su estructura alienta al programador a usar el diseño a la baja, la programación estructural y los módulos paso a paso.

C - Lenguaje potente y flexible. La mayor parte del sistema operativo UNIX, compiladores e intérpretes de lenguajes FORTRAN, Pascal, Lisp y Baisik están escritos precisamente con su ayuda.

C - Lenguaje conveniente. Está lo suficientemente estructurado para mantener un buen estilo de programación y, al mismo tiempo, no está conectado con restricciones estrictas. En cierto sentido, el idioma SI es el más universal, porque Además del conjunto de medios inherentes a los idiomas modernos de programación de alto nivel (estructural, modularidad, tipos de datos específicos), incluye software para programación prácticamente en el nivel del ensamblador. Un gran conjunto de operadores y medios requiere una precaución de programadores, precisión y buen conocimiento del lenguaje con todas las ventajas y desventajas de la OHI.

C ++ ha aparecido a principios de los 80. Creado por Bierian Sturastrup con el propósito inicial de salvarse a sí mismo y a sus amigos de la programación en el ensamblador, SI o varios otros idiomas de alto nivel.

Según el autor de la lengua, la diferencia entre la ideología de Si y C ++ es de la siguiente manera: El programa en C refleja el procesador de "método de pensamiento", y C ++ es un método de programador de pensamiento. Respondiendo a los requisitos de la programación moderna, C ++ se centra en el desarrollo de nuevos tipos de datos de los conceptos más relevantes del área elegida de conocimiento y tareas de la aplicación. La clase es el concepto clave de C ++. Una descripción de la clase contiene una descripción de los datos necesarios para representar objetos de este tipo y un conjunto de operaciones para trabajar con objetos similares.

A diferencia de las estructuras de C y Pascal tradicionales, los miembros de la clase no son solo datos, sino también funciones. Funciones: los miembros de la clase tienen acceso privilegiado a los datos dentro de los objetos de esta clase y proporcionan una interfaz entre estos objetos y el resto del programa. Con un trabajo adicional, no es absolutamente necesario recordar la estructura interna de la clase y el mecanismo de funcionamiento de las características integradas. En este sentido, la clase es similar a los muebles eléctricos: algunas personas conocen su dispositivo, pero todos saben cómo usarlo.

El lenguaje C ++ es una herramienta programación de objetosLos últimos métodos de diseño e implementación de programas, que en la década actual es probable que reemplace la programación procesal tradicional. El objetivo principal del Creador del idioma del Dr. Biern estrastro estaba equipado con las construcciones de C ++, lo que permitirá aumentar la productividad de los programadores y facilitar el proceso de dominar los productos de software grandes.

La abstracción, la implementación, la herencia y el polimorfismo son las propiedades necesarias con las que tiene el lenguaje C ++, de modo que no solo sea universal, así como el idioma C, pero es el idioma del objeto. Fortran Fortran es un lenguaje ampliamente distribuido, especialmente entre los usuarios que participan en el modelado numérico. Esto se explica por varias razones:

La existencia de enormes fondos para programas aplicados en la fortaleza acumulada a lo largo de los años, así como la presencia de numero enorme Programadores que utilizan efectivamente este idioma;

La presencia de traductores de morthrane efectivos en todos los tipos de computadora, y la versión para varias máquinas es bastante estandarizada y la transferencia de programas de la máquina a la máquina generalmente no es grande;

En la orientación inicial de FORTRAN sobre aplicaciones físicas y matemáticas y técnicas; En particular, manifestó que durante mucho tiempo siguió siendo el único idioma con un tipo integrado incorporado de variables y un gran conjunto de funciones incorporadas para trabajar con tales variables.

Durante el período pasado, se ha formado una nueva metodología y filosofía de programación. Desde principios de los años 70, Ford ha sido merecidamente criticado. En 1977, se adoptó un nuevo estándar de Fortran-77. Tomó mucho tiempo crear un nuevo estándar, pero ahora ya es posible asumir que su desarrollo se completa y el nuevo estándar Fortran-90 comenzó a entrar en la práctica de los usuarios de Urthran. Solo en las máquinas de IBM PC hay varios traductores, por ejemplo, WATFOR, Lap-Fortran, etc., pero la distribución más grande de las máquinas de este tipo recibió varias versiones del traductor FORTRAN-77. El traductor de MS-FORTRAN 5.0 lanzado en 1990 casi cumple plenamente con la norma FORTRAN-90. La mayoría de los programas de aplicaciones científicas y técnicas grandes se escriben en FORTRAN porque tiene tolerabilidad y estabilidad, así como debido a la presencia de funciones matemáticas y trigonométricas incorporadas. Una parte adicional e integral de cualquier programa de aplicación en Fortran es una biblioteca gráfica extendida, que permite utilizar varios datos gráficos e imágenes.

El idioma se creó principalmente en 1975 - 1980 como resultado de un gran proyecto emprendido por el Departamento de Defensa de los EE. UU. Para desarrollar un solo lenguaje de programación para los llamados sistemas incorporados (es decir, sistemas de control de complejos automatizados que operan en tiempo real) . En primer lugar, se enteraron sistemas de control en el lugar para la gestión de objetos militares (barcos, aviones, tanques, cohetes, conchas, etc.). Por lo tanto, las decisiones tomadas por los autores no consideran universal. Deben ser percibidos en el contexto de las características del área temática seleccionada. El lenguaje de adaplación surgió como resultado de una competencia internacional de proyectos lingüísticos celebrados en 1978-1979. Los participantes deberían haber sido satisfechos bastante difíciles, diseñados bajo los auspicios del Departamento de Defensa de los Estados Unidos con los requisitos. Curiosamente, todos los idiomas que han bajado a las últimas rondas de este concurso se basaron en Pascal. En este sentido, el infierno se puede caracterizar previamente como Pascal, desarrollado, teniendo en cuenta los cinco requisitos básicos mencionados anteriormente. Al mismo tiempo, los autores fueron principalmente a lo largo del camino de la expansión de Pascal con nuevos elementos. Como resultado, resultó un lenguaje significativamente más complejo.

Kobol.

COBOL es un lenguaje relativamente antiguo, diseñado principalmente para la investigación en la esfera económica. El idioma le permite trabajar efectivamente con una gran cantidad de datos, está saturado con una variedad de capacidades de búsqueda, clasificación y distribución. Acerca de los programas de Cobol Widescreen de idioma ingles, Dicen que son comprensibles incluso a aquellos que no poseen COBOL, ya que los textos en este lenguaje de programación no necesitan comentarios especiales. Tales programas se denominan autocontrol. Otras ventajas de COBOL generalmente incluyen su estructura. Los compiladores bastante poderosos de este lenguaje están diseñados para computadoras personales. Algunos de ellos son tan efectivos que el programa depuró de manera devicamente en una computadora personal es fácil de transferir a computadoras grandes.

Listado Las minuses no deben recordarse que solo los cálculos algebraicos más simples pueden programarse en el COBOL. Para los cálculos de ingeniería, este lenguaje no es adecuado. Otra razón, que hasta cierto punto restringe el desarrollo del idioma, es la presencia de un Comité de la Industria Especialmente creado en los Estados Unidos, que produce estándares, en cumplimiento de la Comisión del Gobierno. Como siempre sucede en tales casos, las empresas dedicadas al desarrollo de software no se apresuran a personalizar sus palanquillas a los estrictos requisitos de la Comisión, no hay competencia de versiones, y eventualmente pierde la difusión del idioma.

PL / 1 se desarrolló en 1964-1965 por IBM. PL / 1 se refiere al número de idiomas universales, es decir, le permite resolver problemas de diferentes áreas: cálculos numéricos, procesamiento de texto, tareas económicas, etc. Por sus capacidades, se superpone a idiomas como FORTRAN, ALGOL-60 ( Creado para cálculos numéricos), COBOL (para tareas económicas), aunque, debido a una serie de razones, estos idiomas del PL / 1 no pudieron ser suprimidos.

PL / 1 contiene todos los diseños básicos característicos de los llamados idiomas de alto nivel, así como una serie de medios específicos, convenientes para la programación práctica. El idioma se asemeja a un diseñador con una gran cantidad de piezas: el usuario es suficiente para dominar solo las partes de la lengua que es prácticamente necesaria para ello. Sus operadores son bastante tanques, lo que a menudo le permite obtener un registro del programa más compacto que en otros idiomas. Un programador PL / 1 informado desaparece cualquier otro idioma de la misma clase o de cerca.

Al mismo tiempo, el PL / 1 tiene una serie de deficiencias que impiden el estudio y el uso del idioma. Los principales son tales. En primer lugar, hay muchos medios duplicados de ellos difíciles de recordar, no está claro que al aplicar, además, reduce la velocidad de transmisión y la velocidad de la ejecución del programa. En segundo lugar, los programas no son enteramente independientes de la máquina.

Módulo

Podemos asumir que la historia del lenguaje del módulo comienza en 1980, cuando Niklaus Wirth, uno de los especialistas en teoría de la información sobresaliente, conocida por la mayoría de los especialistas en técnicos informáticos, principalmente como el Creador de Pascal, publicó una descripción del nuevo lenguaje de programación llamado módulo. En contraste con Pascal, que estaba en el lenguaje de inteligencia para la programación de aprendizaje, el módulo desde el principio fue un idioma para profesionales. programadores del sistemaAl continuar las mejores tradiciones de su predecesor y enriquecerlos con nuevas ideas que cumplan con tales requisitos para las lenguas de programación como estructuración, modularidad y capacidad para expandirse. Como muchos otros lenguajes de programación, el módulo se sometió a Evolution, durante el cual su nombre inicial se rehecho en nombre del Módulo-2. Simultáneamente con el desarrollo del lenguaje del módulo, los nuevos compiladores fueron creados para él, sin embargo, ninguno de ellos podría competir con la mejor realización de lenguajes Pascal y SI, por ejemplo, desarrollada por Borland. En este idioma del módulo de transición, se consideró que el mejor período de Logitech se consideraba implementado por Logitech, que en sus características que pierden Turbo Pascal y Turbo SI. Solo en 1988, después de la aparición del sistema de velocidad máxima en el mercado estadounidense, Module-2 tomó un lugar digno entre los idiomas procesales destinados a la programación del sistema. La incorporación de la popularidad del sistema de velocidad máxima contribuyó con varios factores: conveniente y, además, el entorno operativo es fácilmente cambiante a solicitud de los usuarios, el compilador rápido y el editor selectivo de las conexiones. Pero lo más significativo resultó que programas creados Diferentes en alta velocidad y ocupados no tienen mucho lugar en la memoria.

Beysik

Código de instrucciones simbólicas básicas de uso múltiple: "Código de instrucciones simbólico universal para principiantes"). Descendiente directo de Fortran y aún el lenguaje de programación más popular para computadoras personales. Becisik apareció en 1963 (llamado el autor sería difícil, pero el mérito principal en su apariencia, sin duda, pertenece a los estadounidenses John Kemen y Thomas Kurtu). Como cualquier beneficio, la simplicidad de Beysik se dio la vuelta, especialmente en versiones anteriores de las dificultades de estructuración; Además, Baisik no permitió la recursión, una técnica interesante que le permite hacer efectivo y, al mismo tiempo, los programas cortos.

Se han desarrollado un poderoso compilador de béisbol, que proporcionan no solo vocabulario rico y alta velocidad, sino también la posibilidad de programación estructural. Según algunos programadores, las versiones más interesantes son GWBASIC, TURBO-BASIC y BASIC RÁPIDA.

En un momento, la apariencia de Básico Rápido marcó el nacimiento de una segunda generación de sistemas de programación en el idioma de Baysik. Proporcionó la posibilidad de programación modular y procesal, creando bibliotecas, compilación de programas listosizados, etc., que lo llevó al nivel de tales lenguajes de programación clásicos, como SI, Pascal, Fortran, etc., además, debido a la falta De la norma oficial del idioma de Baysik, su implementación rápida básica se ha convertido en un estándar real. Los líderes incondicionales entre las diversas versiones de Baysik fueron rápidas 4.5 y PDS 5.1 de Microsoft, que aparecieron a fines de los 80.

Ceceo

J. McCarthy fue propuesto por J. McCarthy en el trabajo en 1960 y se centró en desarrollar programas para resolver problemas de naturaleza no numérica. El nombre en inglés de este idioma: Lisp es la abreviatura de la expresión de procesamiento de la lista (el procesamiento de listas) y el bien enfatiza el área principal de su uso. El concepto de "lista" resultó ser muy amplio. En forma de listas, es conveniente representar expresiones algebraicas, gráficos, elementos de grupos finitos, conjuntos, reglas de salida y muchos otros objetos complejos. Las listas son la forma más flexible de presentación de información en la memoria de las computadoras. No es sorprendente que haya un lenguaje conveniente diseñado específicamente para manejar listas, se ganó popularidad rápidamente.

Después de la aparición de Lisp, varios autores propusieron una serie de otros problemas orientados al lenguaje algorítmico en el campo de la inteligencia artificial, entre los que se puede observar el juego, Snobol, Reflujo, Proólogo. Sin embargo, esto no impidió que Lisp siga siendo el idioma más popular para resolver tales tareas. Durante la historia de casi cuarenta años de su existencia, apareció una serie de dialectos de este lenguaje: Lisp Common Lisp, Mac Lisp, Inter Lisp, Lisp: Lisp estándar, etc. Las diferencias entre ellos no tienen una naturaleza fundamental y se reducen principalmente a un poco Diferentes conjunto de funciones incorporadas y alguna diferencia en forma de programas de grabación. Por lo tanto, un programador que aprendió a trabajar en uno de ellos puede dominar fácilmente y cualquier otro. La gran ventaja de Lisp es su orientación funcional, es decir, la programación se realiza utilizando funciones. Además, la función se entiende como regla general, comparando los elementos de alguna clase, los elementos correspondientes de otra clase. El proceso de comparación en sí mismo no afecta el funcionamiento del programa, solo su resultado es importante: el valor de la función. Esto le permite escribir y depurar fácilmente complejos de software grandes. Claridad de programas, una distinción clara entre sus funciones, la ausencia de efectos secundarios de Caerz cuando se ejecutan. requisitos obligatorios Programación de tareas tan lógicamente complejas, que son tareas de inteligencia artificial. La disciplina de programación se vuelve especialmente importante cuando no se trabaja en el programa, sino un grupo de programadores.

El lenguaje de programación de LISP está destinado principalmente para su procesamiento. información simbólica. Por lo tanto, es natural que en el mundo de Lisp, el número se juega lejos de un papel importante. Los principales tipos de datos en el Lispy se llaman "átomo" y "par de puntos".

Prólogo

El lenguaje de programación lógico está destinado a la presentación y el uso del conocimiento sobre un determinado área temática. Los programas en este idioma consisten en un determinado conjunto de relaciones, y su implementación se reduce a la conclusión de una nueva relación basada en el especificado. El prólogo implementa un enfoque declarativo, en el que es suficiente para describir la tarea utilizando reglas y declaraciones con respecto a los objetos especificados. Si esta descripción es bastante precisa, entonces la computadora puede encontrar independientemente la solución deseada.

OBJETO PAL

Objeto PAL es un poderoso lenguaje de programación. Objeto PAL es orientado a objetos, administrado por eventos, un lenguaje de programación visual. En el nivel inicial de la funcionalidad del objeto PAL, puede realizar operaciones de datos, crear menús especiales, así como administrar la sesión de entrada de datos. Los eventos en el objeto PAL generan comandos que simulan el efecto de usar paradoja en modo interactivo. Es posible automatizar tareas realizadas con frecuencia, así como sobre las tablas, formas e informes de acción que no estaban disponibles en el trabajo interactivo. Objeto PAL también proporciona todos los medios de lenguaje de programación con todas las funciones en entorno de Windows. Puede usar el objeto PAL para crear sistemas completados que implementen un sistema de menú especial, sistema de ayuda, así como todo tipo de cheques de datos. En OBJEs PAL, puede guardar sus desarrollos en una biblioteca de componentes dinámicamente, acceso a lo que tendrá varias formas. Además, puede establecer la comunicación con otras bibliotecas dinámicas que contengan el programa escrito en idiomas como SI, C ++ o Pascal.

El objeto PAL se puede utilizar como una herramienta para crear programas fuera de línea. Puede escribir la aplicación de Windows completada y ejecutarlo bajo paradoja.

Objeto PAL admite el mecanismo de intercambio de datos dinámico como el cliente y el servidor. Además, Object PAL apoya el mecanismo de trabajo con documentos compuestos como cliente. Además de lo que se ha dicho, es posible incluir multimedia en su solicitud, proporcionando la solicitud realizada por efectos de sonido y animación.

Creado por BBSE, la implementación del idioma DBEE es una exitosa orientación de objetos híbridos y métodos de programación tradicionales. Se le permitió crear sistemas utilizando diseño de objetos y usar recepciones convencionales para procesar registros. El gran logro de la compañía B Bohr fue que es muy bien combinada objetos y técnicas de programación de procedimientos. La primera versión para Windows le dio al usuario la herramienta de objeto más potente en el mercado de software de la base de datos. Le permite crear nuevas clases de objetos que poseen las propiedades de la herencia, la encapsulación y el polimorfismo. También le permite programar estos objetos utilizando los comandos de DBASE tradicionales, idealmente adecuados para administrar las bases de datos de mesa simples. Todo esto le da una ventaja indiscutible, sin una gran dificultad para la transición a las técnicas de programación de objetos, la transición es tan compleja, por ejemplo, como en la paradoja DBMS.

El idioma de Java se originó como parte del proyecto para crear software avanzado (software) para varios electrodomésticos. La implementación del proyecto se lanzó en C ++, pero pronto surgió una serie de problemas, los mejores medios para combatir la herramienta en sí mismo: lenguaje de programación. Se hizo obvio que se necesita un lenguaje de programación independiente de la plataforma, lo que le permite crear programas que no tenían que compilar por separado para cada arquitectura y uno podría usar en varios procesadores en varios sistemas operativos. Se requirió que el idioma Java creara productos interactivos para Internet. De hecho, la mayoría de las soluciones arquitectónicas adoptadas al crear Java fueron dictadas por el deseo de proporcionar sintaxis similar a C y C ++. Java utiliza acuerdos casi idénticos para declarar variables, transmitir parámetros, operadores y controlar la corriente de ejecución del código. Java agrega todas las buenas características C ++.

Tres elementos clave unidos en la tecnología Java.

Java proporciona un amplio uso de sus applets (applets) - Aplicaciones de red activa pequeñas, confiables, dinámicas y sin plataformas incrustadas en página web. Los applets de Java se pueden configurar y distribuir a los consumidores con la misma facilidad que cualquier documento HTML.

Java libera el poder del desarrollo de la aplicación orientado a objetos, combinando una sintaxis simple y familiar con un entorno de desarrollo confiable y conveniente. Esto permite que un amplio círculo de programadores cree rápidamente nuevos programas y nuevos applets.

Java proporciona a un programador un rico conjunto de clases de objetos para una abstracción clara de muchas funciones del sistema utilizadas cuando se trabaja con Windows, Red y para la E / S. El rasgo clave de estas clases es que proporcionan la creación de una plataforma de abstracción independiente para una amplia gama de interfaces del sistema.

Lenguajes de programación para red de computadoras

Se interpretan lenguajes de programación para redes de computadoras. Los intérpretes para ellos se distribuyen de forma gratuita, y los propios programas están en los textos de origen. Dichos idiomas se denominan guiones - Idiomas.

Perl es un lenguaje interpretado creado por el programador de pared de LARD para manejar los textos y archivos grandes y descifrados como la extracción práctica y el idioma del informe (idioma para la extracción práctica de datos y los informes). Usando Perl, por ejemplo, puede crear un script que abre uno o más archivos, procesa información y registra los resultados.

Perl es un idioma adaptado para procesar archivos de texto arbitrarios, extraer la información necesaria de ellos y emitir mensajes. Perl también es conveniente para escribir varios programas del sistema. Este lenguaje es fácil de usar, efectivo, pero es difícil decirlo que es elegante y compacto. La sintaxis de las expresiones PERL está cerca de la sintaxis C. La recursión puede ser de profundidad arbitraria. Aunque PERL está adaptado para escanear archivos de texto, también puede procesar datos binarios. Perl le permite usar expresiones regulares, crear objetos, inserte una pieza de código en un Software Perl al SI o C ++, y también permite el acceso a las bases de datos, incluida Oracle.

Con la invención, World Wide Web, Perl resultó ser una excelente herramienta para interactuar con servidores web a través de la interfaz de enlace común (CGI), una interfaz de interacción común. Los comandos de Perl pueden obtener fácilmente datos de un formulario HTML u otra fuente y realizar cualquier acción con ellos.

Idioma PHP. (1995-1997) tiene acceso a acceso a la base de datos y es utilizado por los creadores de sitios dinámicos de todo el mundo.

Idioma Tcl / tk. (A finales de la década de 1980) consiste en poderosos comandos diseñados para trabajar con objetos abstractos no de tipo y le permite crear programas con una interfaz gráfica.

Idioma Vrml (1994) creado para organizar interfaces tridimensionales virtuales en Internet.

Idioma XML. Desde 1996, está trabajando en la creación de un lenguaje universal de la estructura del documento. Puede convertirse en un sustituto de HTML.

Producción

Recursos útiles

Revisar aizili

¿Dónde está el informe?

Revisión Ranitka.

Re: ¿Dónde está el informe?
Todo será: -d

Retroalimentación Shamagulova Elite

Revisión Mishina Alexander

Gran informe. Aprendí mucho sobre las lenguas de programación.

Revisión Morozova Alexander

Por supuesto, me gustaría ver un informe o al menos una presentación en cualquier forma.

Antes de que quiera estudiar algún lenguaje de programación, debe saber un poco sobre su historia y dónde se aplican.

Te imagino breve reseña 25 lenguajes de programación conocidos. A partir de lo más famoso a menos popular. El artículo está hecho para los recién llegados en el campo de la programación. Puede leer sobre cada idioma y elegir el que le gustaría más para explorar.

Antes de comenzar a aprender idiomas de programación, le recomiendo que explore el curso del software.

1. JavaScript.

Idioma de programación escénica orientada a prototipos. JavaScript se creó originalmente para que las páginas web "viva". En el navegador, están conectados directamente a HTML y, tan pronto como se carga la página, inmediatamente ejecutada.

Cuando se creó el idioma de JavaScript, originalmente tenía otro nombre: "Livescript". Pero entonces el idioma de Java fue muy popular, y los mercadólogos decidieron que un nombre similar hará un nuevo idioma más popular.

Se planeó que JavaScript sería una especie de Java "hermano menor". Sin embargo, la historia ordenó a su manera, Javascript creció fuertemente, y ahora es un idioma completamente independiente, con su especificación y Java no tiene nada que ver.

2. Java.


Lenguaje de programación orientado al objeto estrictamente escrito. Las aplicaciones de Java generalmente se transmiten a un código de bytes especial, para que puedan trabajar en cualquier arquitectura de la computadora con una máquina virtual Java.

La ventaja de este método de ejecución de programas es la independencia completa del código de bytes del sistema operativo y el equipo, lo que le permite realizar aplicaciones Java en cualquier dispositivo para el cual hay una máquina virtual correspondiente. Otra característica importante de la tecnología Java es un sistema de seguridad flexible, en el que la ejecución del programa está totalmente monitoreada por una máquina virtual.

Inicialmente, el idioma se llamaba OAK ("Oak") fue desarrollado por James Gosling para la programación de la familia. dispositivos electrónicos. Posteriormente, fue renombrado a Java y comenzó a ser utilizado para escribir aplicaciones de clientes y software de servidor.

3. PHP.


Es un lenguaje de propósito general interpretado común con la fuente abierta (lenguaje de scripting). PHP se creó específicamente para el desarrollo web y el código en él se puede implementar directamente en el código HTML. La sintaxis del idioma se origina en C, Java y Perl, y es fácil de explorar.

El objetivo principal de PHP es proporcionar a los desarrolladores web la capacidad de crear rápidamente páginas web generadas dinámicamente, sin embargo, el campo de la aplicación PHP no se limita a esto.

4. Python

El lenguaje de programación de propósito general de alto nivel se centró en mejorar la productividad del desarrollador, la legibilidad del código y el desarrollo de aplicaciones web. La sintaxis del kernel de Python se minimiza. El código en Python está organizado en funciones y clases que se pueden combinar en módulos.

5. C #


Idioma de programación orientado a objetos. Desarrollado en 1998-2001 por un grupo de ingenieros bajo el liderazgo de Anders Halesberg en Microsoft como idioma para desarrollar aplicaciones para la plataforma Microsoft .NET Framework. C # se refiere a la familia de idiomas con una sintaxis similar a C, de la cual su sintaxis está más cerca de C ++ y Java.

El lenguaje tiene la escritura estática, apoya el polimorfismo, la sobrecarga de operadores, los delegados, los atributos, los eventos, las propiedades, los tipos y métodos generalizados, los iteradores, las funciones anónimas con el soporte de cierre, Linq, excepciones, comentarios en formato XML.

6. C ++.


Compilado, lenguaje de programación general de uso general. Es uno de los idiomas más comunes del mundo. Google Chrome., Mozilla Firefox, Winamp y la línea de productos de Adobe fueron diseñados con C ++. Además, se desarrollaron algunos juegos modernos y sistemas operativos en C ++ debido al rápido procesamiento y compilación.

7. RUBY


Lenguaje de programación simple y legible enfocado en el desarrollo de aplicaciones web. Diseñado por Yukihiro Matsumto en 1995. El lenguaje tiene un independiente del sistema operativo mediante la implementación de MultiThreading, estricto. tipificación dinámica, recolector de basura.

El propósito principal de Ruby es la creación de programas simples y al mismo tiempo de los programas comprensibles, donde la velocidad del programa no es importante, sino un pequeño tiempo de desarrollo, más claro y simplicidad de la sintaxis. El idioma sigue el principio "más bajo sorpresa": el programa debe comportarse como lo espera el programador.

8. CSS.


Hojas de estilo en cascada (tablas de estilo en cascada) Descripción formal Idioma vista externa Un documento escrito utilizando el lenguaje de marcado.
Se utiliza principalmente como una herramienta de descripción, diseño de la aparición de páginas web escritas utilizando lenguajes de marcado HTML y XHTML, pero también se puede aplicar a cualquier documento XML.

9. C.


Compiló lenguaje de programación de propósito general de tipografía estática. El lenguaje C fue diseñado por Dennis Ritchch en 1972 en Bell Labs. Es el predecesor de tales lenguajes de programación como C ++, Java, C #, JavaScript y Perl. Por esta razón, el estudio de este idioma conduce a la comprensión y otros idiomas. El lenguaje C se utiliza para desarrollar aplicaciones de bajo nivel, ya que se considera más cercano al hardware.

10. Objetivo-C


Compilado lenguaje de programación orientado a objetos utilizado por Apple Corporation, construido sobre la base del lenguaje y paradigma de Smallk. El lenguaje del Objetivo-C es una repentina del lenguaje SI, por lo que el código C se entiende completamente por el compilador OBJETIVO-C. El lenguaje se usa principalmente para Mac OS X (COCOA) y GNUSTEP: implementaciones de una interfaz orientada a objetos de OpenStep. Además, el lenguaje se utiliza para iOS (Cocoa Touch).

11. Shell.

No es tanto un idioma como el intérprete de comando (idioma de comando). Sus scripts se utilizan para automatizar las actualizaciones de software. Contiene diseños estándar para ciclos, ramificación, características de funciones. La familia de sistemas operativos compatible con el sistema operativo UNIX, el lenguaje Shell se utiliza como lenguaje estándar de gestión de tareas.

12. R.


Lenguaje de programación para el procesamiento de datos estadísticos y trabaje con gráficos, así como un software de computación de código abierto como parte del proyecto GNU. R se usa ampliamente como software de análisis de datos estadísticos y, en realidad, se ha convertido en un estándar para programas estadísticos. La interfaz de la línea de comandos se utiliza en R.

13. Perl.


Idioma de programación de propósito general dinámico de alto nivel. El nombre del idioma es una abreviatura que se descifra como un lenguaje práctico de extracción e informe: "Lenguaje práctico para extraer datos y elaborar informes". La característica principal del idioma son sus ricas oportunidades para trabajar con texto, incluido el trabajo con expresiones regulares, integradas en la sintaxis. En este momento se utiliza para realizar una amplia gama de tareas, incluida la administración del sistema, el desarrollo web, programación de red, Juegos, Bioinformática, Desarrollo de interfaces de usuario gráficas.

14. Scala.


Idioma de programación multipanigmal diseñado por breve y tipo seguro para facilitar la creación de software de componentes, combinando la programación funcional y orientada a objetos. Scala: los programas son en gran parte similares a los programas de Java, y pueden interactuar libremente con el código Java.

15. Ir.


Compilado lenguaje de programación multi-roscado desarrollado por Google. El idioma de GO se desarrolló como un sistema de programación del sistema para crear programas altamente eficientes que operan en sistemas distribuidos modernos y procesadores de múltiples núcleos. Se puede considerar como un intento de crear una sustitución del idioma SI. Al desarrollarse, se prestó especial atención a garantizar una compilación altamente eficiente. Los programas IR se compilan en el código de objeto y no requieren que se ejecute una máquina virtual.

16. SQL

Idioma de consultas estructuradas. El lenguaje de programación no concentrado formal se utiliza para crear, modificar y administrar datos en una base de datos relacional arbitraria, administrada por el sistema de gestión de bases de datos correspondiente. SQL es principalmente un lenguaje lógico de información diseñado para describir, cambiar y extraer datos almacenados en bases de datos relacionales. Cada oferta SQL es una solicitud de datos de la base de datos, o acceda a la base de datos, que conduce a un cambio en los datos en la base de datos.

17. Haskell.


Lenguaje general de programación general de limpieza estandarizada. Es uno de los lenguajes de programación más comunes con lenguajes de computación diferidos. Rasgo distintivo El lenguaje es una actitud seria hacia la escritura. Haskell Excelente idioma para aprender y para experimentos con tipos de datos funcionales complejos.

18. SWIFT.


Abierto multiparadigmal compilado por propósito general de la programación del lenguaje. Creado por Apple principalmente para los desarrolladores de IOS y OS X. SWIFT trabaja con los marcos de cacao y toque de cacao y compatibles con el código de manzana básico, escrito en el Objective-C. Swift pensó qué tan fácilmente lee y resistentes a los errores del programador, en lugar de los anteriormente precedidos por Objective-C. Swift tomó prestado bastante de Objective-C, pero no está determinado por los signos, sino los tipos de variables que procesa el compilador. Para un principio similar, muchos idiomas de scripting funcionan.

19. MATLAB.


Idioma de programación interpretable de alto nivel, incluidas las estructuras de datos basadas en matrices, una amplia gama de funciones, un entorno de desarrollo integrado, características y interfaces orientadas a objetos a los programas escritos en otros lenguajes de programación. Los programas escritos en MATLAB son dos tipos: funciones y scripts. Las funciones tienen argumentos de entrada y salida, así como su propio espacio de trabajo para almacenar los resultados intermedios de los cálculos y las variables. Los scripts también usan el espacio de trabajo general. Ambos scripts y funciones se almacenan como archivos de texto y se compilan en el código de la máquina dinámicamente.

20. Visual Basic


Idioma de programación, así como un entorno de desarrollo de software integrado desarrollado por Microsoft. El lenguaje de Visual Basic heredó el espíritu, el estilo y la sintaxis de su antepasado. lenguaje básicoque tiene muchos dialectos. Al mismo tiempo, Visual Basic combina procedimientos y elementos de lenguajes de programación orientados a objetos y orientados a los objetos.

Visual Basic también es bueno a una herramienta Aplicaciones rápidas de bases de datos de desarrollo RAD para sistemas operativos Microsoft Windows. Muchos componentes listosizados suministrados con el medio están diseñados para ayudar al programador de inmediato a comenzar a desarrollar la lógica empresarial de la aplicación, sin distraer su atención para escribir el código de inicio del programa.

21. Delphi.


Idioma de programación imperativo, estructurado, orientado a objetos con estrictas variables de escritura estática. El área principal de uso es la escritura del software aplicado.

Hoy, junto con el soporte de software de Windows de 32 y 64 bits, implementó la capacidad de crear aplicaciones para Apple Mac OS X, así como para Google Android (ejecutado directamente en el procesador ARM).

22. Groovy.


Idioma de programación orientado a objetos, diseñado para la plataforma Java, como una adición al idioma Java con las capacidades de Python, Ruby y Smalltalk. Groovy utiliza una sintaxis similar a Java con una compilación dinámica en el código JVM BYTE y opera directamente con otro código de Java y bibliotecas. El lenguaje se puede utilizar en cualquier proyecto de Java o en un lenguaje de scripting.

23. Visual Basic .NET


Lenguaje de programación orientado a objetos, que se puede ver como otra ronda de evolución de Visual Basic, implementada en plataforma de Microsoft .NETO. Vb.net no tiene compatibilidad hacia atrás con más versión temprana (Visual Basic 6.0). El desarrollo de proyectos de versiones anteriores (* .vbp) es posible solo después de la conversión preliminar al formato VB.NET con un maestro especial (asistente de migración); Sin embargo, después de la conversión, se requiere el refinamiento manual esencial de los textos.

24. D.

Lenguaje de programación compilado multipanigmal creado por Walter brillante de Marte digital. Inicialmente, D fue concebido como la reingeniería de C ++, sin embargo, a pesar del efecto significativo de C ++, no es su opción. Además, el idioma experimentó conceptos de los lenguajes de programación de Python, Ruby, C #, Java, Eiffel.

25. Ensamblador.


Idioma de bajo nivel orientado a máquina con comandos, no siempre comandos de máquinas apropiados, que pueden proporcionar características adicionales como macrosman; Autocode, lenguajes avanzados de programación de alto nivel, tales como expresiones, macros, medios para proporcionar modularidad de software.

Idioma del ensamblador: el sistema de designación utilizado para enviar a la forma legible de programas registrados en el código de la máquina. El lenguaje del ensamblador permite al programador utilizar los códigos de operaciones de Mnemotécnica alfabética, a su discreción, asignar nombres simbólicos con las computadoras con computadoras y memoria, así como establecer esquemas de direccionamiento fáciles de usar. Además, le permite usar diferentes sistemas de numeración para representar constantes numéricos y hace posible marcar las cadenas del programa con etiquetas con nombres simbólicos para que pueda contactar con ellos.

No tomé todos los idiomas. No son tanto en la demanda de programadores profesionales. Mi tarea se completa, ahora puede elegir un idioma adecuado y conquistarlo. Buena suerte para ti en tus esfuerzos.



¿Te gustó el artículo? Compártelo