<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.ecured.cu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xander78</id>
	<title>EcuRed - Contribuciones del colaborador [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.ecured.cu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xander78"/>
	<link rel="alternate" type="text/html" href="https://www.ecured.cu/Especial:Contribuciones/Xander78"/>
	<updated>2026-06-06T13:49:56Z</updated>
	<subtitle>Contribuciones del colaborador</subtitle>
	<generator>MediaWiki 1.31.16</generator>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Lenguaje_de_programaci%C3%B3n&amp;diff=2952717</id>
		<title>Lenguaje de programación</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Lenguaje_de_programaci%C3%B3n&amp;diff=2952717"/>
		<updated>2017-09-17T01:24:31Z</updated>

		<summary type="html">&lt;p&gt;Xander78: /* Paradigmas */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Definición|Nombre=Lenguaje de Programación|imagen=Lenguajes.png ‎ |concepto=Un lenguaje de programación es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras.}}&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
'''Lenguaje de programación''' En informática, cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por un ordenador o computadora. Es complicado definir qué es y qué no es un lenguaje de programación. Se asume generalmente que la traducción de las instrucciones a un código que comprende la computadora debe ser completamente sistemática. Normalmente es la computadora la que realiza la traducción. &lt;br /&gt;
&lt;br /&gt;
== Lenguaje de Programación&amp;lt;br&amp;gt;  ==&lt;br /&gt;
&lt;br /&gt;
'''Lenguaje de programación'''. es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. &lt;br /&gt;
&lt;br /&gt;
Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación. &lt;br /&gt;
&lt;br /&gt;
También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos: &lt;br /&gt;
&lt;br /&gt;
*El desarrollo lógico del programa para resolver un problema en particular. &lt;br /&gt;
*Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa) &lt;br /&gt;
*Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina. &lt;br /&gt;
*Prueba y depuración del programa. &lt;br /&gt;
*&amp;amp;nbsp; Desarrollo de la documentación.&lt;br /&gt;
&lt;br /&gt;
Existe un error común que trata por sinónimos los términos 'lenguaje de programación' y 'lenguaje informático'. Los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como por ejemplo el HTML. (lenguaje para el marcado de páginas web que no es propiamente un lenguaje de programación sino un conjunto de instrucciones que permiten diseñar el contenido y el texto de los documentos) &lt;br /&gt;
&lt;br /&gt;
Permite especificar de manera precisa sobre qué datos debe operar una computadora, cómo deben ser almacenados o transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural, tal como sucede con el lenguaje Léxico. Una característica relevante de los lenguajes de programación es precisamente que más de un programador pueda usar un conjunto común de instrucciones que sean comprendidas entre ellos para realizar la construcción del programa de forma colaborativa.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Historia  ==&lt;br /&gt;
&lt;br /&gt;
Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina, el cual la máquina comprende fácilmente, pero que lo hace excesivamente complicado para las personas. De hecho sólo consiste en cadenas interminables de números 1 y 0. (Binario) &lt;br /&gt;
&lt;br /&gt;
Para facilitar el trabajo, los primeros operadores de computadoras decidieron reemplazar los 1 y 0 por palabras o letras provenientes del inglés; éste se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente igual que hacerlo en lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números. &lt;br /&gt;
&lt;br /&gt;
La necesidad de recordar secuencias de programación para las acciones usuales llevó a denominarlas con nombres fáciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denominó &amp;quot;instrucciones&amp;quot;, y a este conjunto de instrucciones se le llamó lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programación, los cuales reciben su denominación porque tienen una estructura sintáctica similar a los lenguajes escritos por los humanos, denominados también lenguajes de alto nivel. &lt;br /&gt;
&lt;br /&gt;
La primera programadora de computadora conocida fue [[Ada Lovelace]], hija de [[Anabella Milbanke Byron]] y [[Lord Byron]]. Anabella introdujo en las matemáticas a Ada quien, después de conocer a [[Charles Babbage]], tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora. &lt;br /&gt;
&lt;br /&gt;
A finales de [[1953]], [[John W. Backus]] sometió una propuesta a sus superiores en [[IBM]] para desarrollar una alternativa más práctica al lenguaje ensamblador para programar el computador central [[IBM 704]]. El histórico equipo Fortran de Backus consistió en los programadores [[Richard Goldberg]], Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, [[Robert Nelson]], Irving Ziller, Lois Haibt y David Sayre. &lt;br /&gt;
&lt;br /&gt;
El primer manual para el lenguaje Fortran apareció en octubre de 1956, con el primer [[Compilador|compilador]] Fortran entregado en abril de 1957. Esto era un compilador optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera generar código cuyo desempeño fuera comparable al de un código hecho a mano en lenguaje ensamblador. &lt;br /&gt;
&lt;br /&gt;
En 1960, se creó COBOL, uno de los lenguajes usados aun en 2010 en informática de gestión. &lt;br /&gt;
&lt;br /&gt;
A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método más eficiente para programarlas. Entonces, se crearon los lenguajes de alto nivel, como lo fue el BASIC en las versiones introducidas en los microordenadores de la década de 1980. Mientras que una tarea tan sencilla como sumar dos números puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Implementación  ==&lt;br /&gt;
&lt;br /&gt;
La implementación de un lenguaje es la que provee una manera de que se ejecute un programa para una determinada combinación de software y hardware. Existen básicamente dos maneras de implementar un lenguaje: Compilación e interpretación. Compilación es la traducción a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman [[Compilador|compiladores]]. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. &lt;br /&gt;
&lt;br /&gt;
Se puede también utilizar una alternativa para traducir lenguajes de alto nivel. En lugar de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la compilación para utilizarlo en una ejecución futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa [[Intérpretes|intérprete]], almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el procesamiento de los datos. El código objeto no se graba para utilizarlo posteriormente. &lt;br /&gt;
&lt;br /&gt;
La siguiente vez que se utilice una instrucción, se la deberá interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo o bucle, cada instrucción del bucle tendrá que volver a ser interpretada en cada ejecución repetida del ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una ejecución del código. &lt;br /&gt;
&lt;br /&gt;
La mayoría de lenguajes de altonivel, permiten la programación multipropósito, sin embargo, muchos de ellos fueron diseñados para permitir programación dedicada, como lo fue PASCAL con las matemáticas en su comienzo. También, se han implementado lenguajes educativos infantiles como LOGO que mediante una serie de simples instrucciones, permitía mover una tortuga entre otras cosas. En el ámbito de infraestructura de internet, cabe destacar a Perl con un poderoso sistema de procesamiento de texto y una enorme colección de módulos. &lt;br /&gt;
&lt;br /&gt;
== Lenguajes imperativos y funcionales ==&lt;br /&gt;
&lt;br /&gt;
Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos: &lt;br /&gt;
&lt;br /&gt;
*lenguajes imperativos; &lt;br /&gt;
*lenguajes funcionales.&lt;br /&gt;
&lt;br /&gt;
=== Lenguaje de programación imperativo ===&lt;br /&gt;
&lt;br /&gt;
Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio. &lt;br /&gt;
&lt;br /&gt;
No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones. &lt;br /&gt;
&lt;br /&gt;
=== Lenguaje de programación funcional ===&lt;br /&gt;
&lt;br /&gt;
Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad. &lt;br /&gt;
&lt;br /&gt;
== Interpretación y compilación ==&lt;br /&gt;
&lt;br /&gt;
Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías: &lt;br /&gt;
&lt;br /&gt;
*lenguajes interpretados &lt;br /&gt;
*lenguajes compilados&lt;br /&gt;
&lt;br /&gt;
=== Lenguaje interpretado ===&lt;br /&gt;
&lt;br /&gt;
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 de un programa auxiliar (el [[Intérpretes|intérprete]]), que traduce los comandos de los programas según sea necesario. &lt;br /&gt;
&lt;br /&gt;
=== Lenguaje compilado ===&lt;br /&gt;
&lt;br /&gt;
Un programa escrito en un lenguaje &amp;quot;compilado&amp;quot; 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. &lt;br /&gt;
&lt;br /&gt;
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 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. &lt;br /&gt;
&lt;br /&gt;
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 ese 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...). &lt;br /&gt;
&lt;br /&gt;
=== Lenguajes intermediarios ===&lt;br /&gt;
&lt;br /&gt;
Algunos lenguajes pertenecen a ambas categorías ([[LISP]], [[Java]], Python...) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión ''.class''). &lt;br /&gt;
&lt;br /&gt;
== Técnica  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Libros-programacion.jpg|thumb|right]]Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una serie de detalles. &lt;br /&gt;
&lt;br /&gt;
*'''Corrección'''. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace. &lt;br /&gt;
*'''Claridad'''. Es muy importante que el programa sea lo más claro y legible posible, para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo en la edición; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores de corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros programadores puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por diversión o para impedir un análisis cómodo a otros programadores, recurren al uso de código ofuscado. &lt;br /&gt;
*'''Eficiencia'''. Se trata de que el programa, además de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que también pueden ser de consideración al obtener la eficiencia de un programa, dependiendo de su naturaleza (espacio en disco que utiliza, tráfico de red que genera, etc.). &lt;br /&gt;
*'''Portabilidad'''. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquélla en la que se elaboró. La portabilidad es una característica muy deseable para un programa, ya que permite, por ejemplo, a un programa que se ha desarrollado para sistemas GNU/Linux ejecutarse también en la familia de sistemas operativos Windows. Esto permite que el programa pueda llegar a más usuarios más fácilmente.&lt;br /&gt;
&lt;br /&gt;
== Paradigmas  ==&lt;br /&gt;
&lt;br /&gt;
Los programas se pueden clasificar por el paradigma del lenguaje que se use para producirlos. Los principales paradigmas son imperativos y declarativos. &lt;br /&gt;
&lt;br /&gt;
Los programas que usan un lenguaje imperativo especifican un algoritmo, usan declaraciones, expresiones y sentencias.[3] Una declaración asocia un nombre de variable con un tipo de dato, por ejemplo: var x: integer; . Una expresión contiene un valor, por ejemplo: 2 + 2 contiene el valor 4. Finalmente, una sentencia debe asignar una expresión a una variable o usar el valor de una variable para alterar el flujo de un programa. Por ejemplo: x&amp;amp;nbsp;:= 2 + 2; if x == 4 then haz_algo();. Una crítica común en los lenguajes imperativos es el efecto de las sentencias de asignación sobre una clase de variables llamadas &amp;quot;no locales&amp;quot;.[4] &lt;br /&gt;
&lt;br /&gt;
Los programas que usan un lenguaje declarativo especifican las propiedades que la salida debe conocer y no especifica cualquier detalle de implementación. Dos amplias categorías de lenguajes declarativos son los lenguajes funcionales y los lenguajes lógicos. Los lenguajes funcionales (como Haskell) no permiten asignaciones de variables no locales, así, se hacen más fácil, por ejemplo, programas como funciones matemáticas.[4] El principio detrás de los lenguajes lógicos (como Prolog) es definir el problema que se quiere resolver (el objetivo) y dejar los detalles de la solución a el sistema de Prolog.[5] El objetivo es definido dando una lista de sub-objetivos. Cada sub-objetivo también se define dando una lista de sus sub-objetivos, etcétera. Si al tratar de buscar una solución, una ruta de sub-objetivos falla, entonces tal sub-objetivo se descarta y sistemáticamente se prueba otra ruta. &lt;br /&gt;
&lt;br /&gt;
La forma en la cual el programa se crea puede ser por medio de texto o de forma visual. En un lenguaje de programación visual, los elementos son manipulados gráficamente en vez de especificarse por medio de texto. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ver Además==&lt;br /&gt;
*[[Lenguajes de Programación Web]]&lt;br /&gt;
*[[IDE de Programación]]&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
&lt;br /&gt;
*[http://msdn.microsoft.com/es-es/library/xk24xdbe%28VS.80%29.aspx Lenguaje de programación | Microsoft] &lt;br /&gt;
*[http://html.rincondelvago.com/introduccion-a-los-lenguajes-de-programacion.html Introducción a los lenguajes de programación] &lt;br /&gt;
*[http://observatorio.cnice.mec.es/modules.php?op=modload&amp;amp;name=News&amp;amp;file=article&amp;amp;sid=745 Lenguajes de programación | CNICE] &lt;br /&gt;
*[http://www.monografias.com/trabajos15/lenguajes-programacion/lenguajes-programacion.shtml Lenguajes de programación | Monografía] &lt;br /&gt;
*[http://es.kioskea.net/contents/langages/langages.php3 Lenguajes de programación | Kioskea.net]&lt;br /&gt;
&lt;br /&gt;
[[Category:Lenguajes_de_programación]]&lt;/div&gt;</summary>
		<author><name>Xander78</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Python&amp;diff=2952716</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Python&amp;diff=2952716"/>
		<updated>2017-09-17T01:19:29Z</updated>

		<summary type="html">&lt;p&gt;Xander78: /* Elementos del lenguaje */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Otros usos|.py (desambiguación)}}&lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
{{Ficha Software&lt;br /&gt;
|nombre=Python&lt;br /&gt;
|familia=&lt;br /&gt;
|imagen=Python.jpeg&lt;br /&gt;
|tamaño=&lt;br /&gt;
|descripción=Lenguaje de programación interpertado, orientado a objetos, imperativo, funcional&lt;br /&gt;
|imagen2=&lt;br /&gt;
|tamaño2=&lt;br /&gt;
|descripción2=&lt;br /&gt;
|creador=[[Guido van Rossum]]&lt;br /&gt;
|desarrollador=&lt;br /&gt;
|diseñador=&lt;br /&gt;
|modelo de desarrollo=&lt;br /&gt;
|lanzamiento inicial=[[1991]]&lt;br /&gt;
|versiones=&lt;br /&gt;
|última versión estable=3.2.2 / 2.7.2 ([[4 de septiembre]] de [[2011]]; hace 3 meses / [[11 de junio]] de [[2011]]; hace 5 meses)&lt;br /&gt;
|género=&lt;br /&gt;
|sistemas operativos=&lt;br /&gt;
|idioma=&lt;br /&gt;
|licencia=[[Python Software Foundation License]]&lt;br /&gt;
|premios=&lt;br /&gt;
|web=http://www.python.org/&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''Python''' es un lenguaje de programación creado por [[Guido van Rossum]] en el año [[1991]], la extensión de los creados en el es '''.py'''. Se compara habitualmente con [[Tcl]], [[Perl]], [[Scheme]], [[Java]] y [[Ruby]]. En la actualidad Python se desarrolla como un proyecto de [[Código abierto]], administrado por la [[Python Software Foundation]]. La última versión estable del lenguaje es la 3.2.2. Python es considerado como la &amp;quot;oposición leal&amp;quot; a Perl, lenguaje con el cual mantiene una rivalidad amistosa. Los usuarios de Python consideran a éste mucho más limpio y elegante para programar. &lt;br /&gt;
&lt;br /&gt;
== Historia  ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:130px-Guido_van_Rossum_OSCON_2006.jpg|200px|thumb|left|Guido van Rossum, creador de Python]]Python fue creado a finales de los ochenta por [[Guido van Rossum]] en [[National Research Institute for Mathematics and Computer Science|CWI]] en los [[Países Bajos]] como un sucesor del [[Lenguaje de programación ABC]], capaz de manejar excepciones e interactuar con el [[Amoeba (Informática)|sistema operativo Amoeba]]. &lt;br /&gt;
&lt;br /&gt;
Van Rossum es el principal autor de Python, y su continuo rol central en decidir la dirección de Python es reconocido, refiriéndose a él como ''Benevolente dictador vitalicio'' o ''Benevolent Dictator for Life'' (BDFL). &lt;br /&gt;
&lt;br /&gt;
En 1991, van Rossum publicó el código (versión 0.9.0) en [[[[news:alt.sources|alt.sources]]]]. En esta etapa del desarrollo ya estaban presentes clases con herencia, manejo de excepciones, funciones, y los tipos modulares: &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dict&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt; y así sucesivamente. Además en este lanzamiento inicial aparecía un sistema de módulos adoptado de [[Modula-3]]; van Rossum describe el módulo como &amp;quot;uno de las mayores unidades de programación de Python&amp;quot;. El modelo de excepciones en Python es parecido al de Modula-3, con la adición de una cláusula &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt;. En el año 1994 se formó [[[[news:comp.lang.python|comp.lang.python]]]], el foro de discusión principal de Python, marcando un hito en el crecimiento del grupo de usuarios de este lenguaje. &lt;br /&gt;
&lt;br /&gt;
Python alcanzó la versión 1.0 en enero de 1994. Una característica de este lanzamiento fueron las herramientas de la [[Programación funcional]]: &amp;lt;code&amp;gt;[[Cálculo lambda|lambda]]&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;map&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;filter&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;reduce&amp;lt;/code&amp;gt;. Van Rossum explicó que &amp;quot;Hace 12 años, Python adquirió lambda, reduce(), filter() and map(), cortesía de un hacker de [[Lisp]] que las extrañaba y que envió parches. El donante fue [[Amrit Prem]]; no se hace ninguna mención específica de cualquier herencia de Lisp en las notas de lanzamiento. &lt;br /&gt;
&lt;br /&gt;
La última versión liberada proveniente de CWI fue Python 1.2. En 1995, van Rossum continuó su trabajo en Python en la [[Corporation for National Research Initiatives]] (CNRI) en Reston, [[Virginia]], donde lanzó varias versiones del [[Software]]. &lt;br /&gt;
&lt;br /&gt;
Durante su estancia en CNRI, van Rossum lanzó la iniciativa ''Computer Programming for Everybody'' (CP4E), con el fin de hacer la programación más accesible a más gente, con un nivel de 'alfabetización' básico en lenguajes de programación, similar a la alfabetización básica en inglés y habilidades matemáticas necesarias por muchos trabajadores. &lt;br /&gt;
&lt;br /&gt;
Python tuvo un papel crucial en este proceso: debido a su orientación hacia una sintaxis limpia, ya era idóneo, y las metas de CP4E presentaban similitudes con su predecesor, ABC. El proyecto fue patrocinado por [[DARPA]]. En el año 2007, el proyecto CP4E está inactivo, y mientras Python intenta ser fácil de aprender y no muy arcano en su sintaxis y semántica, alcanzando a los no-programadores, no es una preocupación activa. &lt;br /&gt;
&lt;br /&gt;
En el año 2000, el principal equipo de desarrolladores de Python se cambió a [[BeOpen.com]] para formar el equipo BeOpen [[PythonLabs]]. CNRI pidió que la versión 1.6 fuera pública, continuando su desarrollo hasta que el equipo de desarrollo abandonó CNRI; su programa de lanzamiento y el de la versión 2.0 tenían una significativa cantidad de traslapo. Python 2.0 fue el primer y único lanzamiento de BeOpen.com. Después que Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores PythonLabs se unieron en [[Digital Creations]]. &lt;br /&gt;
&lt;br /&gt;
Python 2.0 tomó una característica mayor del lenguaje de [[Programación funcional]] [[Haskell]]: [[List comprehension]]s. La sintaxis de Python para esta construcción es muy similar a la de Haskell, salvo por la preferencia de los caracteres de puntuación en Haskell, y la preferencia de Python por palabras claves alfabéticas. Python 2.0 introdujo además un sistema de [[Recolección de basura]] capaz de recolectar referencias cíclicas. &lt;br /&gt;
&lt;br /&gt;
Posterior a este doble lanzamiento, y después que van Rossum dejó CNRI para trabajar con desarrolladores de software comercial, quedó claro que la opción de usar Python con software disponible bajo [[GPL]] era muy deseable. La licencia usada entonces, la [[Python License]], incluía una cláusula estipulando que la licencia estaba gobernada por el estado de [[Virginia]], por lo que, bajo la óptica de los abogados de [[Free Software Foundation]] (FSF), se hacía incompatible con [[GPL]]. CNRI y FSF se relacionaron para cambiar la licencia de software libre de Python para hacerla compatible con GPL. En el año 2001, van Rossum fue premiado con [[FSF Award for the Advancement of Free Software]]. &lt;br /&gt;
&lt;br /&gt;
Python 1.6.1 es esencialmente el mismo que Python 1.6, con unos pocos arreglos de [[Bugs]], y con una nueva licencia compatible con GPL. &lt;br /&gt;
&lt;br /&gt;
Python 2.1 fue un trabajo derivado de Python 1.6.1, así como también de Python 2.0. Su licencia fue renombrada: [[Python Software Foundation License]]. Todo el código, documentación y especificaciones añadidas, desde la fecha del lanzamiento de la versión alfa de Python 2.1, tiene como dueño a [[Python Software Foundation]] (PSF), una organización sin ánimo de lucro fundada en el año 2001, tomando como modelo la [[Apache Software Foundation]]. Incluido en este lanzamiento fue una implementación del scoping más parecida a las reglas de [[Static scoping]] (del cual [[Scheme]] es el originador). &lt;br /&gt;
&lt;br /&gt;
Una innovación mayor en Python 2.2 fue la unificación de los tipos en Python (tipos escritos en C), y clases (tipos escritos en Python) dentro de una jerarquía. Esa unificación logró un modelo de objetos de Python puro y consistente. También fueron agregados los [[Generador (informática)|generadores]] que fueron inspirados por el lenguaje [[Icon]].&lt;br /&gt;
&lt;br /&gt;
== Características  ==&lt;br /&gt;
&lt;br /&gt;
Python permite dividir el programa en módulos reutilizables desde otros programas Python. Viene con una gran colección de módulos estándar que se pueden utilizar como base de los programas (o como ejemplos para empezar a aprender Python). También hay módulos incluidos que proporcionan E/S de ficheros, llamadas al sistema, [[Sockets]] y hasta interfaces a [[GUI]] como [[Tk]], [[GTK]], [[Qt]] entre otros. &lt;br /&gt;
&lt;br /&gt;
Python se utiliza como lenguaje de programación interpretado, lo que ahorra un tiempo considerable en el desarrollo del programa, pues no es necesario compilar ni enlazar. El intérprete se puede utilizar de modo interactivo, lo que facilita experimentar con características del lenguaje, escribir programas desechables o probar funciones durante el desarrollo del programa. &lt;br /&gt;
&lt;br /&gt;
El nombre del lenguaje proviene de la afición de su creador original, Guido van Rossum, por los humoristas británicos [[Monty Python]]. El principal objetivo que persigue este lenguaje es la facilidad, tanto de lectura, como de diseño. &lt;br /&gt;
&lt;br /&gt;
== Filosofía  ==&lt;br /&gt;
&lt;br /&gt;
Los usuarios de Python se refieren a menudo a la '''Filosofía Python''' que es bastante análoga a la filosofía de [[Unix]]. El código que sigue los principios de Python de legibilidad y transparencia se dice que es &amp;quot;pythonico&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
*Bello es mejor que feo. &lt;br /&gt;
*Explícito es mejor que implícito. &lt;br /&gt;
*Simple es mejor que complejo. &lt;br /&gt;
*Complejo es mejor que complicado. &lt;br /&gt;
*Plano es mejor que anidado. &lt;br /&gt;
*Ralo es mejor que denso. &lt;br /&gt;
*La legibilidad cuenta. &lt;br /&gt;
*Los casos especiales no son tan especiales como para quebrantar las reglas. &lt;br /&gt;
*Aunque lo práctico gana a la pureza. &lt;br /&gt;
*Los errores nunca deberían dejarse pasar silenciosamente. &lt;br /&gt;
*A menos que hayan sido silenciados explícitamente. &lt;br /&gt;
*Frente a la ambigüedad, rechaza la tentación de adivinar. &lt;br /&gt;
*Debería haber una -y preferiblemente sólo una- manera obvia de hacerlo. &lt;br /&gt;
*Aunque esa manera puede no ser obvia al principio a menos que usted sea holandés. &lt;br /&gt;
*Ahora es mejor que nunca. &lt;br /&gt;
*Aunque ''nunca'' es a menudo mejor que ''ya mismo''. &lt;br /&gt;
*Si la implementación es dificil de explicar, es una mala idea. &lt;br /&gt;
*Si la implementación es fácil de explicar, puede que sea una buena idea. &lt;br /&gt;
*Los espacios de nombres (''namespaces'') son una gran idea ¡Hagamos más de esas cosas!&lt;br /&gt;
&lt;br /&gt;
Desde la versión 2.1.2, Python incluye estos puntos en su versión original en inglés &lt;br /&gt;
&lt;br /&gt;
== Modo interactivo  ==&lt;br /&gt;
&lt;br /&gt;
El intérprete de Python estándar incluye un ''modo interactivo'', en el cual se escriben las instrucciones en una especie de [[Intérprete de comandos|shell]]: las expresiones pueden ser introducidas una a una, pudiendo verse el resultado de su evaluación inmediatamente. Esto resulta útil tanto para las personas que se están familiarizando con el lenguaje como también para los programadores más avanzados: se pueden probar porciones de código en el modo interactivo antes de integrarlo como parte de un programa. &lt;br /&gt;
&lt;br /&gt;
Existen otros programas, tales como [[IDLE (Python)|IDLE]] o [[IPython]], que añaden funcionalidades extra al modo interactivo, como el auto-completar código y el coloreado de la sintaxis del lenguaje. &lt;br /&gt;
&lt;br /&gt;
Ejemplo del modo interactivo: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; 2+2&lt;br /&gt;
 4&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; a = range(10)&lt;br /&gt;
 &amp;gt;&amp;gt;&amp;gt; print a&lt;br /&gt;
 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Implementaciones  ==&lt;br /&gt;
&lt;br /&gt;
Python posee diversas implementaciones: &lt;br /&gt;
&lt;br /&gt;
*[[CPython]] es la implementación original, disponible para varias plataformas en el sitio oficial de Python. &lt;br /&gt;
*[[IronPython]] es la implementación para .NET &lt;br /&gt;
*[[Stackless Python]] es la variante de CPython que trata de no usar el ''stack'' de [[Lenguaje de Programación C]] ([http://www.stackless.com/ www.stackless.com]) &lt;br /&gt;
*[[Jython]] es la implementación hecha en [[Lenguaje de programación Java|Java]] &lt;br /&gt;
*[[Pippy]] es la implementación realizada para Palm ([http://pippy.sourceforge.net/ pippy.sourceforge.net])&lt;br /&gt;
&lt;br /&gt;
== Elementos del lenguaje  ==&lt;br /&gt;
&lt;br /&gt;
Python fue diseñado para ser leído con facilidad. Entre otras cosas se utilizan palabras en inglés donde otros lenguajes utilizarían símbolos (por ejemplo, los [[operadores lógicos]] &amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;&amp;amp;amp;&amp;amp;amp;&amp;lt;/code&amp;gt; en Python se escriben &amp;lt;code&amp;gt;or&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;and&amp;lt;/code&amp;gt;, respectivamente). &lt;br /&gt;
&lt;br /&gt;
En vez de delimitar los bloques de código mediante el uso de llaves (&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;), Python utiliza la [[Indentación]]. Esto hace que la misma sea obligatoria, ayudando a la claridad y consistencia del código escrito (incluso entre varios desarrolladores): &lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; | [[Factorial|Función factorial]] en [[Lenguaje de Programación C]] &lt;br /&gt;
! width=&amp;quot;50%&amp;quot; valign=&amp;quot;top&amp;quot; | [[Factorial|Función factorial]] en Python&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
&amp;lt;source lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
int factorial(int x) &lt;br /&gt;
{&lt;br /&gt;
 if (x == 0)&lt;br /&gt;
   return 1;&lt;br /&gt;
 else&lt;br /&gt;
   return x*factorial(x - 1); &lt;br /&gt;
} &lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; | &lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
def factorial(x):&lt;br /&gt;
    if not x:&lt;br /&gt;
        return 1&lt;br /&gt;
    else:&lt;br /&gt;
        return x * factorial(x-1)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Comentarios  ===&lt;br /&gt;
Los [[Comentarios|comentarios]] se inician con el símbolo &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;, y se extienden hasta el final de la línea. Al comentar una linea, esta no es tenida en cuenta por el interprete lo cual es útil si se desea poner información adicional en el código como por ejemplo un explicativo que comente que hacen dichas lineas, que falta o haría falta hacer (muy útil para los programadores al momento de leer un código hecho por otro programador). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Comentario en una línea en Python.&lt;br /&gt;
print('Hola mundo') # También es posible añadir un comentario después de una línea de código&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Variables  ===&lt;br /&gt;
&lt;br /&gt;
Las variables se definen de forma [[Tipado dinámico|dinámica]]. El signo igual (&amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;) se usa para asignar valores a las variables: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
x = 1&lt;br /&gt;
x = 'texto' # esto es posible porque los tipos son asignados dinámicamente&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Tipos de datos  ===&lt;br /&gt;
&lt;br /&gt;
Python soporta implícitamente una gran variedad de tipos de datos. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;integratable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Tipo &lt;br /&gt;
! Clase &lt;br /&gt;
! Notas &lt;br /&gt;
! Ejemplo&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt; &lt;br /&gt;
| String &lt;br /&gt;
| Inmutable &lt;br /&gt;
| &amp;lt;code&amp;gt;'Integrador'&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;unicode&amp;lt;/code&amp;gt; &lt;br /&gt;
| String &lt;br /&gt;
| Versión [[Unicode]] de &amp;lt;code&amp;gt;str&amp;lt;/code&amp;gt; (eliminado en Python3) &lt;br /&gt;
| &amp;lt;code&amp;gt;u'Integrador'&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;list&amp;lt;/code&amp;gt; &lt;br /&gt;
| Secuencia &lt;br /&gt;
| Mutable, puede contener diversos tipos &lt;br /&gt;
| &amp;lt;code&amp;gt;[4.0, 'string', True]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;tuple&amp;lt;/code&amp;gt; &lt;br /&gt;
| Secuencia &lt;br /&gt;
| Inmutable &lt;br /&gt;
| &amp;lt;code&amp;gt;(4.0, 'string', True)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;set&amp;lt;/code&amp;gt; &lt;br /&gt;
| Conjunto &lt;br /&gt;
| Mutable, sin orden, no contiene duplicados &lt;br /&gt;
| &amp;lt;code&amp;gt;set([4.0, 'string', True])&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;frozenset&amp;lt;/code&amp;gt; &lt;br /&gt;
| Conjunto &lt;br /&gt;
| Inmutable, sin orden, no contiene duplicados &lt;br /&gt;
| &amp;lt;code&amp;gt;frozenset([4.0, 'string', True])&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dict&amp;lt;/code&amp;gt; &lt;br /&gt;
| Mapping &lt;br /&gt;
| Grupo de pares clave, valor &lt;br /&gt;
| &amp;lt;code&amp;gt;{'key1': 1.0, 'key2': False}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; &lt;br /&gt;
| Número entero &lt;br /&gt;
| Precisión fija, convertido en &amp;lt;var&amp;gt;long&amp;lt;/var&amp;gt; en caso de overflow. &lt;br /&gt;
| &amp;lt;code&amp;gt;42&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;long&amp;lt;/code&amp;gt; &lt;br /&gt;
| Número entero &lt;br /&gt;
| Precisión arbitraria &lt;br /&gt;
| &amp;lt;code&amp;gt;42L&amp;lt;/code&amp;gt; ó &amp;lt;code&amp;gt;456966786151987643L&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;float&amp;lt;/code&amp;gt; &lt;br /&gt;
| Número decimal representado en &lt;br /&gt;
| coma flotante de doble precisión &lt;br /&gt;
| &amp;lt;code&amp;gt;3.1415927&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt; &lt;br /&gt;
| Booleano &lt;br /&gt;
| Valor booleano verdadero o falso &lt;br /&gt;
| &amp;lt;code&amp;gt;True o False&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*Mutable: si su valor o el de alguno de sus elementos (el caso de las listas, conjuntos y los diccionarios) puede cambiarse en tiempo de ejecución. &lt;br /&gt;
*Inmutable: si su contenido no puede cambiarse en tiempo de ejecución. Por ejemplo: las cadenas y tuplas.&lt;br /&gt;
&lt;br /&gt;
==== Tuplas y Listas  ====&lt;br /&gt;
&lt;br /&gt;
*Para declarar una ''lista'', basta usar los corchetes &amp;lt;code&amp;gt;[ ]&amp;lt;/code&amp;gt;, mientras que para declarar una ''tupla'' es recomendable usar los paréntesis &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt;. En ambas los elementos se separan por comas, y en el caso de las tuplas es necesario que tengan como mínimo una coma. &lt;br /&gt;
*Tanto las ''listas'' como las ''tuplas'' pueden contener elementos de diferentes tipos. No obstante las listas suelen usarse para elementos del mismo tipo en cantidad variable mientras que las tuplas se reservan para elementos distintos en cantidad fija. &lt;br /&gt;
*Para acceder a los elementos de una ''lista'' o ''tupla'', se utiliza un índice entero. Se pueden utilizar índices negativos para acceder elementos a partir del final. &lt;br /&gt;
*Las ''listas'' se caracterizan por ser mutables, es decir, se puede cambiar su contenido, mientras que no es posible modificar el contenido de una ''tupla'' ya creada, puesto que es inmutable.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lista = ['aaa', 1, 90]&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lista[-1]&lt;br /&gt;
90&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lista[0] = 'xyz'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; lista[0:2]&lt;br /&gt;
['xyz', 1]&lt;br /&gt;
 &lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tupla = (1, 2, 3)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tupla[0] = 2 &lt;br /&gt;
 ( genera un error )&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; tupla[0]&lt;br /&gt;
1&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; otratupla = (tupla, ('a', 'b')) # es posible anidar tuplas&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; 1, 2, 3, 'a' # Esto también es una tupla, aunque es recomendable ponerla entre paréntesis&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; (1) # Aunque entre paréntesis, esto en cambio no es una tupla, ya que no posee una coma tras el elemento&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; (1,) # En cambio, en este otro caso, sí.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; (1, 2) # Con más de un elemento no es necesaria la coma final...&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; (1, 2,) # ...aunque agregarla no modifica el resultado. Esta tupla es igual a la anterior.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
==== Diccionarios  ====&lt;br /&gt;
&lt;br /&gt;
Los diccionarios se declaran entre llaves (&amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;), y contienen elementos separados por comas, donde cada elemento está formado por un par &amp;lt;var&amp;gt;clave&amp;lt;/var&amp;gt; &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; &amp;lt;var&amp;gt;valor&amp;lt;/var&amp;gt; (el símbolo &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt; separa la clave de su valor correspondiente).&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; # Ejemplo de como llmar a los valores en un diccionario mediante su clave. La clave la se  pondra entre un corchete abierto &amp;quot;[&amp;quot; y un corchete cerrado &amp;quot;]&amp;quot;. Esto devolverá el valor.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario = {&amp;quot;coche&amp;quot;: &amp;quot;rojo&amp;quot;, &amp;quot;mesa&amp;quot;: &amp;quot;marron&amp;quot;}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario['coche']&lt;br /&gt;
'rojo'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario['mesa']&lt;br /&gt;
'marron'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Los diccionarios son mutables:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario = {&amp;quot;numero_globos&amp;quot;: 4}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario[&amp;quot;numero_globos&amp;quot;]&lt;br /&gt;
4&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario[&amp;quot;numero_globos&amp;quot;] = 3 # Se puede reasignar el valor de una clave&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario[&amp;quot;numero_globos&amp;quot;]&lt;br /&gt;
3&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
El valor de un diccionario puede ser de cualquier tipo. Un string (&amp;quot;casa&amp;quot;), un int (2), una lista ([1, 2, 3]), o incluso un diccionario. &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario = {&amp;quot;coches&amp;quot;: 4, &amp;quot;tipo&amp;quot;: &amp;quot;de los que tienen 4 ruedas&amp;quot;, &amp;quot;marcas&amp;quot;: ['Honda', 'Renault', 'Seat'], &amp;quot;descripciones&amp;quot;: {&amp;quot;uno&amp;quot;: ('Seat', 'Ibiza', 'rojo'), &amp;quot;dos&amp;quot;: ('Honda', 'civic', 'azul'), &amp;quot;tres&amp;quot;: ('Seat', 'Ibiza', 'negro') } }&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario['coches']&lt;br /&gt;
4&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario['tipo']&lt;br /&gt;
'de los que tienen 4 ruedas'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario['marcas']&lt;br /&gt;
['Honda', 'Renault', 'Seat']&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario['marcas'][0]&lt;br /&gt;
'Honda'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario['descripciones']&lt;br /&gt;
{&amp;quot;uno&amp;quot;: ('Seat', 'Ibiza', 'rojo'), &amp;quot;dos&amp;quot;: ('Honda', 'civic', 'azul'), &amp;quot;tres&amp;quot;: ('Seat', 'Ibiza', 'negro') }&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario['descripciones']['uno']&lt;br /&gt;
('Seat', 'Ibiza', 'rojo')&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
En cambio, la clave en los diccionarios debe ser inmutable. Esto quiere decir, por ejemplo, que no se  puede usar ni listas ni diccionarios como claves: &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario = {&amp;quot;coche&amp;quot;: 'rojo'} # Con un string. Valido.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario = {4: &amp;quot;manuales&amp;quot;} # Con un int. Valido.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario = {(2, 'lampara'): &amp;quot;florero&amp;quot;} # Con una tupla. Valido.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario = {[2, 'lampara']: &amp;quot;florero&amp;quot;} # Con una lista. Error.&lt;br /&gt;
(... Error ...)&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; mi_diccionario = {{'fuente': 'luz'}: &amp;quot;dimm&amp;quot;} # Con un diccionario. Error.&lt;br /&gt;
(... Error ...)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Cabe señalar, que los diccionarios al igual que las listas, al ser mutables, compartirán los cambios realizados, independientemente del nombre de la variable que se use para referirse a ellos. &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a = {&amp;quot;coche&amp;quot;: 'rojo'}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a['coche']&lt;br /&gt;
'rojo'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; b = a&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; b['coche']&lt;br /&gt;
'rojo'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; b['coche'] = 'azul'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; b['coche']&lt;br /&gt;
'azul'&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; a['coche']&lt;br /&gt;
'azul'&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Cuando este comportamiento no sea el deseado, se puede hacer una copia del diccionario usando su método &amp;lt;code&amp;gt;copy&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
En este ejemplo, se recorre la estructura de diccionario, y se imprime su contenido de la forma ''clave''=''valor'' &amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dict = {&amp;quot;dia&amp;quot;: 24, &amp;quot;mes&amp;quot;: &amp;quot;agosto&amp;quot;}&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; for k in dict:&lt;br /&gt;
...    print &amp;quot;%s=%s&amp;quot; % (k, dict[k])&lt;br /&gt;
 &lt;br /&gt;
dia=24&lt;br /&gt;
mes=agosto&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Conjuntos (Sets)  ====&lt;br /&gt;
&lt;br /&gt;
Los conjuntos se construyen mediante &amp;lt;code&amp;gt;set(items)&amp;lt;/code&amp;gt; donde &amp;lt;var&amp;gt;items&amp;lt;/var&amp;gt; es cualquier objeto iterable. Los conjuntos no mantienen el orden ni contienen elementos duplicados. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; conj = set(['a','b','a'])&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print conj&lt;br /&gt;
set(['a','b'])&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Funciones  ===&lt;br /&gt;
&lt;br /&gt;
Las funciones se definen con la palabra clave &amp;lt;code&amp;gt;def&amp;lt;/code&amp;gt;, seguida del nombre de la función y sus parámetros. Otra forma de escribir funciones, aunque menos utilizada, es con la palabra clave &amp;lt;code&amp;gt;lambda&amp;lt;/code&amp;gt; (que aparece en lenguajes funcionales como [[Lisp]]). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; # Ejemplo de función lambda&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; f = lambda x: x+2&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; f(4)&lt;br /&gt;
6&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; # Ejemplo de función con def. En este ejemplo salvo que se indique la variable 'y' valdrá 2.&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; def multiplicacion(x, y=2):&lt;br /&gt;
...     return x * y     &lt;br /&gt;
...&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; multiplicacion(10)&lt;br /&gt;
20&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; multiplicacion(10, 3)&lt;br /&gt;
30&lt;br /&gt;
&amp;lt;/source&amp;gt; El valor devuelto en las funciones con def será el dado con la instrucción &amp;quot;return&amp;quot; y el contenido de la función será declarado mediante espacios o tabuladores (siempre el mismo número)&amp;lt;ref&amp;gt;http://docs.python.org/tutorial/controlflow.html#defining-functions&amp;lt;/ref&amp;gt; antes de cada línea de órdenes pertenecientes al bloque. '''Python''' se diferencia así de otros muchos lenguajes de programación que mantienen como costumbre declarar los bloques mediante un conjunto de caracteres, normalmente entre corchetes (&amp;lt;code&amp;gt;{ }&amp;lt;/code&amp;gt;).&amp;lt;ref&amp;gt;http://www.acm.uiuc.edu/webmonkeys/book/c_guide/1.3.html&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;http://www.desarrolloweb.com/articulos/583.php&amp;lt;/ref&amp;gt; En cambio el lenguaje de programación [[Ruby]] sigue el mismo sismo sistema para declarar los bloques que Python.&amp;lt;ref&amp;gt;http://www.ruby-doc.org/docs/ProgrammingRuby/html/ref_c_module.html#Module.module_function&amp;lt;/ref&amp;gt; Se recomienda que la identación sea siempre de espacios o siempre de tabuladores, pero no mezclarlos, utilizar espacios en vez de tabuladores y que estos siempre sean 4 espacios.&amp;lt;ref&amp;gt;http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#whitespace-1&amp;lt;/ref&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Módulos  ===&lt;br /&gt;
&lt;br /&gt;
Existen muchas propiedades que se pueden agregar al lenguaje importando módulos, que son minicódigos (la mayoría escritos también en Python) que llaman a los recursos del sistema. Un ejemplo es el módulo Tkinter, que permite crear interfaces gráficas que incluyan botones, cajas de texto, y muchas cosas que se vea habitualmente en el sistema operativo. Otro ejemplo es el módulo que permite manejar el sistema operativo desde el lenguaje. Los módulos se agregan a los códigos escribiendo &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; seguida del nombre del módulo que se quiera usar. En este código se muestra como apagar el ordenador desde Windows. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
apagar = &amp;quot;shutdown /s&amp;quot;&lt;br /&gt;
import os&lt;br /&gt;
os.system(apagar)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejemplos de código Python  ==&lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo muestra cómo obtener una lista con los cuadrados de los números del 0 al 9 (inclusive). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
 print [x**2 for x in range(10)]&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
El siguiente ejemplo saludará al usuario si se conoce su plato preferido, o le preguntará cuál es, en caso contrario. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: iso8859-15 -*-&lt;br /&gt;
# diccionario de comidas preferidas de cada persona&lt;br /&gt;
comidas = {&lt;br /&gt;
   &amp;quot;Juan&amp;quot; : &amp;quot;tiburón en escabeche&amp;quot;,&lt;br /&gt;
   &amp;quot;Pablo&amp;quot; : &amp;quot;paella don Beto&amp;quot;, &lt;br /&gt;
   &amp;quot;Alfredo&amp;quot; : &amp;quot;sesos de mono&amp;quot;,&lt;br /&gt;
   &amp;quot;Fulano&amp;quot; : &amp;quot;cucarachas fritas&amp;quot;,&lt;br /&gt;
   &amp;quot;Sonia&amp;quot; : &amp;quot;burros&amp;quot;,&lt;br /&gt;
   &amp;quot;Lucas&amp;quot; : &amp;quot;hamburguesas Mr Paul&amp;quot;,&lt;br /&gt;
   &amp;quot;Jose&amp;quot; : &amp;quot;ceviche&amp;quot;,&lt;br /&gt;
   &amp;quot;Cesar&amp;quot; : &amp;quot;arroz con pollo&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
afirmativas = set(['si','s','mucho','porfa'])&lt;br /&gt;
 &lt;br /&gt;
def saluda(nombre, comida):&lt;br /&gt;
    respuesta = raw_input(&amp;quot;Hola &amp;quot; + nombre + &amp;quot;, ¿te gusta &amp;quot; + comida + &amp;quot;? &amp;quot;)&lt;br /&gt;
    if respuesta not in afirmativas:&lt;br /&gt;
        pregunta(nombre)&lt;br /&gt;
&lt;br /&gt;
def pregunta(nombre):&lt;br /&gt;
    respuesta = raw_input(&amp;quot;Hola &amp;quot; + nombre + &amp;quot;, ¿qué comida te gusta? &amp;quot;)&lt;br /&gt;
    comidas[nombre] = respuesta&lt;br /&gt;
&lt;br /&gt;
for nombre in [&amp;quot;Juan&amp;quot;, &amp;quot;Pablo&amp;quot;, &amp;quot;Alfredo&amp;quot;, &amp;quot;Fulano&amp;quot;, &amp;quot;Sonia&amp;quot;, &amp;quot;Lucas&amp;quot;, &amp;quot;Mengano&amp;quot;,&amp;quot;Cesar&amp;quot;]:&lt;br /&gt;
    if nombre in comidas and comidas[nombre] is not None:&lt;br /&gt;
        saluda(nombre, comidas[nombre])&lt;br /&gt;
    else:&lt;br /&gt;
        pregunta(nombre)&lt;br /&gt;
&amp;lt;/source&amp;gt; El siguiente ejemplo busca y cuenta palabras palíndromas (se leen igual al derecho y al revés) en un archivo de texto que le se indique. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
ruta = raw_input(&amp;quot;Escriba la ruta del archivo a leer: &amp;quot;)&lt;br /&gt;
archivo = open(ruta, 'r')&lt;br /&gt;
texto = archivo.read()&lt;br /&gt;
  &lt;br /&gt;
contar = 0&lt;br /&gt;
  &lt;br /&gt;
for palabra in texto.split(' '):&lt;br /&gt;
  if palabra == palabra[::-1]:&lt;br /&gt;
    contar += 1&lt;br /&gt;
  &lt;br /&gt;
if not contar:&lt;br /&gt;
  print &amp;quot;No hay palabras palíndromas en el archivo&amp;quot;&lt;br /&gt;
else:&lt;br /&gt;
  print &amp;quot;Palabras palíndromas encontradas: &amp;quot;, contar&lt;br /&gt;
  &lt;br /&gt;
archivo.close()&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Biblioteca Estándar  ==&lt;br /&gt;
&lt;br /&gt;
Python tiene una gran biblioteca estándar, usada para una diversidad de tareas. Esto viene de la filosofía &amp;quot;pilas incluidas&amp;quot; (&amp;quot;batteries included&amp;quot;) en referencia a los módulos de Python. Los módulos de la biblioteca estándar pueden mejorarse por módulos personalizados escritos tanto en [[C]] como en Python. Debido a la gran variedad de herramientas incluidas en la biblioteca estándar combinada con la habilidad de usar lenguajes de bajo nivel como C y [[C++]], los cuales son capaces de interactuar con otras bibliotecas, Python es un lenguaje que combina su clara sintaxis con el inmenso poder de lenguajes menos elegantes. &lt;br /&gt;
&lt;br /&gt;
== Vease también  ==&lt;br /&gt;
&lt;br /&gt;
*[[Django]] Framework de programación web escrito en Python &lt;br /&gt;
*[[Herramienta Trac]]&lt;br /&gt;
*[[PyQt]]&lt;br /&gt;
*[[PyKDE]]&lt;br /&gt;
*[[Python Software Foundation License]]&lt;br /&gt;
&lt;br /&gt;
== Fuente  ==&lt;br /&gt;
&lt;br /&gt;
*Knowlton, Jim (2009). ''Python, tr: Fernández Vélez, María Jesús, 1 edición (en Español), Anaya Multimedia-Anaya Interactiva'', pp. 272. ISBN 978-84-415-2513-9. &lt;br /&gt;
*[http://docs.python.org/3.1/library/2to3.html Python.org ]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Referencias  ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
[[Category:Programación]] [[Category:Lenguajes_de_programación]] [[Category:Lenguajes_de_programación_orientada_a_objetos]]&lt;/div&gt;</summary>
		<author><name>Xander78</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Inteligencia_artificial&amp;diff=2952714</id>
		<title>Inteligencia artificial</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Inteligencia_artificial&amp;diff=2952714"/>
		<updated>2017-09-17T00:53:22Z</updated>

		<summary type="html">&lt;p&gt;Xander78: /* Técnicas de inteligencia artificial. */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ficha Software&lt;br /&gt;
|nombre= Inteligencia Artificial&lt;br /&gt;
|familia=&lt;br /&gt;
|imagen= InteligenciaArtificial.jpg&lt;br /&gt;
|tamaño=&lt;br /&gt;
|descripción= Campo de las ciencias informáticas encargado de comprender y replicar la inteligencia humana&lt;br /&gt;
|imagen2=&lt;br /&gt;
|tamaño2=&lt;br /&gt;
|descripción2=&lt;br /&gt;
|creador=&lt;br /&gt;
|desarrollador=&lt;br /&gt;
|diseñador=&lt;br /&gt;
|modelo de desarrollo=&lt;br /&gt;
|fecha de creación= &lt;br /&gt;
|lanzamiento inicial=&lt;br /&gt;
|versiones=&lt;br /&gt;
|última versión estable=&lt;br /&gt;
|núcleo=&lt;br /&gt;
|tipo de núcleo=&lt;br /&gt;
|plataformas soportadas=&lt;br /&gt;
|género=&lt;br /&gt;
|sistemas operativos=&lt;br /&gt;
|idioma=&lt;br /&gt;
|licencia=&lt;br /&gt;
|premios=&lt;br /&gt;
|web=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
A medida que ha ido avanzando la ciencia y la tecnología el hombre ha tenido entre sus principales objetivos, lograr que las máquinas piensen igual que el ser humano, o al menos tratar de lograr tal situación. En busca de nuevos métodos de aprendizaje para alcanzar tal comportamiento surgió una nueva rama de la [[Ciencias de la computación|Ciencia de la Computación]], la '''Inteligencia Artificial'''. Este campo de la Computación es el encargado de comprender y replicar la inteligencia humana, además proporciona un conjunto de técnicas, herramientas y métodos que han demostrado su aplicabilidad. Ha surgido con numerosas aplicaciones en muchos campos, desde áreas de propósito general como la percepción o el razonamiento, hasta áreas específicas como ingeniería del conocimiento, planificación, [[Desarrollo de Videojuegos|videojuegos]], entre otras. Uno de los campos del desarrollo de software que más se ha beneficiado con la Inteligencia Artificial ha sido, sin duda, el desarrollo de [[Desarrollo de videojuegos|videojuegos]]. &lt;br /&gt;
&lt;br /&gt;
== Concepto de inteligencia artificial.  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Concepto de IA.jpeg|thumb|left|182x155px]] Se define la Inteligencia Artificial como aquella inteligencia exhibida por artefactos creados por humanos (es decir, artificial). A menudo se aplica hipotéticamente a los [[Computadora|computadores]]. El nombre también se usa para referirse al campo de la investigación científica que intenta acercarse a la creación de tales sistemas. La Inteligencia Artificial trata de conseguir que los ordenadores simulen en cierta manera la [[La Estructura de la inteligencia|inteligencia humana]]. Se acude a sus técnicas cuando es necesario incorporar en un sistema informático, conocimiento o características propias del ser humano.&amp;lt;br&amp;gt;La Inteligencia Artificial ha tenido gran auge en nuestros días, teniendo aplicabilidad en la informática, la ciencia, la salud y otros campos. Ha sido un gran reto tratar de acercar la mente de una máquina al pensamiento humano, y sin dudar que en un futuro no muy lejano no sepamos distinguir si estamos en presencia de una Inteligencia Artificial o una verdadera mente humana.&lt;br /&gt;
&lt;br /&gt;
== Historia de la inteligencia artificial  ==&lt;br /&gt;
&lt;br /&gt;
La idea de algo parecido a la inteligencia artificial existe desde hace millones de años. El primer hombre primitivo que tomo conciencia de su propia existencia, y de que era capaz de pensar, seguramente se pregunto como funcionaria su pensamiento y posteriormente llegaría a la idea de un &amp;quot;creador superior&amp;quot;. Por lo tanto, la idea de que un ser inteligente cree a otro, la idea de un diseño virtual para la inteligencia, es tan remota como la toma de conciencia del ser humano. &lt;br /&gt;
&lt;br /&gt;
*Los juegos matemáticos antiguos, como el de la torres de hanoi (aprox 3000ac), demuestran el interés por la búsqueda de un bucle resolutor, una Inteligencia Artificial capaz de ganar en los mínimos movimientos posibles.&lt;br /&gt;
&lt;br /&gt;
*En [[1903]] Lee De Forest inventa el tríodo (también llamados bulbo o válvula de vacío). Podría decirse que la primera gran maquina inteligente diseñada por el hombre fue el computador ENIAC, compuesto por 18.000 válvulas de vacío, teniendo en cuenta que el concepto de &amp;quot;inteligencia&amp;quot; es un término subjetivo que depende de la inteligencia y la tecnología que tengamos en esa época. Un indígena de las amazonas en el [[Siglo XX]] podría calificar de inteligente un tocadiscos, cuando en verdad no lo es tanto.&lt;br /&gt;
&lt;br /&gt;
*En [[1937]], el matemático inglés Alan Mathison Turing ([[1912]]-[[1953]]) publicó un artículo de bastante repercusión sobre los &amp;quot;Números Calculables&amp;quot;, que puede considerarse el origen oficial de la Informática Teórica. En este artículo, introdujo la Máquina de Turing, una entidad matemática abstracta que formalizó el concepto de algoritmo y resultó ser la precursora de las computadoras digitales. Con ayuda de su máquina, Turing pudo demostrar que existen problemas irresolubles, de los que ningún ordenador será capaz de obtener su solución, por lo que a Alan Turing se le considera el padre de la teoría de la computabilidad.&lt;br /&gt;
&lt;br /&gt;
*También se le considera el padre de la Inteligencia Artificial, por su famosa Prueba de Turing, que permitiría comprobar si un programa de ordenador puede ser tan inteligente como un ser humano.&lt;br /&gt;
&lt;br /&gt;
*En [[1951]] William Shockley inventa el transistor de unión. El invento del transistor hizo posible una nueva generación de computadoras mucho más rápidas y pequeñas.&lt;br /&gt;
&lt;br /&gt;
*En [[1956]], se acuño el término &amp;quot;inteligencia artificial&amp;quot; en Dartmouth durante una conferencia convocada por McCarthy, a la cual asistieron, entre otros, Minsky, Newell y Simon. En esta conferencia se hicieron previsiones triunfalistas a diez años que jamás se cumplieron, lo que provocó el abandono casi total de las investigaciones durante quince años.&lt;br /&gt;
&lt;br /&gt;
*En [[1980]] la historia se repitió con el desafío japonés de la quinta generación, que dio lugar al auge de los sistemas expertos, pero que no alcanzó muchos de sus objetivos, por lo que este campo ha sufrido una nueva detención en los años noventa.&lt;br /&gt;
&lt;br /&gt;
*En [[1987]] Martin Fischles y Oscar Firschein describieron los atributos de un agente inteligente. Al intentar describir con un mayor ámbito (no solo la comunicación) los atributos de un agente inteligente, la IA se ha extendido a muchas áreas que han creado ramas de investigación enorme y diferenciada. Dichos atributos del agente inteligente son:&lt;br /&gt;
&lt;br /&gt;
#Tiene actitudes mentales tales como creencias e intenciones &lt;br /&gt;
#Tiene la capacidad de obtener conocimiento, es decir, aprender. &lt;br /&gt;
#Puede resolver problemas, incluso particionando problemas complejos en otros más simples. &lt;br /&gt;
#Entiende. Posee la capacidad de crearle sentido, si es posible, a ideas ambiguas o contradictorias. &lt;br /&gt;
#Planifica, predice consecuencias, evalúa alternativas (como en los juegos de ajedrez) &lt;br /&gt;
#Conoce los límites de su propias habilidades y conocimientos. &lt;br /&gt;
#Puede distinguir a pesar de las similitudes de las situaciones. &lt;br /&gt;
#Puede ser original, creando incluso nuevos conceptos o ideas, y hasta utilizando analogías. &lt;br /&gt;
#Puede generalizar. &lt;br /&gt;
#Puede percibir y modelar el mundo exterior. &lt;br /&gt;
#Puede entender y utilizar el lenguaje y sus símbolos.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir que la IA incluye características humanas tales como el aprendizaje, la adaptación, el razonamiento, la autocorrección, el mejoramiento implícito, y la percepción modelar del mundo. Así, podemos hablar ya no sólo de un objetivo, sino de muchos dependiendo del punto de vista o utilidad que pueda encontrarse a la IA. &lt;br /&gt;
&lt;br /&gt;
Muchos de los investigadores sobre IA sostienen que &amp;quot;la inteligencia es un programa capaz de ser ejecutado independientemente de la máquina que lo ejecute, computador o cerebro&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
=== Técnicas y campos de la inteligencia artificial  ===&lt;br /&gt;
&lt;br /&gt;
*[[Aprendizaje Automático]] (Machine Learning). [[Image:Aprendizaje automatico.jpeg|thumb|right|136x138px|Aprendizaje automatico.]] &lt;br /&gt;
*[[Ingeniería del conocimiento]] (Knowledge Engineering) &lt;br /&gt;
*[[Lógica difusa]] (Fuzzy Logic) &lt;br /&gt;
*[[Redes neuronales artificiales]] (Artificial Neural Networks) [[Image:Redes neuronales.jpeg|thumb|right|136x103px|Redes neuronales.]] &lt;br /&gt;
*[[Sistemas reactivos]] (Reactive Systems) &lt;br /&gt;
*[[Sistemas Multiagente]] (Multi-Agent Systems) &lt;br /&gt;
*[[Sistemas basados en reglas]] (Rule-Based Systems) &lt;br /&gt;
*[[Razonamiento basado en casos]] (Case-Based Reasoning) &lt;br /&gt;
*[[Sistemas expertos|Sistemas expertos]] (Expert Systems)&amp;amp;nbsp; &lt;br /&gt;
*[[Redes Bayesianas]] (Bayesian Networks) &lt;br /&gt;
*[[Vida artificial]] (Artificial Life). La VA no es un campo de la IA, sino que la IA es un campo de la VA.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;400&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Computación evolutiva (Evolutionary Computation) &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Estrategias evolutivas &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Algoritmos genéticos (Genetic Algorithms) &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*[[Técnicas de Representación de Conocimiento]] &lt;br /&gt;
*[[Redes semánticas]] (Semantic Networks) &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;[[Image:Funcionamiento.jpg|thumb|right|136x140px|Sistemas expertos.jpeg]] &lt;br /&gt;
*[[Frames]] &lt;br /&gt;
*[[Vision artificial]] &lt;br /&gt;
*[[Audicion artificial]] &lt;br /&gt;
*[[Lingüística computacional]] &lt;br /&gt;
*[[Procesamiento del lenguaje natural]] (Natural Language Processing) &lt;br /&gt;
*[[Minería de datos]] (Data Mining)&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
*[[Simulación (Informática)]]&lt;br /&gt;
*[[Cibernética]]&lt;br /&gt;
*[[Singularidad tecnológica]]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
*http://www.inteligenciaartificial.cl/ciencia/software/ia/inteligencia_artificial.htm &lt;br /&gt;
*http://grvc.us.es/rar/mainFrame/percepcion/percepcion.html&lt;br /&gt;
*http://cibernetica.wordpress.com&lt;br /&gt;
&lt;br /&gt;
== Fuente ==&lt;br /&gt;
&lt;br /&gt;
*Revista Iberoamericana de Inteligencia Artificial. No.18 (2003), pp. 51-63. &lt;br /&gt;
*JACOBSON, Ivar; RUMBAUGH, James; BOOCH, Grady, “El proceso unificado de desarrollo”.2004. Addison Wesley. Volumen II.&amp;lt;br&amp;gt; &lt;br /&gt;
*Revista Iberoamericana de Inteligencia Artificial.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[http://www.redvitec.edu.ar/novedades/index/inteligencia-artificial-desde-la-universidad-publica-a-facebook- Inteligencia artificial: desde la universidad pública a Faceboo] &lt;br /&gt;
&lt;br /&gt;
[[Category:Inteligencia_Artificial]]&lt;/div&gt;</summary>
		<author><name>Xander78</name></author>
		
	</entry>
	<entry>
		<id>https://www.ecured.cu/index.php?title=Inteligencia_artificial&amp;diff=2952713</id>
		<title>Inteligencia artificial</title>
		<link rel="alternate" type="text/html" href="https://www.ecured.cu/index.php?title=Inteligencia_artificial&amp;diff=2952713"/>
		<updated>2017-09-17T00:51:40Z</updated>

		<summary type="html">&lt;p&gt;Xander78: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Ficha Software&lt;br /&gt;
|nombre= Inteligencia Artificial&lt;br /&gt;
|familia=&lt;br /&gt;
|imagen= InteligenciaArtificial.jpg&lt;br /&gt;
|tamaño=&lt;br /&gt;
|descripción= Campo de las ciencias informáticas encargado de comprender y replicar la inteligencia humana&lt;br /&gt;
|imagen2=&lt;br /&gt;
|tamaño2=&lt;br /&gt;
|descripción2=&lt;br /&gt;
|creador=&lt;br /&gt;
|desarrollador=&lt;br /&gt;
|diseñador=&lt;br /&gt;
|modelo de desarrollo=&lt;br /&gt;
|fecha de creación= &lt;br /&gt;
|lanzamiento inicial=&lt;br /&gt;
|versiones=&lt;br /&gt;
|última versión estable=&lt;br /&gt;
|núcleo=&lt;br /&gt;
|tipo de núcleo=&lt;br /&gt;
|plataformas soportadas=&lt;br /&gt;
|género=&lt;br /&gt;
|sistemas operativos=&lt;br /&gt;
|idioma=&lt;br /&gt;
|licencia=&lt;br /&gt;
|premios=&lt;br /&gt;
|web=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;justify&amp;quot;&amp;gt;&lt;br /&gt;
A medida que ha ido avanzando la ciencia y la tecnología el hombre ha tenido entre sus principales objetivos, lograr que las máquinas piensen igual que el ser humano, o al menos tratar de lograr tal situación. En busca de nuevos métodos de aprendizaje para alcanzar tal comportamiento surgió una nueva rama de la [[Ciencias de la computación|Ciencia de la Computación]], la '''Inteligencia Artificial'''. Este campo de la Computación es el encargado de comprender y replicar la inteligencia humana, además proporciona un conjunto de técnicas, herramientas y métodos que han demostrado su aplicabilidad. Ha surgido con numerosas aplicaciones en muchos campos, desde áreas de propósito general como la percepción o el razonamiento, hasta áreas específicas como ingeniería del conocimiento, planificación, [[Desarrollo de Videojuegos|videojuegos]], entre otras. Uno de los campos del desarrollo de software que más se ha beneficiado con la Inteligencia Artificial ha sido, sin duda, el desarrollo de [[Desarrollo de videojuegos|videojuegos]]. &lt;br /&gt;
&lt;br /&gt;
== Concepto de inteligencia artificial.  ==&lt;br /&gt;
&lt;br /&gt;
[[Image:Concepto de IA.jpeg|thumb|left|182x155px]] Se define la Inteligencia Artificial como aquella inteligencia exhibida por artefactos creados por humanos (es decir, artificial). A menudo se aplica hipotéticamente a los [[Computadora|computadores]]. El nombre también se usa para referirse al campo de la investigación científica que intenta acercarse a la creación de tales sistemas. La Inteligencia Artificial trata de conseguir que los ordenadores simulen en cierta manera la [[La Estructura de la inteligencia|inteligencia humana]]. Se acude a sus técnicas cuando es necesario incorporar en un sistema informático, conocimiento o características propias del ser humano.&amp;lt;br&amp;gt;La Inteligencia Artificial ha tenido gran auge en nuestros días, teniendo aplicabilidad en la informática, la ciencia, la salud y otros campos. Ha sido un gran reto tratar de acercar la mente de una máquina al pensamiento humano, y sin dudar que en un futuro no muy lejano no sepamos distinguir si estamos en presencia de una Inteligencia Artificial o una verdadera mente humana.&lt;br /&gt;
&lt;br /&gt;
== Historia de la inteligencia artificial  ==&lt;br /&gt;
&lt;br /&gt;
La idea de algo parecido a la inteligencia artificial existe desde hace millones de años. El primer hombre primitivo que tomo conciencia de su propia existencia, y de que era capaz de pensar, seguramente se pregunto como funcionaria su pensamiento y posteriormente llegaría a la idea de un &amp;quot;creador superior&amp;quot;. Por lo tanto, la idea de que un ser inteligente cree a otro, la idea de un diseño virtual para la inteligencia, es tan remota como la toma de conciencia del ser humano. &lt;br /&gt;
&lt;br /&gt;
*Los juegos matemáticos antiguos, como el de la torres de hanoi (aprox 3000ac), demuestran el interés por la búsqueda de un bucle resolutor, una Inteligencia Artificial capaz de ganar en los mínimos movimientos posibles.&lt;br /&gt;
&lt;br /&gt;
*En [[1903]] Lee De Forest inventa el tríodo (también llamados bulbo o válvula de vacío). Podría decirse que la primera gran maquina inteligente diseñada por el hombre fue el computador ENIAC, compuesto por 18.000 válvulas de vacío, teniendo en cuenta que el concepto de &amp;quot;inteligencia&amp;quot; es un término subjetivo que depende de la inteligencia y la tecnología que tengamos en esa época. Un indígena de las amazonas en el [[Siglo XX]] podría calificar de inteligente un tocadiscos, cuando en verdad no lo es tanto.&lt;br /&gt;
&lt;br /&gt;
*En [[1937]], el matemático inglés Alan Mathison Turing ([[1912]]-[[1953]]) publicó un artículo de bastante repercusión sobre los &amp;quot;Números Calculables&amp;quot;, que puede considerarse el origen oficial de la Informática Teórica. En este artículo, introdujo la Máquina de Turing, una entidad matemática abstracta que formalizó el concepto de algoritmo y resultó ser la precursora de las computadoras digitales. Con ayuda de su máquina, Turing pudo demostrar que existen problemas irresolubles, de los que ningún ordenador será capaz de obtener su solución, por lo que a Alan Turing se le considera el padre de la teoría de la computabilidad.&lt;br /&gt;
&lt;br /&gt;
*También se le considera el padre de la Inteligencia Artificial, por su famosa Prueba de Turing, que permitiría comprobar si un programa de ordenador puede ser tan inteligente como un ser humano.&lt;br /&gt;
&lt;br /&gt;
*En [[1951]] William Shockley inventa el transistor de unión. El invento del transistor hizo posible una nueva generación de computadoras mucho más rápidas y pequeñas.&lt;br /&gt;
&lt;br /&gt;
*En [[1956]], se acuño el término &amp;quot;inteligencia artificial&amp;quot; en Dartmouth durante una conferencia convocada por McCarthy, a la cual asistieron, entre otros, Minsky, Newell y Simon. En esta conferencia se hicieron previsiones triunfalistas a diez años que jamás se cumplieron, lo que provocó el abandono casi total de las investigaciones durante quince años.&lt;br /&gt;
&lt;br /&gt;
*En [[1980]] la historia se repitió con el desafío japonés de la quinta generación, que dio lugar al auge de los sistemas expertos, pero que no alcanzó muchos de sus objetivos, por lo que este campo ha sufrido una nueva detención en los años noventa.&lt;br /&gt;
&lt;br /&gt;
*En [[1987]] Martin Fischles y Oscar Firschein describieron los atributos de un agente inteligente. Al intentar describir con un mayor ámbito (no solo la comunicación) los atributos de un agente inteligente, la IA se ha extendido a muchas áreas que han creado ramas de investigación enorme y diferenciada. Dichos atributos del agente inteligente son:&lt;br /&gt;
&lt;br /&gt;
#Tiene actitudes mentales tales como creencias e intenciones &lt;br /&gt;
#Tiene la capacidad de obtener conocimiento, es decir, aprender. &lt;br /&gt;
#Puede resolver problemas, incluso particionando problemas complejos en otros más simples. &lt;br /&gt;
#Entiende. Posee la capacidad de crearle sentido, si es posible, a ideas ambiguas o contradictorias. &lt;br /&gt;
#Planifica, predice consecuencias, evalúa alternativas (como en los juegos de ajedrez) &lt;br /&gt;
#Conoce los límites de su propias habilidades y conocimientos. &lt;br /&gt;
#Puede distinguir a pesar de las similitudes de las situaciones. &lt;br /&gt;
#Puede ser original, creando incluso nuevos conceptos o ideas, y hasta utilizando analogías. &lt;br /&gt;
#Puede generalizar. &lt;br /&gt;
#Puede percibir y modelar el mundo exterior. &lt;br /&gt;
#Puede entender y utilizar el lenguaje y sus símbolos.&lt;br /&gt;
&lt;br /&gt;
Podemos entonces decir que la IA incluye características humanas tales como el aprendizaje, la adaptación, el razonamiento, la autocorrección, el mejoramiento implícito, y la percepción modelar del mundo. Así, podemos hablar ya no sólo de un objetivo, sino de muchos dependiendo del punto de vista o utilidad que pueda encontrarse a la IA. &lt;br /&gt;
&lt;br /&gt;
Muchos de los investigadores sobre IA sostienen que &amp;quot;la inteligencia es un programa capaz de ser ejecutado independientemente de la máquina que lo ejecute, computador o cerebro&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
== Técnicas de inteligencia artificial.  ==&lt;br /&gt;
&lt;br /&gt;
A medida que los videojuegos fueron evolucionando, y fueron surgiendo nuevos géneros la necesidad de técnicas de Inteligencia Artificial fue aumentando en gran medida.&amp;lt;br&amp;gt;Uno de los principales objetivos de un [[Desarrollo de Videojuegos|videojuego]] es ofrecer retos al usuario, esto se logra introduciendo técnicas de Inteligencia Artificial, ya que ellas son las que deciden cuáles son las mejores opciones que pueden tomar los elementos del videojuego a partir de las condiciones del entorno que los rodea. Las técnicas que se utilizan para un videojuego dependen mucho del tipo de [[Desarrollo de Videojuegos|Videojuegos]] que estemos diseñando. &lt;br /&gt;
&lt;br /&gt;
=== Técnicas y campos de la inteligencia artificial  ===&lt;br /&gt;
&lt;br /&gt;
*[[Aprendizaje Automático]] (Machine Learning). [[Image:Aprendizaje automatico.jpeg|thumb|right|136x138px|Aprendizaje automatico.]] &lt;br /&gt;
*[[Ingeniería del conocimiento]] (Knowledge Engineering) &lt;br /&gt;
*[[Lógica difusa]] (Fuzzy Logic) &lt;br /&gt;
*[[Redes neuronales artificiales]] (Artificial Neural Networks) [[Image:Redes neuronales.jpeg|thumb|right|136x103px|Redes neuronales.]] &lt;br /&gt;
*[[Sistemas reactivos]] (Reactive Systems) &lt;br /&gt;
*[[Sistemas Multiagente]] (Multi-Agent Systems) &lt;br /&gt;
*[[Sistemas basados en reglas]] (Rule-Based Systems) &lt;br /&gt;
*[[Razonamiento basado en casos]] (Case-Based Reasoning) &lt;br /&gt;
*[[Sistemas expertos|Sistemas expertos]] (Expert Systems)&amp;amp;nbsp; &lt;br /&gt;
*[[Redes Bayesianas]] (Bayesian Networks) &lt;br /&gt;
*[[Vida artificial]] (Artificial Life). La VA no es un campo de la IA, sino que la IA es un campo de la VA.&lt;br /&gt;
&lt;br /&gt;
{| width=&amp;quot;400&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| Computación evolutiva (Evolutionary Computation) &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Estrategias evolutivas &amp;lt;br&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Algoritmos genéticos (Genetic Algorithms) &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*[[Técnicas de Representación de Conocimiento]] &lt;br /&gt;
*[[Redes semánticas]] (Semantic Networks) &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp; &amp;amp;nbsp;[[Image:Funcionamiento.jpg|thumb|right|136x140px|Sistemas expertos.jpeg]] &lt;br /&gt;
*[[Frames]] &lt;br /&gt;
*[[Vision artificial]] &lt;br /&gt;
*[[Audicion artificial]] &lt;br /&gt;
*[[Lingüística computacional]] &lt;br /&gt;
*[[Procesamiento del lenguaje natural]] (Natural Language Processing) &lt;br /&gt;
*[[Minería de datos]] (Data Mining)&lt;br /&gt;
&lt;br /&gt;
== Véase también ==&lt;br /&gt;
*[[Simulación (Informática)]]&lt;br /&gt;
*[[Cibernética]]&lt;br /&gt;
*[[Singularidad tecnológica]]&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
*http://www.inteligenciaartificial.cl/ciencia/software/ia/inteligencia_artificial.htm &lt;br /&gt;
*http://grvc.us.es/rar/mainFrame/percepcion/percepcion.html&lt;br /&gt;
*http://cibernetica.wordpress.com&lt;br /&gt;
&lt;br /&gt;
== Fuente ==&lt;br /&gt;
&lt;br /&gt;
*Revista Iberoamericana de Inteligencia Artificial. No.18 (2003), pp. 51-63. &lt;br /&gt;
*JACOBSON, Ivar; RUMBAUGH, James; BOOCH, Grady, “El proceso unificado de desarrollo”.2004. Addison Wesley. Volumen II.&amp;lt;br&amp;gt; &lt;br /&gt;
*Revista Iberoamericana de Inteligencia Artificial.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[http://www.redvitec.edu.ar/novedades/index/inteligencia-artificial-desde-la-universidad-publica-a-facebook- Inteligencia artificial: desde la universidad pública a Faceboo] &lt;br /&gt;
&lt;br /&gt;
[[Category:Inteligencia_Artificial]]&lt;/div&gt;</summary>
		<author><name>Xander78</name></author>
		
	</entry>
</feed>