apuntes unidad i de programacion logica y funcional

7
Página 2 TEMA : “CONCEPTOS BASICOS” Unidad I 1.1. Estilos de programación. 1.1. Estilos de programación. Estilo de programación (también llamado estándares de código o convención de código) El estilo de programación es frecuentemente dependiente del lenguaje de programación que se haya elegido para escribir. Por ejemplo el estilo del lenguaje de programación C variará con respecto al del lenguaje BASIC. Criterios para un buen estilo de programación: 1) Nombres significativos para variables, controles, y procedimientos. 2) Identación (sangrías) y espacios apropiados en el código. 3) documentar el código (poner comentarios para aclarar). 4) Módulos adaptables. 5) Minimizar el acoplamiento. 6) Minimizar alcance de los datos hasta donde sea posible. Estilo K&R es el más utilizado en el lenguaje C y PHP, el estilo fue llamado de esta forma porque fue usado por Kernighan y Ritchies en su libro The C Programming Lenguage. Estilo Allman fue definido por Eric Allman, se trata de crear una nueva línea para las llaves, e identificar el código debajo de ellas. Estilo BSD KNF también conocido como estilo Kernel Normal From, es la manera más usada para el código de la distribución del software del sistema operativo de Berkeley. Estilo Whitesmiths también llamado estilo wishart, se coloca las llaves asociadas con la instrucciones de control. Otros estilos de programación más comunes: Imperativo o por procedimientos: es considerado el más común y está representado es decir elogiado, por ejemplo, por C, BASIC o Pascal. Funcional: está representado por Scheme o Haskell. Este es un caso del paradigma declarativo.

Upload: andy-gaytan

Post on 28-Sep-2015

223 views

Category:

Documents


12 download

DESCRIPTION

guia examen unidad 1

TRANSCRIPT

tema : CONCEPTOS BASICOStema : CONCEPTOS BASICOSUnidad I

1.1. Estilos de programacin.

Estilo de programacin (tambin llamado estndares de cdigo o convencin de cdigo) El estilo de programacin es frecuentemente dependiente del lenguaje de programacin que se haya elegido para escribir. Por ejemplo el estilo del lenguaje de programacin C variar con respecto al del lenguaje BASIC.

Criterios para un buen estilo de programacin:

1) Nombres significativos para variables, controles, y procedimientos.

2) Identacin (sangras) y espacios apropiados en el cdigo.

3) documentar el cdigo (poner comentarios para aclarar).

4) Mdulos adaptables.

5) Minimizar el acoplamiento.

6) Minimizar alcance de los datos hasta donde sea posible.

Estilo K&R es el ms utilizado en el lenguaje C y PHP, el estilo fue llamado de esta forma porque fue usado por Kernighan y Ritchies en su libro The C Programming Lenguage.

Estilo Allman fue definido por Eric Allman, se trata de crear una nueva lnea para las llaves, e identificar el cdigo debajo de ellas.

Estilo BSD KNF tambin conocido como estilo Kernel Normal From, es la manera ms usada para el cdigo de la distribucin del software del sistema operativo de Berkeley.

Estilo Whitesmiths tambin llamado estilo wishart, se coloca las llaves asociadas con la instrucciones de control.

Otros estilos de programacin ms comunes:

Imperativo o por procedimientos: es considerado el ms comn y est representado es decir elogiado, por ejemplo, por C, BASIC o Pascal.

Funcional: est representado por Scheme o Haskell. Este es un caso del paradigma declarativo.

Lgico: est representado por Prolog. Este es otro caso del paradigma declarativo.

Declarativo: por ejemplo la programacin funcional, la programacin lgica, o la combinacin lgico-funcional.

Orientado a objetos: est representado por Smalltalk, un lenguaje completamente orientado a objetos.

Programacin dinmica: est definida como el proceso de romper problemas en partes pequeas para analizarlos.

Programacin multiparadigma: es el uso de dos o ms paradigmas dentro de un programa.

1.2. Evaluacin de expresiones.

Una expresin es una combinacin de operandos y operadores. La evaluacin de una expresin consiste en reducirla, esto es, realizar todas las operaciones contenidas en ella para obtener un valor final.

Las expresiones estn compuestas de operadores, operandos, parntesis y llamadas a funciones. Los operadores pueden ser:

Unarios: Cuando tan solo tienen un operando. Son operadores prefijos.

Binarios: 2 Operandos. Son operadores infijos.

Ternarios: 3 operandos.

ORDEN DE LA EVALUACIN DE LOS OPERADORES.

El orden en que se evalan los operandos viene dado por unas reglas:

Reglas de procedencia

Reglas de asociatividad

Uso de parntesis

EVALUACIN DE EXPRESIONES

Toda expresin regresa un valor. Si hay ms de un operador, se evalan primero operadores mayor precedencia, en caso de empate, se aplica regla asociatividad.

Para evaluar una expresin no hay que hacer nada del otro mundo, pues es bien sencillo. Slo hay que saber sumar, restar, si un nmero es mayor que otro

Hay tres reglas de prioridad a seguir para evaluar una expresin:

Primero, los parntesis (si tiene)

Despus, seguir el orden de prioridad de operadores (primero *,^,div, mod/) luego (+ y -)

Por ltimo, si aparecen dos o ms operadores iguales, se evalan de izquierda a derecha.

Las expresiones son secuencias de constantes y/o variables separadas por operadores vlidos.

Para evaluar una expresin es necesario conocer la prioridad de los operadores, con lo cual se puede determinar cul operacin se va a realizar antes que las dems.

1.3. Definicin de funciones.

Un problema complejo se puede dividir en pequeos subproblemas ms sencillos. Estos subproblemas se conocen como Mdulos y su complementacin en un lenguaje se llama subprograma (procedimientos y funciones).

Un subprograma realiza las mismas acciones que un programa, sin embargo, un subprograma lo utiliza solamente un programa para un propsito especfico.

Un subprograma recibe datos de un programa y le devuelve resultados (el programa llama o invoca al subprograma, este ejecuta una tarea especfica y devuelve el control al programa que lo llamo).

Funcin: Una funcin en matemticas, es una operacin que toma un o ms valores (argumentos) y devuelve un resultado (valor de la funcin para los argumentos dados).

Una definicin de funcin se presenta de la siguiente manera:

Funcin nombre_funcion (p1, p2, , pn)

Inicio

Bloque de instrucciones

Fin

Dnde:

Funcin Es la palabra clave que nos indica una definicin de funcin.

Nombre_funcion .. Es el identificador con el cual se reconoce a la funcin en el cuerpo del algoritmo principal.

P1,p2,,pn Es el grupo de parmetros que define a la funcin.

Llamado a una funcin

Cuando definimos una funcin solo le indicamos al algoritmo que esta funcin existe, pero una definicin de funcin no implica la realizacin de las instrucciones que la constituyen. Para hacer uso de una funcin, el algoritmo principal la debe llamar.

Una funcin tiene tres componentes importantes:

Los parmetros, que son los valores que recibe la funcin como entrada

El cdigo de la funcin, que son las operaciones que hace la funcin

El resultado (o valor de retorno), que es el valor final que entrega la funcin.

Todas las funciones tienen un tipo de dato de retorno, que es el valor que la funcin devolver al terminar la funcin.

En esencia, una funcin es un mini-programa. Sus tres componentes son anlogos a la entrada, el proceso y la salida de un programa.

1.4. Disciplina de tipos.

DISCIPLINA: Es la coordinacin de actitudes con las cuales se instruye para desarrollar habilidades, o para seguir un determinado cdigo de conducta u "orden".

En los lenguajes de programacin con disciplina de tipos, cada tipo representa una coleccin de valores (datos) similares.

El conocer los tipos de las funciones ayuda a documentar los programas y evitar errores en tiempo de ejecucin.

Un lenguaje tiene disciplina de tipos si los errores de tipos se detectan siempre y cuando es necesario determinar los tipos de todos los operandos, ya sea en tiempo de compilacin o de ejecucin.

Los tipos se infieren, es decir se comprueban, de forma esttica, en tiempo de compilacin.

En los lenguajes de programacin con disciplina de tipos, cada tipo representa una coleccin de valores o datos similares. El conocer los tipos de las funciones ayuda a documentar los programas y evitar errores en tiempo de ejecucin. Un lenguaje tiene disciplina de tipos si los errores de tipos se detectan siempre es necesario determinar los tipos de todos los operandos, ya sea en tiempo de compilacin o de ejecucin

Pascal:

Cercano a tener disciplina de tipos pero no realiza comprobacin de tipos en los registros variantes (incluso puede omitirse la etiqueta discriminatoria en dichos registros)

Ada:

Resuelve el problema de los registros variantes realizando comprobacin dinmica de tipos (slo en este caso).

Tiene una funcin de biblioteca que permite extraer un valor de una variable de cualquier tipo (como una cadena de bits) y usarlo como un tipo diferente (no es una conversin de tipos) se trata de una suspensin temporal de la comprobacin de tipos

C:

No tiene disciplina de tipos por:

No se realiza comprobacin de tipos sobre las uniones. Permite funciones con parmetros sobre los que no se realiza comprobacin de tipos

Java:

Tiene disciplina de tipos (no hay uniones)

ML y Haskell:

Poseen disciplina de tipos

Los tipos de los parmetros de las funciones (y de estas mismas) se conocen en tiempo de compilacin (ya sea por declaracin del usuario o por inferencia de tipos). Haskell y otros lenguajes funcionales utilizan el sistema de tipos de Milner, que tiene dos caractersticas fundamentales:

Disciplina esttica de tipos: Los programas bien tipados se pueden conocer en tiempo de compilacin. Un programa bien tipado se puede utilizar sin efectuar comprobaciones de tipo en tiempo de ejecucin, estando garantizado que no se producirn errores de tipo durante el cmputo.

Polimorfismo: Permite que una misma funcin se pueda aplicar a parmetros de diferentes tipos, dependiendo del contexto en el que la funcin se utilice.

1.5 Tipo de datos.

Un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador) algo sobre la clase de datos sobre los que se va a procesar.

En un sentido amplio, un tipo de datos define un conjunto de valores y las operaciones sobre estos valores. Casi todos los lenguajes de programacin explcitamente incluyen la notacin del tipo de datos, aunque lenguajes diferentes pueden usar terminologa diferente.

La mayor parte de los lenguajes de programacin permiten al programador definir tipos de datos adicionales, normalmente combinando mltiples elementos de otros tipos y definiendo las operaciones del nuevo tipo de dato.

Por ejemplo, un programador puede crear un nuevo tipo de dato llamado "Persona" que especifica que el dato interpretado como Persona incluir un nombre y una fecha de nacimiento.

Los datos ms bsicos para cualquier problema de programacin son los valores numricos y booleanos.

Estos son algunos de los tipos de datos:

Tipos de datos primitivos.- hacen referencia al tipo de informacin que se trabaja, donde la unidad mnima de almacenamiento es el dato, tambin se puede considerar como el rango de los valores que pueden tomar una variable durante la ejecucin del programa.

Caracteres.- el tipo de dato carcter es un digito individual el cual se puede representar como numricos (0 9), letras (a z) y smbolos ($,_). Ej. Tipo String o Char

Numricos.- este tipo de dato puede ser real o entero, dependiendo del tipo de dato que se vaya a utilizar. Divididos en Enteros y reales

Booleanos.- este tipo de dato se emplea para los valores lgicos, los podemos definir como datos comparativos dicha comparacin devuelve resultados lgicos (verdadero o falso).

(Apuntes: Programacin Lgica y Funcional x Ing. YahvhPgina 2)