Google+ Seguidores

martes, 22 de mayo de 2018

Creación de nuevos tipos de datos en Python - Programación Orientada a Objetos


Hola amigos de Internet, mi nombre es Luis y les doy nuevamente la bienvenida a Mi Diario Python.

Como siempre, es un placer estar nuevamente aquí con todos ustedes.
En el día de hoy haremos una práctica recomendada por el mejor desarrollador de software de latino américa, Luis salcedo.

Ahora sí hablando enserio. Hoy crearemos un nuevo tipo de dato en el lenguaje de programación Python (Como que ya es obvio).

Sí, realizaremos un nuevo tipo de dato cuyo objetivo será el manejo y manipulación de conjuntos de elementos (vectores). En resumen, realizaremos una clase llamada vector que realizara las funciones de… bueno… ¡un vector! .

Para que entiendan mejor, terminare con la introducción.

Creación de un nuevo tipo de dato.
Como sabemos, en los lenguajes de programación: int, string, float y los demás, todos son tipos de datos. Todos ellos  tienen su respectiva clase.

Para los que conocen bien el tema de la Programación Orientada a Objetos podrán entender a qué me refiero. Si no tienes conocimiento sobre la programación Orientada a Objetos, al final del artículo dejare algunos enlaces con información relacionada al tema.

Bueno, una vez que sabemos que los tipos de datos al fondo son clases creadas por programadores, ¿Quién dice que no podemos crear nuestros propios tipos de datos?
Eso es lo que haremos hoy, realizaremos un nuevo tipo de dato, un vector, el cual igual que los arrays almacenara más de un dato y podrán ejecutarse en él, operaciones aritméticas.
¿Qué les parece si comenzamos? Empecemos abriendo nuestro editor de texto preferido y creando un archivo llamado “vector.py” (por supuesto pueden nombrar a sus archivos como ustedes prefieran).


Lo primero que haremos será crear una clase llamada “Vector”. En ella empezaremos a escribir los métodos y atributos que el objeto tendrá. Como sabemos, el método “__init__” se llamara cuando se cree una instancia de la clase, por ende, esta recibirá todos los elementos, por ellos declaramos que el argumento que recibe será “*v” y lo convertimos a lista.


Empezamos a escribir los métodos del objeto. “__repr__” es el método que al llamarlo, nos devolverá una representación de objeto.
El método “__len__” nos devolverá el número de elementos que el objeto contiene.
“__getitem__” nos devuelve un ítem del objeto, el ítem que nos devolverá será el de la posición que se le pase como argumento.


Por último, declaramos los métodos que nos permitirán realizar las operaciones aritméticas: Adición, sustracción y multiplicación.

Excelente, nuestro objeto está preparado para su uso. Podemos ejecutar el script pero no habrá resultado ya que no  estamos utilizando las herramientas previamente creadas. Lo que haremos será crear otro script el cual será el que utiliza y ejecuto el objeto y los métodos creados.

Uso de “Vector.py”:

Muy bien, es momento de ver que puede hacer la clase Vector. Crearemos un nuevo archivo, pueden llamarlo como ustedes prefieran, yo lo llamare “vector_test.py”.


Perfecto. Lo primero que hacemos es importar los métodos del script “vector.py”, eso lo logramos escribiendo “import vector”. Por supuesto, los scripts deben de  estar en la misma carpeta. Como pueden observar, he creado dos instancias de la clase y he colocado algunos elementos.

Excelente, ahora utilizaremos algunos métodos para probar nuestro objeto. Como pueden observar, he utilizado el método “type” de Python para ver el tipo de dato de la variable “a”. Tambien pueden observar que utilizo el método “len” de Python para ver la cantidad de elementos del vector.


Lo siguiente que hago es realizar algunas operaciones aritméticas con los vectores. También pueden ver que con ayuda de un bucle “for” extraigo los elementos del vector “a” y los elevo al cuadrado.

Quiero que se fijen en algo. No estoy haciendo uso de los métodos que he escrito como: “__len__”, “__add__”, “__mul__” y los demás. Esto es por que estos tipos de  métodos son especiales para esto. Como pueden observar simplemente escribo  el signo “+” al ejecutar el script, este sabra inmediatamente que me refiero a “__add__””. Por supuesto, si creamos las clases sin métodos como estos, al utilizar los caracteres o símbolos no los reconocerá, ya que estos no se integran de manera automática. Entonces, envez de escribir “a.__mul__(5)”, simplemente utilizamos el símbolo “*”. ¿Qué les parece? En, artículos anteriores me dedicare a explicar estos tipos de métodos de manera más técnica, pero por ahora, sabemos que son de mucha utilidad.

Excelente, que les parece sí ejecutamos el script de prueba:


Este sería nuestro resultado, como pueden observar, se han realizado todas las operaciones y funciones de manera satisfactoria.

¿Qué te pareció? ¿Alguna duda? No olvides dejar tu comentario.
Recuerda que puedes descargar todos los archivos presentados el día de hoy desde mi repositorio de github: https://github.com/LuisAlejandroSalcedo/Creaci-n-de-nuevo-tipo-de-dato-Python.

Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.

Seguir Leyendo

domingo, 20 de mayo de 2018

Text To Speech - Texto A Voz con Python


Hola a todos, les doy la bienvenida nuevamente a Mi Diario Python.
En el día de utilizaremos la librería “gtts” para transformar el texto a voz. ¿Qué te parece?  Comencemos.

Text To Speech:

Imagen relacionada

Como mencione anteriormente, hoy realizaremos un script que nos permite pasar el texto a voz. Lo que haré será tomar un artículo de Wikipedia, y generar un archivo “.mp3” con al artículo en forma de audio.

Para poder realizar el script de hoy, es necesario disponer de la librería “gtts” instalada. Podemos instalar la librería “gtts” ingresando el siguiente comando en tu terminal:

pip install gtts

Una vez que dispongamos de la librería “gtts”, podemos proseguir.
Antes de empezar a escribir código, conozcamos un poco el proceso de “gtts”. Esta librería utiliza el servicio de “Google Translate”. Lo que hace es guardar el audio del texto en un archivo “.mp3”. Sabiendo esta información, podemos deducir que para el proceso que les mostrare hoy día será necesario una conexión a internet.

Ahora podemos proseguir con el script.


Este será todo el código que abarcaremos el día de hoy. Corto ¿Cierto?.
Lo primero que hacemos es importar el método “gTTS” de la librería “gtts”. Declaramos una función llamada “tts” que recibe 3 argumentos: “text_file” el cual será el título del archivo que contendrá el texto al cual queremos pasar a “voz”. “lang” será el idioma el cual estará hablado del texto. Y “name_file” será el nombre del archivo que contendrá el audio (debemos incluir la extensión).

En la función se puede observar el procedimiento para leer un fichero. Luego utilizamos el método “gTTS” al cual le pasamos como argumento el texto y el idioma. El proceso se guardara en la variable “file”. Luego utilizamos el método “save” para guardar el audio en un archivo, al método le pasamos el nombre del archivo.

Esto sería todo. Ahora podemos utilizar la función, que como pueden ver yo introduzco mis argumentos.

 

Ese sería el contenido del archivo “sistema_nervioso.txt”, todo este texto será transformado a audio.

Ahora podemos ejecutar el script. Al finalizar, veremos que se ha creado un nuevo archivo.


¿Qué les parece si lo escuchamos?

                                                                                                                                          
Fantástico ¿Verdad? Y ¿Qué pasaría si cambiáramos el idioma a inglés o francés? Descúbrelo por ti mismo, realiza pruebas y deja volar tu imaginación.

Puedes descargar el script de hoy desde mi repositorio de github: https://github.com/LuisAlejandroSalcedo/Texto-A-Voz.

¿Qué te pareció? ¿Alguna duda? No olvides dejar tu comentario.
Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.

Seguir Leyendo

Algoritmo de un Perceptron - Inteligencia Artificial con Python


Hola a amigos de internet, mi nombres es Luis y les doy la bienvenida a nuevamente a Mi Diario Python.

Este artículo será algo corto pero muy informativo. En el día de hoy les mostrare un ejemplo de un Perceptron escrito en Python. ¿Qué les parece? Comencemos.

Nuestro primero Perceptron:

Resultado de imagen para ai

Hoy realizaremos un algoritmo que clasifique los valores en dos categorías: p1 y p2.

En este blog ya hemos hablado del Perceptrón. Sí quieres más información sobre el Perceptrón puedes ingresar al siguiente enlace:http://www.pythondiario.com/2018/05/perceptron-la-neurona-artificial-mas.html.

Lo primero que haremos será crear una clase llamada “Perceptron”. Especificamos los atributos los cuales definirán al Perceptrón. Los ejemplos que se utilizaran para entrenar a la neurona, las salidas que esperamos y otras características.



Declaramos un método dentro de la clase “Perceptron”, el método “trannig” nos ayudara a entrenar a la neurona.

 

Declaramos el método “sort” el cual recibe como argumentos los ejemplos que la neurona utilizara para aprender, este método clasificara los nuevos datos respectivamente a sus conocimientos.


Por ultimo escribimos los ejemplos y las salidas. Esto no es nada más que los datos que la neurona aprenderá y el conocimiento que utilizara para clasificar datos desconocidos.
Luego utilizamos la clase “Perceptron” y llamas al método “trannig”. Luego de esto le pedimos datos nuevos al usuario para que la neurona clasifique.


¿Qué te parece si lo probamos?


Este seria el resultado, por supuesto yo he ingresado algunos datos para que vean que el resultado depende del conocimiento que la neurona ha adquirido anteriormente.
Puedes descargar el algoritmo completo desde mi repositorio de github: https://github.com/LuisAlejandroSalcedo/Perceptron-Algoritmo.

¿Qué te parece? ¿Alguna duda? ¿Quieres un curso sobre este tema? Deja tu comentario.

Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes.

Seguir Leyendo

viernes, 18 de mayo de 2018

Detector de Ingles Programáticamente - Algoritmos con Python


Bienvenidos a Mi Diario Python. Mi nombre es Luis y en el día de hoy les traigo otro artículo para reforzar nuestros conocimientos.

En este artículo, les mostrare un método para realizar un algoritmo que pueda detectar sí hay palabras en inglés en un determinado mensaje. ¿Qué les parece? Comencemos.

Puedes descargar los archivos utilizados y realizados hoy día desde mi repositorio de github: https://github.com/LuisAlejandroSalcedo/Detector-de-Ingles-Programaticamente.

Detector de Ingles programáticamente:

Imagen relacionada

Sí, en el día de hoy realizaremos un algoritmo que detecta si hay palabras escritas en el idioma ingles en un mensaje o cualquier otro tipo de texto.

Perfecto, único que necesitamos antes de empezar a escribir código, es crear un archivo con todas las palabras en inglés. Sera como un diccionario, el algoritmo vera si las palabras que se encuentran allí, se encuentran en el mensaje ingresado.

Lo que haremos será crear un archivo de texto y en el empezar a introducir las palabras. En el repositorio de github de este algoritmo se encuentra un diccionario ya realizado. Pero sí deseas crear tu propio diccionario, incluso en otro idioma, eres libre de hacerlo y compartirlo con nosotros.

El diccionario tiene el siguiente aspecto:


Este diccionario consta de 45333 palabras y lo puedes obtener ingresando al siguiente enlace: https://github.com/LuisAlejandroSalcedo/Detector-de-Ingles-Programaticamente.

Muy bien, una vez que dispongamos de nuestro diccionario, podemos proseguir con el algoritmo.


Lo primero que hacemos es importar el modulo “os” para tener acceso a funciones de nuestro sistema operativo. Declaramos una variable “UPPERLETTERS” y “LETTERS_AND_SPACE” las cuales nos ayudaran a procesar mejor las cadenas de texto.


La función “getEnglishCount” contara todas las palabras en inglés que se encuentren en el mensaje. Esto nos servirá luego.

La función “loadDictionary” obtendrá todas las palabras del diccionario y las retornara. En las variables “ENGLISH_WORDS” guardara el resultado de “loadDictionary”.


La función “removeNonLetter” nos permitirá procesar el mensaje ingresado por el usuario eliminando los símbolos que no sean letras.


Luego creamos la función “isEnglish” la cual une todos los procesos anteriores para para poder detectar las palabras en inglés. La función toma como argumento el mensaje, el porcentaje de palabras y el porcentaje de letras, estos valores pueden cambiarlos con respecto la longitud del mensaje. La función “isEnglis” realiza el proceso de detección y nos devuelve “True” o “False” con respecto a la presencia o ausencia de palabras en inglés.

 

Por último, creamos nuestra propia función la cual recibe el mensaje del usuario y utilizamos la función “isEnglis” para la detección de palabras en inglés. Este paso pueden dejarlo a merced de su imaginación.
Perfecto, ahora podemos proceder a ejecutar el script:


Como podemos observar, el resultado es muy bueno, podemos ver que aunque haya palabras en español, el detector nos lanzara “True” por el hecho de que existen palabras en inglés en el mensaje.

Muy bien, es tu turno de probar ¿Qué pasaría si en vez de un diccionario de palabras en inglés utilizáramos uno con palabras en francés? Puedes experimentar y realizar tus propios proyecto con lo conocimientos adquiridos en este artículo.

Puedes descargar el algoritmo completo desde mi repositorio de github: https://github.com/LuisAlejandroSalcedo/Detector-de-Ingles-Programaticamente.

¿Alguna duda? ¿Quieres compartir algo con nosotros? Deja tu comentario.

Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.

Seguir Leyendo

domingo, 13 de mayo de 2018

DuCrawler - Extractor de Imágenes de Google Automático


Hola amigos de Internet, mi nombre es Luis y les doy la bienvenida nuevamente a Mi Diario Phython.

En el día de hoy les mostrare un proyecto que me he encontrado en github. DuCrawler, cuyo objetivo es extraer imágenes de google de forma automática.

Imagen relacionada

DuCrawler es un proyecto realizado por “Ruofei Du” y puedes descargarlo ingresando al siguiente enlace: https://github.com/ruofeidu/DuCrawler.

DuCrawler:

¿Qué les parece si vemos el código de este proyecto y luego lo probamos? De esta manera vemos los procedimientos que realiza y al mismo tiempo aprendemos.

Hay dos scripts, “crawler_google” y “crawler_bing”. En el caso de hoy, analizaremos a “crawler_google”.

 

Lo primero que vemos al abrir el código, son los modulos que se utilizaran. Como pueden observar se hace uso de “BeautifulSoup”, “Requests”,“OpencCv (cv2)” y otros modulos de la librería estándar de Python.
También podemos ver el nombre del creador del script.
Seguido de esto vemos una clase llamada “Paras”. Como pueden apreciar, al principio de la clase se declaran 12 variables. Estas variables son parámetros que la búsqueda utilizara. Se pueden observar: el nombre de la carpeta en donde se descargaran las imágenes (Result), el keywords_file el cual es el archivo en donde escribiremos las palabras claves de la búsqueda, y otros valores.


En la clase “Para”, también tenemos el método “search_google”, el cual realizara el procedimiento de búsqueda de las imágenes.
Muy bien, no seguiré mostrando la clase, pasare directamente al uso de la misma. Si quieren ver todos los métodos de la clase “Para”, recuerden que pueden descargar el script ingresando al siguiente enlace: https://github.com/ruofeidu/DuCrawler.

Sabemos que la clase “Para” es la estrella de este proyecto, pero ¿Cómo utilizarla? Te lo mostrare en seguida. Antes, quiero mostrarles el contenido del archivo “config_google.ini” el cual se encuentra en la carpeta junto con el script “crawler_google.py”:


Que les parece si lo abrimos:


Este archivo contiene información que ayudara al script hacer su trabajabo. Vemos las cabeceras de las búsquedas, el título del archivo que contiene las palabras claves, el nombre de la carpeta que contendrá las imágenes, el número máximo de resultados y otros valores, que pueden cambiar a voluntad.

Ahora, podemos como utilizar la clase. Pueden crear un archivo nuevo y vacío y realizar el procedimiento que verán ahora, por supuesto, si lo harán en otro archivo, deben de importar este script.


Perfecto. Lo primero que se ve es el __name__ == “__main__”, esto permite ejecutar el script a aunque este sea una clase. Creo que no se me explicar muy bien, así que si tienen duda, saben que pueden dejar un comentario.

Perfecto, vemos que se hace uso de “configparse” para abrir el archivo con formato “.ini” el cual contiene los parámetros de la configuración.

Luego vemos que se cambian los valores de los atributos de la clase.
¿Qué les parece si ejecutamos el script?

Antes les sugiero que vean el archivo “keywords.txt” el cual contiene la palabras claves de la búsqueda, cámbienla a su gusto.


Ejecutamos el script, y el proceso empezara. Se creara una carpeta llamada “Result” y dentro de esta carpeta se creara otra carpeta cuyo nombre será el de la palabra clave que hayas ingresado en el archivo “keywords.txt”. La palabra clave que yo ingrese fue “Pirámides de Egipto”.

Mi resultado será el siguiente:


Muy bueno ¿No crees? El proceso no dejara de descargar imágenes hasta llegar a los 1000 resultados.

¿Qué te pareció? Interesante ¿Verdad? Y muy útil.
Recuerda que puedes descargar este proyecto ingresando al siguiente enlace: https://github.com/ruofeidu/DuCrawler.

Seguir Leyendo

Perceptrón - La neurona artificial más simple de todas


Hola, mi nombre es Luis, y les doy la bienvenida a Mi Diario Python.
En el día nos dedicaremos a conocer el concepto de Perceptrón y al final realizaremos un ejemplo utilizando Python. ¿Te interesa? Entonces, sigue leyendo.

¿Qué es un Perceptrón?

Resultado de imagen para neurona artificial

El modelo biológico más simple de un perceptrón es una neurona y viceversa. Es decir, el modelo matemático más simple de una neurona es un perceptrón. La neurona es una célula especializada y caracterizada por poseer una cantidad indefinida de canales de entrada llamados dendritas y un canal de salida llamado axón. Las dendritas operan como sensores que recogen información de la región donde se hallan y la derivan hacia el cuerpo de la neurona que reacciona mediante una sinapsis que envía una respuesta hacia el cerebro, esto en el caso de los seres vivos.

Una neurona sola y aislada carece de razón de ser. Su labor especializada se torna valiosa en la medida en que se asocia a otras neuronas, formando una red. Normalmente, el axón de una neurona entrega su información como "señal de entrada" a una dendrita de otra neurona y así sucesivamente. El perceptrón que capta la señal en adelante se extiende formando una red de neuronas, sean éstas biológicas o de sustrato semiconductor (compuertas lógicas).

En el perceptrón, existen dos tipos de aprendizaje, el primero utiliza una tasa de aprendizaje mientras que el segundo no la utiliza. Esta tasa de aprendizaje amortigua el cambio de los valores de los pesos.
El algoritmo de aprendizaje es el mismo para todas las neuronas, todo lo que sigue se aplica a una sola neurona en el aislamiento. Se definen algunas variables primero:


Los dos tipos de aprendizaje difieren en este paso. Para el primer tipo de aprendizaje, utilizando tasa de aprendizaje, utilizaremos la siguiente regla de actualización de los pesos:


Para el segundo tipo de aprendizaje, sin utilizar tasa de aprendizaje, la regla de actualización de los pesos será la siguiente:


Perceptrón Multicapa:

El perceptrón multicapa es una red neuronal artificial formada por múltiples capas, esto le permite resolver problemas que no son linealmente separables, lo cual es la principal limitación del perceptrón. El perceptrón multicapa puede ser totalmente o localmente conectado. En el primer caso cada salida de una neurona de la capa “i” es entrada de todas las neuronas de la capa “i+1”, mientras que en el segundo cada neurona de la capa “i” es entrada de una serie de neuronas (región) de la capa “i+1”.

Las capas pueden clasificarse en tres tipos:
§  Capa de entrada: Constituida por aquellas neuronas que introducen los patrones de entrada en la red. En estas neuronas no se produce procesamiento.
§  Capas ocultas: Formada por aquellas neuronas cuyas entradas provienen de capas anteriores y cuyas salidas pasan a neuronas de capas posteriores.
§  Capa de salida: Neuronas cuyos valores de salida se corresponden con las salidas de toda la red.
La propagación hacia atrás (también conocido como retropropagación del error o regla delta generalizada), es un algoritmo utilizado en el entrenamiento de estas redes, por ello, el perceptrón multicapa también es conocido como red de retropropagación.
Limitaciones:
§  El Perceptrón Multicapa no extrapola bien, es decir, si la red se entrena mal o de manera insuficiente, las salidas pueden ser imprecisas.
§  La existencia de mínimos locales en la función de error dificulta considerablemente el entrenamiento, pues una vez alcanzado un mínimo el entrenamiento se detiene aunque no se haya alcanzado la tasa de convergencia fijada.
§   
Cuando caemos en un mínimo local sin satisfacer el porcentaje de error permitido se puede considerar: cambiar la topología de la red (número de capas y número de neuronas), comenzar el entrenamiento con unos pesos iniciales diferentes, modificar los parámetros de aprendizaje, modificar el conjunto de entrenamiento o presentar los patrones en otro orden.
Interesante ¿Verdad?.

Seguir Leyendo

sábado, 12 de mayo de 2018

Lenguajes Interpretados Vs Lenguajes Compilados

Hola a todos, les doy la bienvenida nuevamente a Mi Dairio Python. 

En el día de hoy hablaremos de un tema que es muy importante saber. Sobre los lenguaje de programación.

Resultado de imagen para lenguaje de programacion

Lenguajes de Programación:

Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:
  • Lenguajes interpretados
  • Lenguajes compilados
Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario.
Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida.
Sin embargo, no es tan flexible como un programa escrito en un lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.

Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricación de un programa y, de este modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras, etc.).

 Lenguaje   Principal área de aplicación  Compilado/Interpretado
 ADATiempo real Lenguaje compilado 
BASIC Programación para fines educativos Lenguaje interpretado 
 CProgramación de sistema Lenguaje compilado 
 C++Programación de sistema orientado a objeto Lenguaje compilado 
 CobolAdministración Lenguaje compilado 
 FortranCálculo Lenguaje compilado 
 JavaProgramación orientada a Internet Lenguaje intermediario 
 MATLABCálculos matemáticos Lenguaje interpretado 
 LISPInteligencia artificial Lenguaje intermediario 
 PascalEducación Lenguaje compilado 
 PHPDesarrollo de sitios Web dinámicos Lenguaje interpretado 
 PERLProcesamiento de cadenas de caracteres Lenguaje interpretado 


Ventajas y Desventajas:

El mayor pro para el proceso de compilación es la velocidad. Ser capaz de compilar cualquier idioma de destino a un código de máquina que el procesador real de la máquina pueda entender elimina cualquier código intermediario, traducción o filtro. Eliminando todo eso (básicamente todo lo que hace un intérprete) ganamos velocidad computacional. Podemos hacer deliberadamente cálculos útiles sin ningún paso adicional, aumentando así el número de ellos posibles en un intervalo de tiempo determinado.
Sin embargo, la con más grande para el proceso de compilación es la especificidad. Cuando compila un programa para ejecutar en un procesador en particular, está creando código de objeto que sólo se ejecutará en ese procesador. Si desea que un programa se ejecute en otra máquina, digamos un procesador ARM en lugar de un procesador basado en Intel 8086, tendrá que re-compilar para ese procesador y, desafortunadamente, a veces la recompilación puede ser un proceso arduo si su nuevo procesador tiene Limitaciones o idiosincrasias no presentes en la primera.
El mayor pro para el negocio de la interpretación es la flexibilidad. No sólo puede ejecutar un programa interpretado en cualquier procesador o plataforma para la que se ha compilado ese intérprete, pero la misma manera en que se escribe un intérprete puede ofrecer flexibilidad adicional. Debido a que en algunos casos, en mi opinión, los intérpretes son más fáciles de entender y codificar que los compiladores (creo que esto se debe al hecho de que la acción a realizar es tan cercana al programa de entrada) a menudo es más fácil re- Implementar intérpretes, agregar funciones adicionales, jugar con implementaciones de cosas como recolectores de basura, y de otra manera extender el lenguaje. Este es un beneficio secundario de los intérpretes junto con el mayor beneficio de “escribir una vez, correr en cualquier lugar”.
Seguir Leyendo
Powered by Blogger .