lunes, 1 de noviembre de 2010

Tecnica

Técnica
Para escribir programas que proporcionen los mejores resultados, cabe tener en cuenta una serie de detalles.
  • Corrección. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo
  • Claridad. Es muy importante que el programa sea lo más claro y legible posible, para facilitar así su desarrollo y posterior mantenimiento.
  • Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga utilizando de la mejor forma posible los recursos que utiliza.
  • Portabilidad. Un programa es portable cuando tiene la capacidad de poder ejecutarse en una plataforma, ya sea hardware o software, diferente a aquella en la que se elaboró.

Interpretación y compilación

Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:
  • lenguajes interpretados
  • lenguajes compilados

Lenguaje interpretado

Un lenguaje de programación es 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érprete), que traduce los comandos de los programas según sea necesario.

Lenguaje compilado

Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.

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. Ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).

Lenguajes de programación imperativos y funcionales

Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:
  • lenguajes imperativos;
  • lenguajes funcionales.

Lenguaje de programación imperativo

Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes  que permiten al programa regresar 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.

Lenguaje de programación funcional

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.

jueves, 28 de octubre de 2010

Ventajas y Desventajas

Ventajas y desventajas del Lenguaje Ensamblador
Una vez que hemos visto la evolición de los lenguajes, cabe preguntarse: ¿En estos tiempos "modernos", para qué quiero el Lenguaje Ensamblador?
El proceso  de evolución trajo consigo algunas desventajas, que ahora veremos como las ventajas de usar el Lenguaje Ensamblador, respecto a un lenguaje de alto nivel:
  • Velocidad
  • Eficiencia
  • Felxibilidad
Por otro lado, al ser un lenguaje más primitivo, el Ensamblador tiene ciertas desventajas respecto a los lenguajes de alto nivel:
  • Tiempo de programación
  • Programas fuente grandes
  • Peligro de afectar recursos 
  • Falta de portabilidad.
¿Cómo es que describimos un programa como números?
Se tenía el problema de representar las acciones que iba a realizar la computadora y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios.
La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación(opcode).Por ejemplo, una computadora, asociarle un número, que será su código
 de operación (opcode) . Por ejemplo, una calculadora programable simple podría asignar los opcodes :
1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE.

 

miércoles, 27 de octubre de 2010

Generaciones de Lenguajes Programadores

Evolución
  • Primera generación Los equipos de ordenador (el hardware) han pasado por cuatro generaciones, de las que las tres primeras (ordenadores con válvulas, transistores y circuitos integrados) están muy claras, la cuarta (circuitos integrados a gran escala) es más discutible.
Algo parecido ha ocurrido con la programación de los ordenadores (el software), que se realiza en lenguajes que suelen clasificarse en cinco generaciones, de las que las tres primeras son evidentes, mientras no todo el mundo está de acuerdo en las otras dos. Estas generaciones no coincidieron exactamente en el tiempo con las de hardware, pero sí de forma aproximada.
  Los primeros ordenadores se programaban directamente en código binario, que puede representarse mediante secuencias de ceros y unos sistema binario. Cada modelo de ordenador tiene su propio código, por esa razón se llama lenguaje máquina

  • Segunda generación: Los lenguajessimbólicos, asimismo propios de la máquina, simplifican la escritura de las instrucciones y las hacen más legibles.

  • Tercera generación: Los lenguajes de alto nivel  sustituyen las instrucciones simbólicas por códigos independientes de la máquina, parecidas al lenguaje humano o al de las Matemáticas

  • Cuarta generación: se ha dado este nombre a ciertas herramientas que permiten construir aplicaciones sencillas combinando piezas prefabricadas. Hoy se piensa que estas herramientas no son, propiamente hablando, lenguajes. Algunos proponen reservar el nombre de cuarta generación para la programación orientada a objetos.
Estos lenguajes tienen una estructura lo más parecido al idioma inglés, algunas características son:
- Acceso a base de datos.
- Capacidades Gráficas.
- Generación de código automáticamente.
- Puede programarse visualmente como Visual Basic (Programación Visual).

Quinta generación: se llama así a veces a los lenguajes de la inteligencia artificial, aunque con el fracaso del proyecto japonés de la quinta generación, el nombre ha caído en desuso.