{"id":113,"date":"2020-08-08T08:58:03","date_gmt":"2020-08-08T07:58:03","guid":{"rendered":"https:\/\/jlandresm.com\/?p=113"},"modified":"2025-01-27T16:25:32","modified_gmt":"2025-01-27T15:25:32","slug":"los-lenguajes-informaticos","status":"publish","type":"post","link":"https:\/\/jlandresm.com\/index.php\/2020\/08\/08\/los-lenguajes-informaticos\/","title":{"rendered":"Los lenguajes inform\u00e1ticos"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p style=\"text-align: justify;\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-118 alignleft\" src=\"https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/codigo_programacion.png\" alt=\"\" width=\"435\" height=\"325\" srcset=\"https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/codigo_programacion.png 1280w, https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/codigo_programacion-300x224.png 300w, https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/codigo_programacion-1024x764.png 1024w, https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/codigo_programacion-768x573.png 768w\" sizes=\"(max-width: 435px) 100vw, 435px\" \/><\/p>\n<p style=\"text-align: justify;\">Para que un ordenador realice una tarea, debe tener cargado en memoria un programa adecuado que le indique las tareas a realizar y el orden correcto en el que deben ser realizadas.<\/p>\n<p style=\"text-align: justify;\">Todo programa se escribe en un lenguaje inform\u00e1tico concreto y para ello los programadores se ayudan de los algoritmos y los diagramas de flujo.<\/p>\n<p style=\"text-align: justify;\"><span style=\"font-size: revert;\">La palabra algoritmo proviene del conocido matem\u00e1tico persa <\/span><a style=\"font-size: revert;\" href=\"https:\/\/es.wikipedia.org\/wiki\/Al-Juarismi\" target=\"_blank\" rel=\"noopener noreferrer\">Al-Juarismi<\/a><span style=\"font-size: revert;\"> y podemos definirla como:<\/span><\/p>\n<p style=\"text-align: justify;\"><br><br><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>conjunto de instrucciones u \u00f3rdenes dispuestas adecuadamente que permiten realizar una actividad mediante pasos sucesivos que no generan dudas a quien deba realizarla<\/p>\n<\/blockquote>\n\n\n\n<p style=\"text-align: justify;\">Dado un estado inicial y una entrada y siguiendo los pasos sucesivos se llega a un estado final y se obtiene una soluci\u00f3n. Los diagramas de flujo sirven para representar algoritmos de manera gr\u00e1fica:<\/p>\n<p style=\"text-align: justify;\">Diagrama de flujo:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-116 aligncenter\" src=\"https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/diagrama_de_flujo.png\" alt=\"\" width=\"384\" height=\"524\" srcset=\"https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/diagrama_de_flujo.png 1200w, https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/diagrama_de_flujo-220x300.png 220w, https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/diagrama_de_flujo-751x1024.png 751w, https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/diagrama_de_flujo-768x1048.png 768w, https:\/\/jlandresm.com\/wp-content\/uploads\/2020\/08\/diagrama_de_flujo-1126x1536.png 1126w\" sizes=\"(max-width: 384px) 100vw, 384px\" \/><\/p>\n<p>&nbsp;<\/p>\n\n\n\n<p style=\"text-align: justify;\">Los principales tipos de lenguajes utilizados son tres:<\/p>\n<ol style=\"text-align: justify;\">\n<li>Lenguaje m\u00e1quina<\/li>\n<li>Lenguaje de bajo nivel (ensamblador)<\/li>\n<li>Lenguaje de alto nivel (compiladores e int\u00e9rpretes)<\/li>\n<\/ol>\n<h3 style=\"text-align: justify;\">Instrucciones al ordenador<\/h3>\n<p style=\"text-align: justify;\">Los diferentes pasos o acciones de un algoritmo se expresan en los programas como instrucciones o sentencias.<\/p>\n<p style=\"text-align: justify;\">Un programa consta de una secuencia de instrucciones, cada una de las cuales especifica ciertas operaciones que debe ejecutar el ordenador.<\/p>\n<p style=\"text-align: justify;\">Las instrucciones b\u00e1sicas y comunes en casi todos los lenguajes de programaci\u00f3n pueden englobarse en:<\/p>\n<ul style=\"list-style-type: square; text-align: justify;\">\n<li style=\"text-align: justify;\"><strong>instrucciones de entrada\/salida<\/strong> (transferencia de informaci\u00f3n entre dispositivos y perif\u00e9ricos)<\/li>\n<li style=\"text-align: justify;\"><strong>instrucciones selectivas<\/strong> (en funci\u00f3n de los resultados obtenidos puede seleccionarse la tarea a realizar, son las tambi\u00e9n conocidas como instrucciones condicionales)<\/li>\n<li><strong>instrucciones repetitivas <\/strong>(repetici\u00f3n de un n\u00ba determinado de veces de una secuencia de instrucciones)<\/li>\n<li><strong>instrucciones especiales <\/strong>(gr\u00e1ficos, comunicaciones, &#8230;)<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">La elaboraci\u00f3n de un programa requerir\u00e1 conocer el juego o repertorio de instrucciones del lenguaje.<\/p>\n<h3 style=\"text-align: justify;\">1. Lenguajes m\u00e1quina<\/h3>\n<p style=\"text-align: justify;\">Los lenguajes m\u00e1quina son aquellos que est\u00e1n escritos en lenguajes inteligibles directamente por la m\u00e1quina. En ellos las instrucciones son <strong>cadenas binarias<\/strong> (1 y 0) que especifican una operacion y las posiciones (direcciones) de memoria implicadas en la operaci\u00f3n.<\/p>\n<p style=\"text-align: justify;\">El lenguaje m\u00e1quina depende del hardware de la computadora y, por tanto, ser\u00e1 diferente de un ordenador a otro.<\/p>\n<p style=\"text-align: justify;\">Las <span style=\"text-decoration: underline;\">ventajas<\/span> de programar en lenguaje m\u00e1quina son la posibilidad de cargar o transferir el programa a la memoria sin necesidad de traducci\u00f3n alguna, lo que supone una velocidad de ejecuci\u00f3n superior a cualquier otro lenguaje.<\/p>\n<p style=\"text-align: justify;\">Los <span style=\"text-decoration: underline;\">inconvenientes<\/span> superan a las ventajas:<\/p>\n<ul style=\"list-style-type: square; text-align: justify;\">\n<li>dificultad y lentitud en la codificaci\u00f3n del programa<\/li>\n<li>los programas s\u00f3lo funcionan en m\u00e1quinas con el mismo microprocesador<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">En los principios de la Inform\u00e1tica, s\u00f3lo se pod\u00eda programar a nivel m\u00e1quina y \u00fanicamente lo hac\u00edan los ingenieros que la dise\u00f1aron ya que s\u00f3lo ellos conoc\u00edan su funcionamiento interno.<\/p>\n<p style=\"text-align: justify;\">Para evitar los lenguajes m\u00e1quina y acercar la programaci\u00f3n a todo tipo de usuarios se crearon los lenguajes de bajo nivel y los de alto nivel cuya sintaxis est\u00e1 m\u00e1s cerca del lenguaje humano que el lenguaje m\u00e1quina, sobre todo los de alto nivel.<\/p>\n<h3 style=\"text-align: justify;\">2. Lenguajes de bajo nivel<\/h3>\n<p style=\"text-align: justify;\">Los lenguajes de bajo nivel son m\u00e1s f\u00e1ciles de utilizar que los lenguajes m\u00e1quina, pero igual que ellos, dependen de la m\u00e1quina en particular. El lenguaje de bajo nivel por excelencia es el <strong>ensamblador<\/strong>, constituido por instrucciones conocidas como <strong>nemot\u00e9cnicos<\/strong>. Por ejemplo, nemot\u00e9cnicos t\u00edpicos de operaciones artim\u00e9ticas son ADD, SUB, DIV, etc.<\/p>\n<p style=\"text-align: justify;\">Una instrucci\u00f3n t\u00edpica ser\u00eda: ADD M, N, P<\/p>\n<p style=\"text-align: justify;\">Que podr\u00eda significar <em>\u00absuma el n\u00famero contenido en la posici\u00f3n de memoria <strong>m<\/strong> con el almacenado en la posici\u00f3n <strong>n<\/strong> y deposita el resultado en la posici\u00f3n de memoria <strong>p<\/strong>\u00ab<\/em><\/p>\n<p style=\"text-align: justify;\">Evidentemente, es mucho m\u00e1s sencillo recordar el nemot\u00e9cnico que su equivalente en c\u00f3digo m\u00e1quina:<\/p>\n<p style=\"text-align: justify;\">0110 1001 1010 1011<\/p>\n<p style=\"text-align: justify;\">Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por el ordenador como el lenguaje m\u00e1quina, sino que requiere de una fase de <strong>traducci\u00f3n<\/strong>.<\/p>\n<p style=\"text-align: justify;\">El programa original escrito en lenguaje ensamblador se denomina programa o c\u00f3digo fuente y el programa traducido al lenguaje m\u00e1quina se conoce como c\u00f3digo objeto, que ya es entendido directamente por el ordenador.<\/p>\n<p>El traductor de programas fuente a objeto es un programa llamado <strong>ensamblador<\/strong>.<\/p>\n<p style=\"text-align: justify;\">La <span style=\"text-decoration: underline;\">ventaja<\/span> de los lenguajes ensambladores frente a los lenguajes m\u00e1quina es su mayor facilidad de codifici\u00f3n y, en general, su velocidad de c\u00e1lculo es muy similar.<\/p>\n<p>Los <span style=\"text-decoration: underline;\">inconvenientes<\/span> son:<\/p>\n<ul style=\"list-style-type: square;\">\n<li>dependencia total de la m\u00e1quina, lo que impide su transportabilidad a una m\u00e1quina diferente<\/li>\n<li>la formaci\u00f3n de los programadores es m\u00e1s compleja que la correspondiente a los programadores de alto nivel, ya que exige no s\u00f3lo las t\u00e9cnicas de programaci\u00f3n, sino tambi\u00e9n el conocimiento del interior de la m\u00e1quina<\/li>\n<\/ul>\n<p>El <em>ensamblador<\/em> est\u00e1 limitado en la actualidad a apicaciones a tiempo real, control de procesos y dispositivos electr\u00f3ncos, etc.<\/p>\n<h3>3.Lenguajes de alto nivel<\/h3>\n<p style=\"text-align: justify;\">Los lenguajes de alto nivel son los m\u00e1s utilizados por los programadores. Est\u00e1n dise\u00f1ados para que las personas escriban y entiendan los programas de un modo mucho m\u00e1s f\u00e1cil que los lenguajes m\u00e1quina y ensambladores. Normalmente, <em>un programa escrito en un lenguaje de alto nivel es independiente de la m\u00e1quina<\/em>. Por tanto, son programas portables, lo que significa la posibilidad de poder ser ejecutados con poca o ninguna modificaci\u00f3n en diferentes tipos de ordenador: PC, MACINTOSH, RISC, &#8230;<\/p>\n<p><span style=\"text-decoration: underline;\">Ventajas<\/span> de los lenguajes de alto nivel:<\/p>\n<ul style=\"list-style-type: square;\">\n<li>el tiempo de formaci\u00f3n de los programadores es relativamente corto comparado con lenguajes de otro tipo<\/li>\n<li>la escritura de programas se basa en reglas sint\u00e1cticas similares a los lenguajes humanos, con sentencias con nombres como READ, WRITE, PRINT, OPEN, &#8230;<\/li>\n<li>las modificaciones y puestas a punto de los programas son m\u00e1s f\u00e1ciles<\/li>\n<li>reducci\u00f3n del coste de los programas<\/li>\n<li>transportabilidad<\/li>\n<\/ul>\n<p>Los <span style=\"text-decoration: underline;\">inconvenientes<\/span> son:<\/p>\n<ul style=\"list-style-type: square;\">\n<li>no se aprovechan los recursos internos de la m\u00e1quina, como sucede en los lenguajes m\u00e1quina y ensambladores<\/li>\n<li>ocupan mucha m\u00e1s memoria<\/li>\n<li>son m\u00e1s lentos al ejecutarlos<\/li>\n<\/ul>\n<p>Los programas fuente creados con lenguajes de alto nivel tambi\u00e9n deben ser traducidos para poder ejecutarse. De esta tarea se encargan los compiladores o los <strong>int\u00e9rpretes<\/strong>.<\/p>\n<p>Diferencias entre compiladores e int\u00e9rpretes:<\/p>\n<table style=\"height: 416px; width: 100%; border-collapse: collapse; border-color: #000000;\" border=\"1\" cellpadding=\"1\">\n<tbody>\n<tr style=\"height: 87px;\">\n<td style=\"width: 50%; height: 87px; text-align: center;\"><strong>COMPILADOR<\/strong><\/td>\n<td style=\"width: 50%; height: 87px; text-align: center;\">\n<p><strong>INT\u00c9RPRETE<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr style=\"height: 69px;\">\n<td style=\"width: 50%; text-align: justify; height: 69px;\">Un programa que ha sido compilado puede correr por si solo, pues en el proceso de compilaci\u00f3n se transforma en lenguaje m\u00e1quina<\/td>\n<td style=\"width: 50%; text-align: justify; height: 69px;\">Es un programa que lee l\u00ednea a l\u00ednea un programa escrito en un lenguaje; en lenguaje fuente y lo va traduciendo a un c\u00f3digo intermedio para ejecutarlo<\/td>\n<\/tr>\n<tr style=\"height: 69px;\">\n<td style=\"width: 50%; text-align: justify; height: 69px;\">El archivo generado por el compilador s\u00f3lo funciona en la plataforma en donde se lo ha creado<\/td>\n<td style=\"width: 50%; text-align: justify; height: 69px;\">Un int\u00e9rprete traduce el programa cuando lo lee, convirtiendo el c\u00f3digo del programa directamente en acciones<\/td>\n<\/tr>\n<tr style=\"height: 91px;\">\n<td style=\"width: 50%; text-align: justify; height: 91px;\">Un archivo compilado puede ser distribuido f\u00e1cilmente conociendo la plataforma, mientras que un archivo interpretado no funciona si no se tiene el int\u00e9rprete<\/td>\n<td style=\"width: 50%; text-align: justify; height: 91px;\">La ventaja del int\u00e9rprete es que dado cualquier programa se puede interpretado en cualquier plataforma (sistema operativo)<\/td>\n<\/tr>\n<tr style=\"height: 25px;\">\n<td style=\"width: 50%; text-align: justify; height: 25px;\">En cuesti\u00f3n de velocidad, un archivo compilado es de 10 a 20 veces m\u00e1s r\u00e1pido que un archivo interpretado<\/td>\n<td style=\"width: 50%; text-align: justify; height: 25px;\">El proceso de traducci\u00f3n se realiza en cada ejecuci\u00f3n<\/td>\n<\/tr>\n<tr style=\"height: 25px;\">\n<td style=\"width: 50%; text-align: justify; height: 25px;\">El proceso de traducci\u00f3n se realiza una sola vez<\/td>\n<td style=\"width: 50%; text-align: justify; height: 25px;\">La ejecuci\u00f3n es m\u00e1s lenta ya que para cada l\u00ednea de c\u00f3digo es necesario realizar la traducci\u00f3n<\/td>\n<\/tr>\n<tr style=\"height: 25px;\">\n<td style=\"width: 50%; text-align: justify; height: 25px;\">Una vez compilado el programa, el c\u00f3digo fuente no es necesario para ejecutarse el programa, as\u00ed que puede permanecer en secreto si se desea<\/td>\n<td style=\"width: 50%; text-align: justify; height: 25px;\">El c\u00f3digo fuente es necesario en cada ejecuci\u00f3n, as\u00ed que no puede permanecer en secreto<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para que un ordenador realice una tarea, debe tener cargado en memoria un programa adecuado que le indique las tareas a realizar y el orden correcto en el que deben ser realizadas. Todo programa se escribe en un lenguaje inform\u00e1tico&#8230; <a class=\"more-link\" href=\"https:\/\/jlandresm.com\/index.php\/2020\/08\/08\/los-lenguajes-informaticos\/\">Seguir leyendo &rarr;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2,20],"tags":[],"class_list":["post-113","post","type-post","status-publish","format-standard","hentry","category-informatica","category-python"],"jetpack_featured_media_url":"","uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"post-thumbnail":false,"post-image":false},"uagb_author_info":{"display_name":"admin","author_link":"https:\/\/jlandresm.com\/index.php\/author\/adminweb\/"},"uagb_comment_info":0,"uagb_excerpt":"Para que un ordenador realice una tarea, debe tener cargado en memoria un programa adecuado que le indique las tareas a realizar y el orden correcto en el que deben ser realizadas. Todo programa se escribe en un lenguaje inform\u00e1tico... Seguir leyendo &rarr;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/posts\/113"}],"collection":[{"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/comments?post=113"}],"version-history":[{"count":16,"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/posts\/113\/revisions"}],"predecessor-version":[{"id":1275,"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/posts\/113\/revisions\/1275"}],"wp:attachment":[{"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/media?parent=113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/categories?post=113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jlandresm.com\/index.php\/wp-json\/wp\/v2\/tags?post=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}