FUNDAMENTOS: Lenguajes y paradigmas que debes saber
lunes, 21 de octubre de 2013
Programacion orientada a objetos

La orientación a objetos es un paradigma de programación que facilita la creación de software de calidad por sus factores que potencian el mantenimiento, la extensión y la reutilización del software generado bajo este paradigma.
La programación orientada a objetos trata de amoldarse al modo de pensar del hombre y no al de la máquina. Esto es posible gracias a la forma racional con la que se manejan las abstracciones que representan las entidades del dominio del problema, y a propiedades como la jerarquía o el encapsulamiento.
El elemento básico de este paradigma no es la función (elemento básico de la programación estructurada), sino un ente denominado objeto. Un objeto es la representación de un concepto para un programa, y contiene toda la información necesaria para abstraer dicho concepto: los datos que describen su estado y las operaciones que pueden modificar dicho estado, y determinan las capacidades del objeto.
Java incorpora el uso de la orientación a objetos como uno de los pilares básicos de su lenguaje.

Algunos lenguajes de programacion orientada a objetos son: C++, C#, Python, Java, JavaScript, Perl, PHP.
Programacion Logica
La programación lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el diseño de lenguajes de programación; no debe confundirse con la disciplina de la lógica computacional.

La programación lógica es un tipo de paradigma de programación dentro del paradigma de programación declarativa. El resto de los subparadigmas de programación dentro de la programación declarativa son: programación funcional, programación basada en restricciones, programas DSL (de dominio específico) e híbridos. La programación lógica gira en torno al concepto de predicado, o relación entre elementos. La programación funcional se basa en el concepto de función (que no es más que una evolución de los predicados), de corte más matemático.
Un lenguaje de programacion logica (declarativo) es: SQL.
Programacion Funcional
En
ciencias de la computación, la programación funcional es un paradigma de
programación declarativa basado en la utilización de funciones aritméticas que
no maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en
contraste con el estilo de programación imperativa, que enfatiza los cambios de
estado. La programación funcional tiene sus raices en el cálculo lambda, un
sistema formal desarrollado en los 1930s para investigar la definición de
función, la aplicación de las funciones y la recursión. Muchos lenguajes de
programación funcionales pueden ser vistos como elaboraciones del cálculo
lambda.
En
la práctica, la diferencia entre una función matemática y la noción de una
"función" utilizada en la programación imperativa es que las
funciones imperativas pueden tener efectos secundarios, al cambiar el valor de
calculos realizados previamente. Por esta razón carecen de transparencia
referencial, es decir, la misma expresión lingüística puede resultar en valores
diferentes en diferentes momentos dependiendo del estado del programa siendo
ejecutado. Con código funcional, en contraste, el valor generado por una
función depende exclusivamente de los argumentos alimentados a la función. Al
eliminar los efectos secundarios se puede entender y predecir el comportamiento
de un programa mucho más fácilmente, y esta es una de las principales
motivaciones para utilizar la programación funcional.
Entre otros lenguajes que se podrían utilizar para programación funcional se podrían incluir a Perl, pues, aunque es un lenguaje de propósito muy general, se pueden realizar programas usando exclusivamente funciones definidas por el usuario; así como Python, como lenguaje que incorpora el paradigma funcional
Programacion Imperativa
La programación imperativa es la forma natural de programar un computador, es el estilo de programación que se utiliza en el ensamblador, el estilo más cercano a la arquitectura del computador.Características de la arquitectura clásica de Von Newmann:
- memoria donde se almacenan los datos (referenciables por su dirección de memoria) y el programa
- unidad de control que ejecuta las instrucciones del programa (contador del programa).
El lenguaje C# (Sharp)
El lenguaje de programación C# fue creado por el danés Anders Hejlsberg que diseño también los lenguajes Turbo Pascal y Delphi. El C# (pronunciado en inglés “C sharp” o en español “C sostenido”) es un lenguaje de programación orientado a objetos. Con este nuevo lenguaje se quiso mejorar con respecto de los dos lenguajes anteriores de los que deriva el C, y el C++.
Con el C# se pretendió que incorporase las ventajas o mejoras que tiene el lenguaje JAVA. Así se consiguió que tuviese las ventajas del C, del C++, pero además la productividad que posee el lenguaje JAVA y se le denomino C#.
Algunas de las características del lenguaje de programación C# son: Su código se puede tratar íntegramente como un objeto. Su sintaxis es muy similar a la del JAVA. Es un lenguaje orientado a objetos y a componentes. Armoniza la productividad del Visual Basic con el poder y la flexibilidad del C++. Ahorramos tiempo en la programación ya que tiene una librería de clases muy completa y bien diseñada.

Tipos de datos
C# contiene dos categorías generales de tipos de datos integrados: tipos de valor y tipos de referencia. El término tipo de valor indica que esos tipos contienen directamente sus valores.
Tipos para definir números enteros:
| Tipo de datos de enteros | ||||
|---|---|---|---|---|
| Tipo | Equivalente BCL | Tamaño | Rango | Significado |
byte | System.Byte | 8-bit (1-byte) | 0 a 255 | Entero sin signo |
sbyte | System.SByte | 8-bit (1-byte) | -128 a 127 | Entero con signo |
short | System.Int16 | 16-bit (2-byte) | -32.768 a 32.767 | Entero corto con signo |
ushort | System.UInt16 | 16-bit (2-byte) | 0 a 65.535 | Entero corto sin signo |
int | System.Int32 | 32-bit (4-byte) | -2.147.483.648 a 2.147.483.647 | Entero medio con signo |
uint | System.UInt32 | 32-bit (4-byte) | 0 a 4.294.967.295 | Entero medio sin signo |
long | System.Int64 | 64-bit (8-byte) | -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 | Entero largo con signo |
ulong | System.UInt64 | 64-bit (8-byte) | 0 a 18.446.744.073.709.551.615 | Entero largo sin signo |
Los tipos de coma flotante pueden representar números con componentes fraccionales. Existen dos clases de tipos de coma flotante: float y double. El tipo double es el más utilizado porque muchas funciones matemáticas de la biblioteca de clases de C# usan valores double. Quizá, el tipo de coma flotante más interesante de C# es decimal, dirigido al uso de cálculos monetarios. La aritmética de coma flotante normal está sujeta a una variedad de errores de redondeo cuando se aplica a valores decimales. El tipo decimal elimina estos errores y puede representar hasta 28 lugares decimales.
Standard Query Language (SQL)

SQL
(Standar Query Lenguaje) es un lenguaje estandarizado de base de datos, el cual nos permite realizar tablas y obtener datos de ella de manera muy sencilla. Para exponer mas
claramente los conceptos se realizaran ejemplo sobre relaciones que se crearan
aquí para entender mejor como funciona SQL.
Cuando aquí nos refiramos a relación estamos hablando mas concretamente a la tabla de datos en si, y sus atributos serán los campos de la tabla. Como ejemplo la siguiente relación ( tabla ) la llamaremos persona y sus atributos ( campos ) son nombre, apellido Y DNI
Cuando aquí nos refiramos a relación estamos hablando mas concretamente a la tabla de datos en si, y sus atributos serán los campos de la tabla. Como ejemplo la siguiente relación ( tabla ) la llamaremos persona y sus atributos ( campos ) son nombre, apellido Y DNI
PERSONA
|
NOMBRE
|
APELLIDO
|
DNI
|
1
|
MARTIN
|
MARQUESI
|
26125988
|
2
|
PABLO
|
MARQUESI
|
25485699
|
3
|
ROBERTO
|
SANCHEZ
|
20566401
|
4
|
ESTEFANIA
|
GUISSINI
|
27128064
|
5
|
RUBEN
|
ALEGRATO
|
24238975
|
6
|
SANDRA
|
BRITTE
|
25483669
|
7
|
MELISA
|
ARDUL
|
27456224
|
8
|
SOLEDAD
|
MICHELLI
|
29889656
|
9
|
BETANIA
|
MUSACHEGUI
|
27128765
|
10
|
JUAN
|
SERRAT
|
28978845
|
Características generales del SQL
El SQL es un lenguaje de
acceso a bases de datos que explota la flexibilidad y potencia de los sistemas
relacionales y permite así gran variedad de operaciones.
Es un lenguaje declarativo de
"alto nivel" o "de no procedimiento" que, gracias a su
fuerte base teórica y su orientación al manejo de conjuntos de registros —y no a
registros individuales— permite una alta productividad en codificación y la
orientación a objetos. De esta forma, una sola sentencia puede equivaler a uno
o más programas que se utilizarían en un lenguaje de bajo nivel orientado a
registros. SQL también tiene las siguientes características:
· Lenguaje de definición de datos: El LDD de SQL proporciona comandos para la
definición de esquemas de relación, borrado de relaciones y modificaciones de
los esquemas de relación.
· Lenguaje interactivo de manipulación de datos: El LMD de SQL
incluye lenguajes de consultas basado tanto en álgebra relacional como en
cálculo relacional de tuplas.
· Integridad: El LDD de SQL incluye comandos para especificar
las restricciones de integridad que deben cumplir los datos almacenados en la
base de datos.
· Definición de vistas: El LDD incluye comandos para definir las vistas.
· Control de transacciones: SQL tiene comandos para especificar el comienzo y
el final de una transacción.
· SQL incorporado y dinámico: Esto quiere decir que se pueden incorporar
instrucciones de SQL en lenguajes de programación como: C++, C, Java, Cobol,
Pascal y Fortran.
· Autorización: El LDD incluye comandos para especificar los
derechos de acceso a las relaciones y a las vistas.
Tipos de Datos
Algunos de los tipos de datos
básicos de SQL son:
· Date:
una fecha de calendario que contiene el año (de cuatro cifras), el mes y el
día.
· Time:
La hora del día en horas minutos segundos (el valor predeterminado es 0).
· Timestamp:
la combinación de Date y Time.
Optimización
Como ya se dijo antes, y suele
ser común en los lenguajes de acceso a bases de datos de alto nivel, el SQL es
un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y no
cómo conseguirlo, por lo que una sentencia no establece explícitamente un orden
de ejecución.
El orden de ejecución interno
de una sentencia puede afectar gravemente a la eficiencia del SGBD, por lo que
se hace necesario que éste lleve a cabo una optimización antes de su ejecución.
Muchas veces, el uso de índices acelera una instrucción de consulta, pero
ralentiza la actualización de los datos. Dependiendo del uso de la aplicación,
se priorizará el acceso indexado o una rápida actualización de la información.
La optimización difiere sensiblemente en cada motor de base de datos y depende
de muchos factores.
Existe una ampliación de SQL
conocida como FSQL (Fuzzy SQL, SQL difuso) que permite el acceso a bases de datos difusas, usando la lógica difusa. Este lenguaje ha sido implementado a nivel experimental
y está evolucionando rápidamente.
Características generales del SQL
Suscribirse a:
Entradas (Atom)

