Sei sulla pagina 1di 16

10-4-2017 METODOLOGAS

DE
PROGRAMACIN

Carlos Aranda Grupo: 1


UNIVERSIDAD POLITCNICA SALESIANA
PROGRAMACIN ESTRUCTURADA
La programacin estructurada es una teora de programacin que consiste en construir programas de fcil
comprensin, es especialmente til, cuando se necesitan realizar correcciones o modificaciones despus de
haber concluido un programa o aplicacin. Al utilizar la programacin estructurada, es mucho ms sencillo
entender la codificacin del programa, que se habr hecho en diferentes secciones.

Se basa en una metodologa de desarrollo de programas llamada REFINAMIENTO SUCESIVO.


Se plantea una operacin como un todo y se divide en segmentos ms sencillos o de menor complejidad, una
vez terminado todos los segmentos del programa, se procede a unificar las aplicaciones realizadas por el grupo
de programadores. Si se ha utilizado adecuadamente la programacin estructurada, esta integracin debe ser
sencilla y no presentar problemas al integrar la misma, y de presentar algn problema, ser rpidamente
detectable para su correccin.

La representacin grfica de la programacin estructurada se realiza a travs de diagramas de flujo, el cual


representa el programa con sus entradas, procesos y salidas.

La programacin estructurada propone segregar los procesos en estructuras lo ms simple posibles, las cuales
se conocen como secuencia, seleccin e interaccin, que estn disponibles en todos los lenguajes modernos
de programacin imperativa en forma de sentencias, combinando esquemas sencillos se pueden llegar a
construir sistemas amplios y complejos, pero de fcil entendimiento.

La programacin estructurada es un mtodo disciplinado de escribir programas que sean claros, que se
demuestre que sean correctos y fciles de modificar.

La programacin estructurada consiste en dividir los programas en mdulos y se basa en el desarrollo de


programas que van de lo general a lo particular, es decir, del conjunto al elemento, es decir de un todo a lo
especfico.

Para la solucin de un problema en particular, se inicia considerando las funciones que tiene que cumplir el
programa en general y despus se va desmembrando estas funciones en subsunciones ms pequeas hasta
llegar al caso ltimo o ms particular y que ya no se pueda subdividir en casos ms pequeos. Una vez que ya
se tiene el programa desmembrado en de lo general a lo particular, se empieza a programar estas funciones
pequeas, particulares o mdulos, de esta manera, siempre podremos construir nuevos mdulos o unidades
insertando el nombre del mdulo donde corresponda y desarrollndolo a parte.
La programacin estructurada es un estilo con el cual l se busca que el programador elabore programas
sencillos y fciles de entender, la programacin estructurada hace uso de tres estructuras bsicas de control
que son: Estructura Secuencial, Estructura Selectiva y la Estructura Repetitiva ( Iterativa)

La programacin estructurada se basa un teorema fundamental, el cual afirma que cualquier programa, no
importa el tipo de trabajo que ejecute, puede ser elaborado utilizando nicamente las tres estructuras bsicas.

DEFINICIN DE LAS 3 ESTRUCTURAS BSICAS

Estructura Secuencial:

Indica que las instrucciones de un programa se ejecutan una despus de la otra, en el mismo
orden en el cual aparecen en el programa. Se representa grficamente como una caja despus
de otra, ambas con una sola entrada y una nica salida.

Las cajas A y B pueden ser definidas para ejecutar desde una simple instruccin hasta un mdulo
o programa completo, siempre y cuando stos tambin sean programas apropiados.

Estructura Selectiva:

Tambin conocida como la estructura si verdadero - falso, plantea la seleccin entre dos
alternativas con base en el resultado de la evaluacin de una condicin; equivale a la
instruccin IF de todos los lenguajes de programacin y se representa grficamente de
la siguiente manera:

En el diagrama de flujo anterior, C es una condicin que se evala; A es la accin que se


ejecuta cuando la evaluacin de esta condicin resulta verdadera y B es la accin ejecutada
cuando el resultado de la evaluacin indica falso. La estructura tambin tiene una sola entrada y una sola
salida; y las funciones A y B tambin pueden ser cualquier estructura bsica o conjunto de estructuras.

Estructura Repetitiva:

Tambin llamada la estructura hacer mientras - que, corresponde a la ejecucin repetida de una
instruccin mientras que se cumple una determinada condicin. El diagrama de flujo para esta
estructura es el siguiente:

Aqu el bloque A se ejecuta repetidamente mientras que la condicin C se cumpla o sea


cierta. Tambin tiene una sola entrada y una sola salida; igualmente A puede ser cualquier
estructura bsica o conjunto de estructuras.
ESTRUCTURAS DE CONTROL SELECTIVAS
Estructuras Bsicas de Control
Nos ayudan a resolver algortmicamente problemas ms complejos. Con ellas es
posible tomar decisiones y repetir grupos de acciones.
Para la redaccin de un pseudocdigo se pueden utilizar tres tipos de estructuras
de control las: Selectivas, Secuenciales.

Estructura Selectivas

Se utilizan para tomar decisiones lgicas, se evala una condicin y en funcin al resultado se realiza una
determinada secuencia de instrucciones.

Estructura Selectiva Simple

Se identifican porque estn compuestos nicamente de una condicin. La estructura si-entonces evala la
condicin y en tal caso:

Si la condicin es verdadera, entonces ejecuta la accin Si (o acciones si son varias). Si la condicin es falsa
no se hace nada.

ESTRUCTURAS DE CONTROL REPETITIVAS

For: Ciclo el cual permite ejecutar una sentencia simple o compuesta repetidamente un nmero de veces
conocido.

While: Evalan una expresin al inicio y ejecuta la sentencia un nmero de veces requerido.
Do While: Acompaada del While sirve para repetir la ejecucin de sentencias en funcin de una condicin
al menos una vez.
PROGRAMACIN MODULAR

Uno de los mtodos ms conocidos para resolver un problema es dividirlo en problemas ms pequeos,
llamados subproblemas. De esta manera, en lugar de resolver una tarea compleja y tediosa, resolvemos otras
ms sencillas y a partir de ellas llegamos a la solucin. Esta tcnica se usa mucho en programacin ya que
programar no es ms que resolver problemas, y se le suele llamar diseo descendente, metodologa del divide
y vencers o programacin top-down.

Es evidente que si esta metodologa nos lleva a tratar con subproblemas, entonces tambin tengamos la
necesidad de poder crear y trabajar con subprogramas para resolverlos. A estos subprogramas se les suele
llamar mdulos, de ah viene el nombre de programacin modular. En Pascal disponemos de dos tipos de
mdulos: los procedimientos y las funciones.

Veamos un ejemplo de cmo emplear el diseo descendente para resolver un problema. Supongamos que un
profesor quiere crear un programa para gestionar las notas de sus alumnos. Quiere que dicho programa le
permita realizar tareas tales como asignar notas, cambiar notas, ver las notas segn distintas calificaciones,
etc. A continuacin tines un esquema que representa una de las posibles divisiones del problema en mdulos.

LOS PROCEDIMIENTOS:

Un procedimiento es un subprograma que realiza una tarea especfica. Para invocarlo, es decir, para hacer que
se ejecute, basta con escribir su nombre en el cuerpo de otro procedimiento o en el programa principal. Pero,
hay que tener muy en cuenta que su declaracin debe hacerse antes de que sea llamado por otro mdulo.

Una vez que has construido varios programillas en Pascal, crear un procedimiento no es nada complicado,
pues tiene prcticamente la misma estructura que un programa. Veamos las secciones que comparten y no
comparten un procedimiento y un programa principal:

Mientras que en el programa la cabecera consta de la palabra reservada program seguida del nombre
del programa, en un procedimiento se compone de la palabra procedure seguida del nombre del
procedimiento y una lista de parmetros que es opcional.
Las secciones de declaracin de constantes (const), de tipos (type) y de variables (var) tambin pueden
aparecer en la estructura de cualquier procedimiento.
Respecto al cuerpo del procedimiento, decir que al igual que el de un programa se delimita por las
palabras reservadas begin y end, y en su interior puede contener sentencias simples o estructuradas.
Por ltimo, comentar que ambos difieren en el signo de puntuacin que marca su final, ya que en un
programa es el punto y en un procedimiento es el punto y coma.

Todas estas diferencias y similitudes que hemos comentado, puedes apreciarlas en los siguientes esquemas
que representan las estructuras de un programa y de un procedimiento:

LOS PARMETROS (ARGUMENTOS):

Como habrs observado, con los procedimientos nos llega un concepto nuevo, el de los parmetros. A los
parmetros tambin se les conoce como argumentos y tienen la misin de comunicar al procedimiento con el
programa que lo llama. Por ejemplo, si quieres hacer un subprograma que multimplique dos nmeros, lo ms
cmodo es que al llamar al procedimiento le pases los valores que participarn en la operacin. Podra ser algo
como:

Los parmetros por valor


Los parmetros por referencia

El parmetro por valor tiene dicho nombre porque lo que recibe el subprograma no son ms que copias de los
valores de los datos que el programa invocador le pasa. Por tanto, si en el procedimiento modificamos alguno
de estos valores, los datos originales permanecern inalterados. En el ejemplo, son a y b.

En cambio, en los parmetros por referencia lo que se pasa al procedimiento son los datos en s. Y si ste los
modifica, los cambios permanecern una vez que la ejecucin vuelva al mdulo que invoc al procedimiento.

LAS VARIABLES GLOBALES Y LOCALES:

Despus de estudiar los procedimientos de Pascal y las diferencias entre parmetros por valor y por referencia,
es hora de tratar otro aspecto clave en la programacin modular: la distincin entre variables globales y locales.

Una variable local es una variable que est declarada dentro de un subprograma, y se dice que es local al
subprograma. Y lo que la caracteriza es que su valor slo est disponible mientras se ejecuta el subprograma.
Dicho de otra manera, el programa principal no tiene conocimiento alguno de las variables locales de
sus procedimientos y funciones.
PROGRAMACIN ORIENTADA A OBJETOS (POO)

Un paradigma de programacin que viene a innovar la forma de obtener resultados. Los objetos manipulan
los datos de entrada para la obtencin de datos de salida especficos, donde cada objeto ofrece una
funcionalidad especial.

Muchos de los objetos pre-diseados de los lenguajes de programacin actuales permiten la agrupacin en
bibliotecas o libreras, sin embargo, muchos de estos lenguajes permiten al usuario la creacin de sus propias
bibliotecas.

Su uso se populariz a principios de la dcada de 1990. En la actualidad, existe una gran variedad de lenguajes
de programacin que soportan la orientacin a objetos.

CONCEPTOS FUNDAMENTALES

La POO es una forma de programar que trata de encontrar una solucin a estos problemas. Introduce nuevos
conceptos, que superan y amplan conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
Clase:
Definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciacin es la
lectura de estas definiciones y la creacin de un objeto a partir de ella.
Herencia:
Por ejemplo, herencia de la clase C a la clase D, es la facilidad mediante la cual la clase D hereda en ella
cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos
por la misma D. Por lo tanto, puede usar los mismos mtodos y variables pblicas declaradas en C. Los
componentes registrados como "privados" (private) tambin se heredan, pero como no pertenecen a la clase,
se mantienen escondidos al programador y slo pueden ser accedidos a travs de otros mtodos pblicos. En
el caso de los componentes registrados como "protegidos" (protected) tambin se heredan, pero solo para
esa clase, no para futuras clases heredadas. Esto es as para mantener hegemnico el ideal de POO.
Objeto:
Instancia de una clase. Entidad provista de un conjunto de propiedades o atributos (datos) y de
comportamiento o funcionalidad (mtodos), los mismos que consecuentemente reaccionan a eventos. Se
corresponden con los objetos reales del mundo que nos rodea, o con objetos internos del sistema (del
programa).
Mtodo:
Algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecucin se desencadena tras la recepcin
de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un mtodo
puede producir un cambio en las propiedades del objeto, o la generacin de un "evento" con un nuevo
mensaje para otro objeto del sistema.

Evento:
Es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un mensaje enviado por
un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Tambin se
puede definir como evento la reaccin que puede desencadenar un objeto; es decir, la accin que genera.
Atributos:
Caractersticas que tiene la clase.
Mensaje:
Una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos
parmetros asociados al evento que lo gener.
Propiedad o atributo:
Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles
desde fuera del objeto y esto se define como sus caractersticas predeterminadas, y cuyo valor puede ser
alterado por la ejecucin de algn mtodo.
Estado interno:
Es una variable que se declara privada, que puede ser nicamente accedida y alterada por un mtodo del
objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es
visible al programador que maneja una instancia de la clase.
Componentes de un objeto:
Atributos, identidad, relaciones y mtodos.
Identificacin de un objeto:
Un objeto se representa por medio de una tabla o entidad que est compuesta por sus atributos y funciones
correspondientes.
En comparacin con un lenguaje imperativo, una "variable" no es ms que un contenedor interno del
atributo del objeto o de un estado interno, as como la "funcin" es un procedimiento interno del mtodo del
objeto.
PROGRAMACIN CONCURRENTE
Es el nombre dado a notaciones de programacin y tcnicas para expresar paralelismo potencial y resolver
los problemas resultantes de sincronizacin y de comunicacin[SC101].
1. Necesidad de una programacin concurrente

Existen varios aspectos en nuestro mundo inherentemente distribuido que hacen necesaria la programacin
concurrente. En primera instancia es ms fcil modelar de una manera concurrente un sistema del mismo
tipo, que hacerlo encajar dentro del paradigma secuencial que de ninguna manera esquematiza el
comportamiento de ese sistema. Tambin es necesario considerar que el programar concurrentemente
permite que los sistemas sean ms fcilmente escalables debido a la modularidad de su desarrollo y que
tambin estos pueden ser mucho ms eficientes debido a que permiten la ejecucin en paralelo de mltiples
instrucciones. La programacin concurrente es usada para modelar y simular sistemas fsicos, inclusive si
esos sistemas no estn controlados directamente por un computador. La simulacin es una herramienta
importante en la optimizacin de sistemas fsicos; la programacin concurrente brinda una forma natural de
asignar segmentos del programa para representar objetos fsicos y por eso ayuda mucho a representar
simulaciones.
2. Problemas implcitos en la programacin concurrente

Al programar concurrentemente y por ello compartir recursos surgen algunos problemas que necesitan ser
resueltos para as aprovechar al mximo todas las ventajas que la programacin concurrente nos puede
brindar.
Entre los problemas ms importantes podemos mencionar algunos:

La ejecucin de un de proceso que puedan afectar la informacin perteneciente a otro proceso que se ejecuta
en paralelo a menos que est autorizado a hacerlo (datos compartidos).

El abrazo mortal, que es el estado en el que dos transacciones se queden bloqueadas cada una esperando por
recursos que est utilizando la otra.

Inanicin: Estado al que llega una transaccin cuando es seleccionada repetidamente para abortar y as evitar
un abrazo mortal.

3. Mecanismos de solucin a problemas de la programacin concurrente

Existen distintas formas para solucionar estos problemas partiendo de mecanismos de bajo nivel como
semforos que como obliga a los procesos a ponerse en cola y as evitar problemas con memoria compartida.
Mecanismos de envo de mensajes para el mismo propsito.
PROGRAMACIN FUNCIONAL

Histricamente, los ordenadores se han programado utilizando lenguajes muy cercanos a las peculiaridades
de la propia mquina: operaciones aritmticas simples, instrucciones de acceso a memoria, etc. Un programa
escrito de esta manera puede ocultar totalmente su propsito a la comprensin de un ser humano, incluso uno
entrenado. Hoy da, estos lenguajes pertenecientes al paradigma de la Programacin Imperativa han
evolucionado de manera que ya no son tan crpticos.

En el paradigma de la programacin funcional, un programa se considera una funcin matemtica, la cual


describe una relacin entre una entrada y una salida y donde el concepto de estado o variable se elimina
completamente. Sabemos que una funcin matemtica es una regla que asocia a cada x de un conjunto X de
valores, un nico y de otro conjunto Y de valores; se representa por: f:X Y por y = f(x) Si ignoramos
cmo un programa computa sus datos y nos fijamos slo en qu computa, podemos ver al mismo como una
funcin matemtica que dada una entrada, devuelve una salida; se representa por Programa : Input -> Output
output = Programa(input). De aqu que la implementacin de un lenguaje que permita crear programas con
el enfoque de una funcin matemtica, deba ser basado en el recurso funcin de los lenguajes de
programacin. Ahora bien, entre la concepcin de una funcin matemtica y la de una funcin en los lenguajes
de programacin tradicionales, existan diferencias:

Lenguajes de programacin: Hay distincin entre la definicin de la funcin (descripcin de lo que va a hacer
la funcin mediante los parmetros formales) y la aplicacin de la misma (llamada con los parmetros
actuales). Las variables refieren una zona de memoria donde se almacena un valor

Matemticas: La distincin no es clara, a menudo el trmino " variable independiente " se usa tanto para el
parmetro formal como actual.

Ejemplo: Si se tiene la expresin "Sea x tal que f(x) = 2 , no se distingue con claridad si se refiere a la
definicin de la funcin constante de valor 2 o al punto x especfico en el que una funcin f ya definida toma
el valor 2. Las variables siempre se refieren a un valor y no a una localizacin de memoria. No hay concepto
de localizacin de memoria y por tanto la expr. x=x+1 no tiene sentido.

La programacin funcional debe por esto eliminar el concepto de variable excepto como nombre de un valor.
Por lo anterior, se concibi que en la Programacin Funcional la asignacin no fuera permitida como
instruccin.

En programacin funcional pura no existen variables, slo existen constantes, parmetros y valores, an
cuando en la prctica la mayora de los lenguajes de programacin funcionales no son puros pues retienen
algunas nociones de variables y asignaciones. Como no hay variables ni asignacin, tampoco existen los ciclos
al estilo de los de los lenguajes tradicionales ya que los mismos trabajan con una variable de control que se va
reasignando (decrementando o incrementando). Esto se logra en un lenguaje funcional mediante la recursin.

Si lo programamos funcionalmente en un lenguaje procedural como ADA, quedara como sigue:

procedure MCD(u,v:integer):integer;
begin
if (v=0) then return u
else
return MCD(v,u mod v);
end; {MCD}
CONSECUENCIAS DE AUSENCIA DE VARIABLES Y ASIGNACIN:

Otra consecuencia de la ausencia de variables y de asignacin es el hecho de que el valor de cualquier funcin
depende solamente de los valores de sus parmetros y no de llamados previos a otras o a la misma funcin,
as como que el valor de cualquier funcin no depende del orden de evaluacin de sus parmetros, lo cual se
conoce por el nombre de transparencia referencial, lo que facilita el empleo de la programacin funcional se
utiliza en aplicaciones concurrentes. El hecho de que en los lenguajes funcionales no existen las variables y
existe la transparencia referencial, hacen la semntica de los programas funcionales particularmente
conveniente:

No existe estado, ya que no existe concepto de localizacin de memoria ni de variable.

El ambiente de ejecucin asocia valores con nombres, no con localizaciones de memoria; una vez que un
nombre entra al ambiente, su valor no cambia. Es por esto que se habla en este caso de semntica de valores,
para distinguir este tipo de semntica de la usual (semntica de almacenamiento o semntica de apuntadores).

En la programacin funcional, debemos estar listos para manipular funciones sin restricciones arbitrarias. En
particular, las funciones deben ser vistas como valores en s ellas, las cuales pueden ser ejecutadas por otras
funciones y las cuales pueden ser tambin parmetros de otras funciones, esto se expresa diciendo que estas
funciones son valores de primera clase.

CARACTERSTICAS:

Las caractersticas ms generales de la programacin funcional se resumen en:

Ausencia de efectos colaterales

El valor de una expresin solo depende de los valores de sus subexpresiones, si las tiene.

Se dice que una funcin (f x y z) tiene un efecto colateral si los valores de x, y, y/o z cambian en el entorno
de llamada durante la aplicacin de la funcin a sus argumentos, o si alguna otra accin ocurre mientras se
evala f.
Una funcin definida con todos los parmetros por valor y donde no se hacen asignaciones a las variables
globales, no tiene efectos colaterales.

La mayora de las implementaciones de LISP incorporan algunos efectos colaterales y tipos de datos
integrados. stos han sido incluidos para hacer ms sencillo un cdigo fcilmente legible y las
implementaciones eficientes.

CUESTIONES FINALES

El estilo de la programacin funcional puede ser usado y lo est siendo cada vez ms en lenguajes imperativos
(Ejemplo: PASCAL) por las mismas razones por las cuales el uso de los lenguajes funcionales se ha
incrementado: la simplicidad de la semntica y la resultante claridad de los programas. El requerimiento bsico
para programar funcionalmente en cualquier lenguaje es que el mismo permita la recursin as como un
mecanismo de funciones general y adecuado.

Un problema tpico en este estilo de programacin es el costo de ejecucin de los ciclos mediante la recursin.
Incluso con los procesadores modernos, que reducen sustancialmente la sobrecarga de la llamada a
procedimiento, las implementaciones recursivas son ms lentas que las que usan los ciclos standard.
PROGRAMACION LOGICA

Consiste en la aplicacin del corpus de conocimiento sobre lgica para el diseo de lenguajes de
programacin; no debe confundirse con la disciplina de la lgica computacional. La programacin lgica es
un tipo de paradigmas de programacin dentro del paradigma de programacin declarativa. El resto de los
subparadigmas de programacin dentro de la programacin declarativa son: programacin funcional,
programacin basada en restricciones, programas DSL (de dominio especfico) e hbridos. La programacin
lgica gira en torno al concepto de predicado, o relacin entre elementos. La programacin funcional se basa
en el concepto de funcin (que no es ms que una evolucin de los predicados), de corte ms matemtico.

FUNDAMENTOS:

La mayora de los lenguajes de programacin lgica se basan en la teora lgica de primer orden, aunque
tambin incorporan algunos comportamientos de orden superior. En este sentido, destacan los lenguajes
funcionales, ya que se basan en el clculo lambda, que es la nica teora lgica de orden superior que es
demostradamente computable (hasta el momento).

LGICA DE PRIMER ORDEN:

El clculo de predicados de primer orden consta de un alfabeto y de dos clases de expresiones definidas a
partir de los smbolos de este alfabeto, los trminos y las frmulas. El alfabeto del lenguaje consta de los
siguientes conjuntos:

V={ x, y, z, ....} cuyos elementos se denominan smbolos de variables (individuales).

F={ f, g, h, .} , donde cada elemento f es un smbolo funcional n-ario (n 0), por ejemplo sucesor(x). Si n
= 0 el smbolo de funcin se denomina smbolo de constante. Las constantes m{as empleadas son true y false.

R={ R, S, .....} , donde cada elemento R es un smbolo de relacin n-aria ( n 0). Si n = 0 el smbolo de
relacin se denomina smbolo de constante proposicional o proposicin.

d) Un conjunto finito de smbolos denominados operadores lgicos:

: denominado negacin,

: denominado conjuncin,

: denominado disyuncin,

: denominado implicacin,

: denominado bicondicional

y los operadores de cuantificacin o cuantificadores:

(.) (denominado cuantificador universal) y


(.) (denominado cuantificador existencial).

Smbolos auxiliares de escritura. Trminos Sea t una sucesin lineal finita de smbolos del alfabeto de L,
entonces:

* Si t es una variable, entonces es un trmino.

* Si f es un smbolo de funcin n-aria (n 0) y tl,t2,...,tn son trminos,entonces f( tl,t2, ,tn) un trmino.

Ejemplos: x, a, f(x), g(a, f(b)) son trminos

En consideraciones posteriores jugar un papel importante una clase de trminos denominados listas, que en
la programacin lgica se presenta con la notacin: [ t1, t2, ..., tn ]

con cabeza t1 el car y cola [ t2, ..., tn].

La lista [X|Y] se denomina una lista patrn o un esquema de lista que denota cualquier lista con un primer
elemento X y resto Y.

Ejemplos:

[1, 2, 3]

[a, 3, [3], [[3]]]

[[X, Y|[2,3]]

[[X|Y], Z, [X|W]]

Frmulas:

Si R es un smbolo relacional n-ario ( n 0 ) y tl,t2,...,tn son trminos, entonces R(t1,t2,...,tn) es una frmula
elemental o tomo.

Si A es una frmula elemental, entonces A es una frmula.

Si A es una frmula, entonces A es una frmula.

Si A y B son frmulas, entonces [A B], [A B], [A=>B] y [A <=> B] son frmulas.

Si A es una frmula, entonces (x)A y (x)A son frmulas.

En (x)A ((x)A), A se denomina el alcance del cuantificador (x) ((x)).

Si x es una variable que ocurre en la frmula A, entonces se dice que x est acotada o ligada en A, si A es el
alcance del cuantificador (x) ( (x)).

Si x es una variable que ocurre en la frmula A, entonces se dice que x es libre en A si x no est acotada en
A.
Si x no ocurre libre en A, entonces (x)A ((x)A) es simplemente la frmula A. Una frmula es una frmula
cerrada o un enunciado si no contiene ocurrencia alguna de variable libre. Si tiene ocurrencia de variables
libres se llama predicado. El clculo de predicados posee un grupo de reglas de inferencia que permite
deducciones a partir de axiomas y teoremas previamente demostrados. La esencia de la programacin lgica
es consistir de una coleccin de enunciados asumidos como axiomas y derivar un hecho deseado aplicando
reglas de inferencia de forma automtica. Un lenguaje de programacin lgica es un sistema notacional para
escribir enunciados lgicos junto con algoritmos para implementar reglas de inferencia.

ENTORNOS DE DESARROLLO

El lenguaje de programacin lgica por excelencia es Prolog, que cuenta con diversas variantes. La ms
importante es la programacin lgica con restricciones (vase artculo sobre programacin con restricciones),
que posibilita la resolucin de ecuaciones lineales adems de la demostracin de hiptesis.
WEBGRAFIA:

http://www.sites.upiicsa.ipn.mx/polilibros/portal/Polilibros/P_Terminados/PolilibroFC/Unidad_III/Unidad%20III_8.ht
m
http://teoriasdelosalgoritmo.blogspot.com/2013/02/estructura-de-control-selectiva.html
http://genesis.uag.mx/edmedia/material/lenguajec/tema08.cfm
http://teleformacion.edu.aytolacoruna.es/PASCAL/document/modular.htm
https://es.wikipedia.org/wiki/Programacin_orientada_a_objetos#Conceptos_fundamentales
http://pegasus.javeriana.edu.co/~scada/concurrencia.html
https://www.paradigmadigital.com/dev/la-programacion-funcional-deberias-usarla/
https://www.ecured.cu/Programacin_lgica

Potrebbero piacerti anche