You are on page 1of 12

LENGUAJE DE PROGRAMACIÓN

 Los lenguajes de programación son lenguajes creado por el ser humano para
poder comunicarse con las computadoras. Estos son un conjunto de símbolos y
palabras que permiten al usuario de una computadora darle instrucciones y
órdenes para que esta las pueda realizar.
 Los lenguajes de programación son el medio de comunicación entre los
programadores o los usuarios y la computadora. Con ellos se construyen los
programas que después serán ejecutados por la computadora.
 Es un conjunto de símbolos junto a un conjunto de reglas para combinar dichos
símbolos que se usan para expresar programas. Constan de un léxico, una
sintaxis y una semántica.
 “Un conjunto de caracteres, símbolos, representaciones y reglas que permiten
introducir y tratar la información en un ordenador”, este tipo de lenguaje lo
clasificaríamos como un lenguaje artificial.

SEMÁNTICA: Reglas que permiten determinar el significado de cualquier construcción del
lenguaje. Especifica el significado de un programa sintácticamente válido escrito en el
lenguaje. Las reglas que determina el significado de los programas constituyen la
semántica de los lenguajes de programación.
SINTAXIS: Reglas que indican cómo realizar las construcciones del lenguaje
Son las reglas con las que deben unirse los elementos de un lenguaje de programación
(términos y puntuación) para construir frases (líneas de código).
La sintaxis de un lenguaje de programación se define como el conjunto de reglas que
deben seguirse al escribir el código fuente de los programas para considerarse como
correctos para ese lenguaje de programación.
TRADUCTOR
Un traductor es un programa que traduce o convierte desde un texto o programa escrito
en un lenguaje fuente hasta un texto o programa escrito en un lenguaje destino
produciendo, si cabe, mensajes de error. Los traductores engloban tanto al compilador
como al intérprete.
Los traductores son programas
que traducen los programas en
código fuente, escritos en
lenguajes de alto nivel, a
programas escritos en lenguaje
máquina. Los traductores
pueden ser de dos tipos:
compiladores e intérpretes


COMPILADORES
 Es aquel traductor que tiene como entrada una sentencia en lenguaje formal y
como salida tiene un fichero ejecutable, es decir, hace una traducción de alto nivel
a código máquina.
Para cada lenguaje de programación se requiere un compilador separado. El
compilador traduce todo el programa antes de ejecutarlo. Los compiladores son,
pues, programas de traducción insertados en la memoria por el sistema operativo
para convertir programas de cómputo en pulsaciones electrónicas ejecutables
(lenguaje de máquina).
 Un compilador es un programa que lee el código escrito en un lenguaje (lenguaje
origen), y lo traduce en un programa equivalente escrito en otro lenguaje (lenguaje
objetivo). Como una parte fundamental de este proceso de traducción, el
compilador le hace notar al usuario la presencia de errores en el código fuente del
programa. Vea la siguiente figura.

 Un compilador acepta programas escritos en un lenguaje de alto nivel y los
traduce a otro lenguaje, generando un programa equivalente independiente, que
puede ejecutarse tantas veces como se quiera.





Los programas interpretados suelen ser más lentos que los compilados, pero los
intérpretes son más flexibles como entornos de programación y depuración. Comparando
su actuación con la de un ser humano, un compilador equivale a un traductor profesional
que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que
un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que
oye, sin dejar constancia por escrito.
Ventajas de compilar frente a interpretar:
 Se compila una vez, se ejecuta n veces.
 En bucles, la compilación genera código equivalente al bucle, pero interpretándolo
se traduce tantas veces una línea como veces se repite el bucle.
 El compilador tiene una visión global del programa, por lo que la información de
mensajes de error es mas detallada. Ventajas del intérprete frente al compilador:
 Un intérprete necesita menos memoria que un compilador. En principio eran más
abundantes dado que los ordenadores tenían poca memoria.
 Permiten una mayor interactividad con el código en tiempo de desarrollo.



Ventajas del intérprete frente al compilador:
 El programa se puede ejecutar de inmediato, sin esperar a ser compilado.
 Puede ser interrumpido con facilidad.
 Puede ser rápidamente modificado y ejecutado nuevamente.
 Resultan muy apropiados durante la fase de desarrollo de un programa, ya que la
compilación no permite la ejecución paso a paso del programa y con ello impide la
edición seguimiento y depuración del programa.
Desventajas del intérprete frente al compilador:
 La ejecución es más lenta, pues cada instrucción debe ser traducida a código
máquina tantas veces como sea ejecutada.
 No son adecuados en la fase de explotación del programa ya que el proceso de
interpretación se ha de repetir cada vez que se ejecuta el programa, mientras que
con la compilación, una vez obtenido el programa en leguaje máquina éste puede
ser ejecutado sin necesidad de compilarlo de nuevo.
La diferencia fundamental es la siguiente:
 Los compiladores realizan la traducción en tiempo de desarrollo. Es decir, el
programa aún no se está ejecutando. El compilador recibe todo el código fuente, lo
analiza, lo optimiza y lo traduce a lenguaje máquina dejando un programa
completo listo para su ejecución.
 Los intérpretes realizan la traducción en tiempo de ejecución. Es decir, a medida
que el programa se va ejecutando, el intérprete va traduciendo instrucciones al
lenguaje máquina.
INTERPRETE
 Un intérprete es un traductor de lenguaje, igual que un compilador, pero difiere de
éste en que ejecuta el programa fuente inmediatamente, en vez de generar un
código objeto que se ejecuta después de que se completa la traducción. En
principio, cualquier lenguaje de programación se puede interpretar o compilar, pero
se puede preferir un intérprete a un compilador dependiendo del lenguaje que se
esté usando y de la situación en la cual se presenta la traducción.
 Un intérprete es un programa que analiza y ejecuta simultáneamente un programa
escrito en un lenguaje fuente.
En la Figura 1 se presenta el esquema general de un intérprete visto como una caja
negra. Cualquier intérprete tiene dos entradas: un programa P escrito en un lenguaje
fuente LF (en lo sucesivo, se denotará P/LF) junto con los datos de entrada; a partir de
dichas entradas, mediante un proceso de interpretación va produciendo unos resultados.


Los compiladores, a diferencia de los intérpretes, transforman el programa a un
programa equivalente en un código objeto (fase de compilación), y en un segundo paso
generan los resultados a partir de los datos de entrada (fase de ejecución).








Los intérpretes no producen un lenguaje objetivo como en los compiladores. Un intérprete
lee el código como está escrito e inmediatamente lo convierte en acciones; es decir, lo
ejecuta en ese instante.

Diferencia entre compilador e intérprete
Los compiladores difieren de los intérpretes en varios aspectos:
 Un programa que ha sido compilado puede correr por sí sólo, pues en el proceso
de compilación se lo transformo en otro lenguaje (lenguaje máquina).
 Un intérprete traduce el programa cuando lo lee, convirtiendo el código del
programa directamente en acciones. La ventaja del intérprete es que dado
cualquier programa se puede interpretar en cualquier plataforma (sistema
operativo). En cambio, el archivo generado por el compilador solo funciona en la
plataforma en donde se le ha creado. Sin embargo, hablando de la velocidad de
ejecución, un archivo compilado es de 10 a 20 veces más rápido que un archivo
interpretado.


“Un compilador es un programa que lee un programa escrito en un lenguaje de
programación y lo traduce a un programa equivalente en otro lenguaje, el lenguaje objeto”

SISTEMA OPERATIVO
Una de las principales funciones del S. O.es ocultar toda esta complejidad y brindar al
programador un conjunto más conveniente de instrucciones para trabajar.
KERNEL
 Es el principal responsable de facilitar a los distintos programas acceso seguro al
hardware de la computadora o en forma básica, es el encargado de gestionar
recursos, a través de servicios de llamada al sistema.
Decide qué programa podrá hacer uso de un dispositivo de hardware y durante
cuánto tiempo, lo que se conoce como multiplexado.
 Parte esencial de un sistema operativo que provee los servicios más básicos del
sistema. Se encarga de gestionar los recursos como el acceso seguro al hardware
de la computadora. Se encarga también del multiplexado, determinando qué
programa accederá a un determinado hardware si dos o más quieren usarlo al
mismo tiempo. El kernel también ofrece una serie de abstracciones del hardware
para que los programadores no tengan que acceder directamente al hardware,
proceso que puede ser complicado.
 Es el software responsable de facilitar a los distintos programas acceso seguro al
hardware de la computadora.
 Es el encargado de que el software y el hardware de tu ordenador puedan trabajar
juntos.
REDES DE COMPUTADORAS
 Una red está formada por una serie de estaciones de trabajo y por un conjunto de
dispositivos como impresoras, escáneres, etc. Todos estos dispositivos se
encuentran coordinados por máquinas denominadas servidores. Además, existen
diferentes dispositivos que añaden funcionalidades a las redes, como los rotures,
switches y hubs. Cada dispositivo activo que interviene en la comunicación de
forma autónoma se denomina nodo. Todos estos dispositivos que conforman la
red se comunican entre sí por medios de transmisión físicos (cables coaxiales, de
par trenzado, de fibra óptica, etc.) o basados en ondas (redes inalámbricas),
aunque si el tamaño de la red lo exige pueden hacerlo mediante líneas telefónicas,
de radio de largo alcance o por satélite.
Debe ser
Confiable: Estar disponible cuando se le requiera, poseer velocidad de respuesta
adecuada.
Confidencial: Proteger los datos sobre los usuarios de ladrones de información.
Integra: En su manejo de información.

 Una red informática es un conjunto de dispositivos interconectados entre sí a
través de un medio, que intercambian información y comparten recursos.
TIPOS DE REDES
Redes de área local
Las redes de área local (generalmente conocidas como LANs) son redes de propiedad
privada que se encuentran en un solo edificio o en un campus de pocos kilómetros de
longitud. Se utilizan ampliamente para conectar computadoras personales y estaciones de
trabajo en oficinas de una empresa y de fábricas para compartir recursos (por ejemplo,
impresoras) e intercambiar información.

Red de área metropolitana
Una MAN(Red de área metropolitana)•Conecta diversas LAN cercanas geográficamente
(en un área de alrededor de cincuenta kilómetros) entre sí a alta velocidad. Por lo tanto,
una MAN permite que dos nodos remotos se comuniquen como si fueran parte de la
misma red de área local
Red de área extensa
Una WAN(Red de área extensa)•Conecta múltiples LAN entre sí a través de grandes
distancias geográficas. Las WAN funcionan con routers, que pueden "elegir" la ruta más
apropiada para que los datos lleguen a un nodo de la red.

PROTOCOLOS DE RED
 Podemos definir un protocolo como el conjunto de normas que regulan la
comunicación (establecimiento, mantenimiento y cancelación) entre los distintos
componentes de una red informática. Existen dos tipos de protocolos: protocolos
de bajo nivel y protocolos de red.
Los protocolos de bajo nivel controlan la forma en que las señales se transmiten
por el cable o medio físico. En la primera parte del curso se estudiaron los
habitualmente utilizados en redes locales (Ethernet y Token Ring). Aquí nos
centraremos en los protocolos de red.
Los protocolos de red organizan la información (controles y datos) para su
transmisión por el medio físico a través de los protocolos de bajo nivel.
 Conjunto de normas standard que especifican el método para enviar y recibir datos
entre varios ordenadores. Es una convención que controla o permite la conexión,
comunicación, y transferencia de datos entre dos puntos finales.
 En Informática y Telecomunicaciones, un protocolo es una convención, o estándar,
o acuerdo entre partes que regula la conexión, la comunicación y la transferencia
de datos entre dos sistemas. En su forma más simple, un protocolo se puede
definir como las reglas que gobiernan la semántica (significado de lo que se
comunica), la sintaxis (forma en que se expresa) y la sincronización (quién y
cuándo transmite) de la comunicación. Los protocolos pueden estar
implementados bien en hardware (tarjetas de red), software (drivers), o una
combinación de ambos.

TOPOLOGIA
 Se llama topología de una Red al patrón de conexión entre sus nodos, es decir, a
la forma en que están interconectados los distintos nodos que la forman.
 Es el arreglo físico o lógico en el cual los dispositivos o nodos de una red (e.g.
computadoras, impresoras, servidores, hubs, switches, enrutadores, etc.) se
interconectan entre sí sobre un medio de comunicación. Está compuesta por dos
partes, la topología física, que es la disposición real de los cables (los medios) y la
topología lógica, que define la forma en que los hosts acceden a los medios. Las
topologías físicas que se utilizan comúnmente son de bus, de anillo, en estrella, en
estrella extendida, jerárquica y en malla.
 La topología de una red define su estructura. Pueden establecerse la topología
física, que es la forma en que se conectan los terminales, dispositivos y recursos
de la red, y la topología lógica, que es la forma de acceso a la información de la
red. La elección de una topología u otra influye en gran medida en el
funcionamiento y configuración de la red.
MODELO OSI
El modelo de referencia para la interconexión de sistemas abiertos interconexión de
sistemas abiertos, es un estándar internacional para la conectividad en red.
Sirve para desarrollo, estudio y comparación, la implementación de los protocolos.
Los hardware y software diseñan sus productos de red basados en las especificaciones
del modelo osi.
Divide la comunicación de red en 7 capas
1.Física
2.Enlace de datos
3.Red
4.Transporte
INTELIGENCIA ARTIFICIAL
La inteligencia artificial es un área multidisciplinaria que, a través de ciencias como la
informática, la lógica y la filosofía, estudia la creación y diseño de entidades capaces de
razonar por sí mismas utilizando como paradigma la inteligencia humana.
ALGORITMOS GENÉTICOS
Los Algoritmos Genéticos (AGs) son métodos adaptativos que pueden usarse para
resolver problemas de búsqueda y optimización.
Están basados en el proceso genético de los organismos vivos. A lo largo de las
generaciones, las poblaciones evolucionan en la naturaleza de acorde con los principios
de la selección natural y la supervivencia de los más fuertes, postulados por Darwin.
Por imitación de este proceso, los Algoritmos Genéticos son capaces de ir creando
soluciones para problemas del mundo real. La evolución de dichas soluciones hacia
5.Sesión
6.Presentación
7.Aplicación

valores óptimos del problema depende en buena medida de una adecuada codificación de
las mismas.
Un algoritmo genético consiste en una función matemática o una rutina de software que
toma como entradas a los ejemplares y retorna como salidas cuales de ellos deben
generar descendencia para la nueva generación.
Un algoritmo genético es un método de búsqueda que imita la teoría de la evolución
biológica de Darwin para la resolución de problemas. Para ello, se parte de una población
inicial de la cual se seleccionan los individuos más capacitados para luego reproducirlos y
mutarlos para finalmente obtener la siguiente generación de individuos que estarán más
adaptados que la anterior generación.
ROBÓTICA
La robótica es la rama de la tecnología que se dedica al diseño, construcción, operación,
disposición estructural, manufactura y aplicación de los robots.
La robótica combina diversas disciplinas como son: la mecánica, la electrónica, la
informática, la inteligencia artificial, la ingeniería de control y la física.[3] Otras áreas
importantes en robótica son el álgebra, los autómatas programables, la animatrónica y las
máquinas de estados.
La Robótica es la ciencia que trata acerca del diseño y la implementación de maquinas
capaces de emular el comportamiento de un ser vivo, se sirve de otras áreas como la
inteligencia artificial, la mecánica, electrónica, la lógica, el álgebra, para poder hacer la
complicada tarea de resolver problemas de la mejor manera posible.
SISTEMAS EXPERTOS
Los sistemas expertos son llamados así porque emulan el razonamiento de un experto en
un dominio concreto, y en ocasiones son usados por éstos. Con los sistemas expertos se
busca una mejor calidad y rapidez en las respuestas, dando así lugar a una mejora de la
productividad del propio experto al usar este tipo de sistemas informáticos.
Los Sistemas Expertos, rama de la Inteligencia Artificial, son sistemas informáticos que
simulan el proceso de aprendizaje, de memorización, de razonamiento, de comunicación
y de acción en consecuencia de un experto humano en cualquier rama de la ciencia.
SOFTWARE-DEFINICION
Esta constituido por el conjunto de programas ejecutables que posee el sistema
informático






REDES NEURONALES
Una red neuronal es un sistema compuesto de muchos elementos procesadores
simples operando en paralelo, cuya función es determinada por la estructura de la
red, fuerza en las conexiones y el procesamiento realizado por los elementos
computacionales en los nodos."
Es un procesamiento distribuido masivamente paralelo que tiene una tendencia
natural para almacenar conocimiento empírico y hacerlo disponible para el uso.
Las neuronas son un tipo de células del sistema nervioso cuya principal función es
la excitabilidad eléctrica de su membrana plasmática; están especializadas en la
recepción de estímulos y conducción del impulso nervioso (en forma de potencial
de acción) entre ellas o con otros tipos celulares.