PROGRAMACIÓN
Se llama programación a la creación de un programa de computadora, un conjunto concreto de instrucciones que una computadora puede ejecutar.
El programa se escribe en un lenguaje de programación, aunque también se pueda escribir directamente en lenguaje de máquina, con cierta dificultad. Un programa se puede dividir en diversas partes, que pueden estar escritas en lenguajes distintos.
LENGUAJE DE PROGRAMACIÓN
Un lenguaje de programación es una técnica estándar de comunicación que permite expresar las instrucciones que han de ser ejecutadas en una computadora.
Un lenguaje de programación permite a un programador especificar de manera precisa: sobre qué datos una computadora debe operar, cómo deben ser estos almacenados y transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias.
Un programa escrito en un lenguaje de programación necesita pasar por un proceso de compilación, es decir, ser traducido al lenguaje de máquina, o ser interpretado para que pueda ser ejecutado por el ordenador. También existen lenguajes de Script que son ejecutados a través de un intérprete y no necesitan compilación.
Los lenguajes de programación se pueden clasificar según:
Nivel de abstracción
Lenguajes de bajo nivel
Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel es, por excelencia, el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa.
Lenguajes de medio nivel
Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.
Lenguajes de alto nivel
Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática.
La forma de ejecución
Lenguajes compilados
Un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a código máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores.
Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).
Al usar un lenguaje compilado, el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código.
Lenguajes interpretados
Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la ejecución de la compilación, 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é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 proceso de los datos. No se graba el código objeto para utilizarlo posteriormente. La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina.
Paradigma de programación
El Paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro.
Lenguajes imperativos
Describen la programación en términos del estado del programa y sentencias que cambian dicho estado.
Lenguajes declarativos
Está basado en el desarrollo de programas especificando o declarando un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución. La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla. No existen asignaciones destructivas, y las variables son utilizadas con transparencia referencial
Transparencia referencial: Es un término utilizado en programación funcional que refiere la propiedad por la cual "cuando una expresión e del lenguaje es
sustituida por el valor v, y v es el resultado de evaluar e, la semántica del
programa no se altera".
Lenguajes orientados a aspectos
Relativamente reciente cuya intención es permitir una adecuada modularización de las aplicaciones y posibilitar una mejor separación de conceptos.
Lenguajes dirigidos por eventos
En este tipo de programación tanto la estructura como la ejecución de los programas van determinados por los sucesos que ocurran en el sistema o que ellos mismos provoquen.
Lenguajes con restricciones
Las relaciones entre las variables son expresadas en términos de restricciones (ecuaciones). Actualmente es usada como una tecnología de software para la descripción y resolución de problemas combinatorios particularmente difíciles, especialmente en las áreas de planificación y programación de tareas (calendarización).
Lenguajes estructurados
Es una forma de escribir programación de forma clara, para ello utiliza únicamente tres estructuras: secuencial, selectiva e iterativa; siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional (GOTO).
Lenguajes funcionales
Es un paradigma de programación declarativa basado en la utilización de funciones matemáticas.
Lenguajes orientados a objetos
En la Programación Orientada a Objetos (POO) se definen los programas en términos de "clases de objetos", objetos que son entidades que combinan estado (datos) comportamiento (procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto). La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas módulos más fáciles de escribir, mantener y reutilizar.
Ejemplos de lenguajes de programación:
ABAP
ABC
Ada
ActionScript
Afnix
ALGOL
APL
ASP
ASP.NET
AWK
B
BASIC
BCPL
Befunge
Boo
C
C++
C#
Caml
Clipper
CLIPS
CLU
COBOL
CORAL
D
Delphi
DIV
Dylan
Eiffel
Erlang
Ensamblador
Extended ML
Euphoria
Fénix
Flow-Matic
Forth
FORTRAN
Gambas
GML
GRAFCET
FP
Haskell
Icon
Inform
INTERCAL
ISWIM
J
Java
JavaScript
Joy
KWC
LADDER
Lexico
Lingo
Lisp
Logo
Lua
MAGIC
Mainsail
Mesa
Miranda
ML
Modula
Modula-2
Modula-3
Natural
NetREXX
Oberon
Object REXX
Objective-C
Ocaml
Occam
Oz
Pascal
Parlog
Perl
PHP
PL/1
Plankalkül
PostScript
PowerBuilder
Prolog
Python
Rapid
REXX
RPN
RPG
Ruby
Sail
Sather
Scheme
Scriptol
Seed7
Self
Sh
Simula
Smalltalk
Snobol
SPARK
Squeak
SR
Standard ML
TI-Basic
TCL
VBA
Visual Basic
Visual C++
Visual DialogScript
Visual Foxpro
Yurix
ZPL
LENGUAJES DE PROGRAMACIÓN ORIENTADOS A OBJETOS
Se le llama así a cualquier lenguaje de programación que implemente los conceptos definidos por la programación orientada a objetos.
La programación fue hecha en una manera secuencial o lineal, es decir una serie de pasos consecutivos con estructuras consecutivas y bifurcaciones.
Los lenguajes basados en esta forma de programación ofrecían ventajas al principio, pero el problema ocurre cuando los sistemas se vuelven complejos. Estos programas escritos al estilo “espagueti” no ofrecen flexibilidad y el mantener una gran cantidad de líneas de código en un sólo bloque se vuelve una tarea complicada.
Frente a esta dificultad aparecieron los lenguajes basados en la programación estructurada. La idea principal de esta forma de programación es separar las partes complejas del programa en módulos o segmentos que sean ejecutados conforme se requieran. De esta manera tenemos un diseño modular, compuesto por módulos independientes que puedan comunicarse entre sí. Poco a poco este estilo de programación fue reemplazando al estilo impuesto por la programación lineal.
La evolución que se fue dando en la programación se orientaba siempre a ir descomponiendo más el programa. Este tipo de descomposición conduce directamente a la programación orientada a objetos.
Pues la creciente tendencia de crear programas cada vez más grandes y complejos llevó a los desarrolladores a crear una nueva forma de programar que les permita crear sistemas de niveles empresariales y con reglas de negocios muy complejas. Para estas necesidades ya no bastaba la programación estructurada ni mucho menos la programación lineal. Es así como aparece la programación orientada a objetos (POO). La POO viene de la evolución de la programación estructurada; básicamente la POO simplifica la programación con la nueva filosofía y nuevos conceptos que tiene. La POO se basa en la dividir el programa en pequeñas unidades lógicas de código. A estas pequeñas unidades lógicas de código independientes se les llama objetos.
Ventajas:
Fomenta la reutilización y extensión del código
Permite crear sistemas más complejos
Relacionar el sistema al mundo real
Facilita la creación de programas visuales
Construcción de prototipos
Agiliza el desarrollo de software
Facilita el trabajo en equipo
Facilita el mantenimiento del software
SISTEMA MANEJADOR DE BASES DE DATOS (DBMS)
Una base de datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su posterior uso.
Los Sistemas de gestión de base de datos son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.
El propósito general de los sistemas de gestión de base de datos es el de manejar de manera clara, sencilla y ordenada un conjunto de información.
Existen distintos objetivos que deben cumplir los DBMS los cuales son:
Ventajas:
Facilidad de manejo de grandes volúmenes de información.
Gran velocidad en muy poco tiempo.
Independencia del tratamiento de información.
Seguridad de la información (acceso a usuarios autorizados), protección de información, de modificaciones, inclusiones, consulta.
No hay duplicidad de información, comprobación de información en el momento de introducir la misma.
Integridad referencial el terminar los registros.
Desventajas:
Salario del administrador de la base de datos es costoso.
El mal diseño de esta puede originar problemas a futuro.
Un mal adiestramiento a los usuarios puede originar problemas a futuro.
Si no se encuentra un manual del sistema no se podrán hacer relaciones con facilidad.
Generan campos vacíos en exceso.
El mal diseño de seguridad genera problemas en esta.