Sie sind auf Seite 1von 7

Unidad 1

PROGRAMACIN LOGICA Y FUNCINAL

La Programacin Lgica y Funcional, es una asignatura que requiere tener conocimientos


esenciales acerca de los lenguajes lgicos y funcionales de la inteligencia artificial, incluyendo la
metodologa y los aspectos relativos a la codificacin, con el fin de ampliar el conocimiento de
tecnologas alternativas para el desarrollo de sistemas automatizados y la implemetacin de
agentes inteligentes.

1.1.- Estilos de Programacin


Estilo de programacin (tambin llamado estndares de cdigo o convencin de cdigo) es un
trmino que describe convenciones para escribir cdigo fuente en ciertos lenguajes de
programacin.

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.

Estilo K&R es el mas 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 lineas para las
llaves, e identar el cdogo debajo de ellas.

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

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

Estilo GNU este coloca una llave sobre la linea las llaves son identadas por 2 espacios y el
codigo que contiene identada por 2 espacios adicionales.

1.2.- Evaluacin de Expresines

Son el mtodo fundamental que tiene el programador de expresar computaciones, 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.

Operadores posfijos en C : a++


Expresiones condicionales en C/C++
En el lenguaje C/C++ si e1 y e2 son dos expresiones del un mismo tipo T (T es uno de los tipos
enteros,
enumerados, caracteres, o flotantes), y b es una expresin entera o lgica, entonces podemos
escribir la
expresin:
b ? e1 : e2
Esta expresin tiene tipo T. Si b no de tipo bool sino algn tipo entero, entonces el valor 0 se
equipara a
false y cualquier otro valor se equipara a true.

1.3.- Definicin de Funcines


El concepto de funcin tiene su origen en el trmino latino functo. La palabra puede ser
utilizada en diversos mbitos y con distintos significados, funcion matematica o simplemente
funcion, es sin duda, el mas importante y utilizado en matematicas y en las demas ramas de la
ciencia.
En anlisis matemtico, el concepto general de funcin, aplicacin o mapeo se refiere en a
una regla que asigna a cada elemento de un primer conjunto un nico elemento de un segundo
conjunto (correspondencia matemtica).

1.4.- Disiplina 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". Un ejemplo es la
enseanza de una materia, ciencia o tcnica, especialmente la que se ensea en un centro
(Docente asignatura).
En los lenguajes de programacion con disiplina de tipos, cada tipo representa una coleccion de
valores (datos) similares. una funcion cuyo tipo sea A1 -> ... An -> espera n parmetros con tipos
A1, ... An y devuelve un resultado de tipo R. El conocer los tipos de las funciones ayuda a
documentar los programas y a evitar errores en tiempo de ejecucion.
Disiplina esttica de tipos: los programas bien tipados se pueden reconocer en tiempo de

compilacion, un programa bien tipado se puede utilizar sin efectuar comprobaciones de tipo en
tiempo de ejecucion. estando garantizado que no se produciran errores de tipo durante el computo.

1.5.- Tipos de Datos


los datos mas basicos para cualquier problema de programacion son los valores numericos y
booleanos, como criterio general hay que tener en cuenta todos los tipos numericos existentes en
Haskell, asi como el tipo de los booleanos, son ejemplares de la clase de tipos Eq, Ord, Read y
Show, en particular, las operaciones de comparacion (==), (/=), (<), (>=) y (>) y se puden utilizar
para comparar valores de cualquier tipo numerico, asi como valores booleanos. las funciones max
y min tambien se pueden aplicar a valores de todos estos tipos.
Numeros enteros.
En Haskell existen dos tipos de numeros enteros: el tipo Int de los enteros de precision limitada,
y el tipo Interger de los enteros de precision arbitraria.

-----------------------------------------------------------------------------------------------------------------------------PARADIGMA DE PROGRAMACIN

Un paradigma de programacin es una propuesta tecnolgica


que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en
cuanto a que unvocamente trata de resolver uno o varios problemas claramente delimitados. La
resolucin de estos problemas debe suponer consecuentemente un avance significativo en al
menos un parmetro que afecte a la ingeniera de software. Tiene una estrecha relacin con la
formalizacin de determinados lenguajes en su momento de definicin. Un paradigma de
programacin est delimitado en el tiempo en cuanto a aceptacin y uso ya que nuevos
paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente.
Ejemplo:
Probablemente el paradigma de programacin que actualmente es el ms usado a todos los
niveles es la orientacin a objeto. El nucleo central de este paradigma es la unin de datos y

procesamiento en una entidad llamada "objeto", relacionable a su vez con otras entidades
"objeto".

Tipos de paradigmas de programacin

Programacin imperativa
La programacin imperativa, en contraposicin a la programacin declarativa es un paradigma de
programacin que describe la programacin en trminos del estado del programa y sentencias
que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le
indican al computador cmo realizar una tarea.

Los lenguajes imperativos de alto nivel usan


variables y sentencias ms complejas, pero an siguen el mismo paradigma. Las recetas y las
listas de revisin de procesos, a pesar de no ser programas de computadora, son tambin
conceptos familiares similares en estilo a la programacin imperativa; cada paso es una
instruccin, y el mundo fsico guarda el estado (Zoom). Los primeros lenguajes imperativos
fueron los lenguajes de mquina de los computadores originales. En estos lenguajes, las
instrucciones fueron muy simples, lo cual hizo la implementacin de hardware fcil, pero
obstruyendo la creacin de programas complejos. Fortran, cuyo desarrollo fue iniciado en 1954
por John Backus en IBM, fue el primer gran lenguaje de programacin en superar los obstculos
presentados por el cdigo de mquina en la creacin de programas complejos.

Programacin lgica

La programacin lgica 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, 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.

Programacin funcional

Es un paradigma de programacin declarativa basado en la


utilizacin de funciones aritmticas que no maneja datos mutables o de estado. Enfatiza la
aplicacin de funciones, en contraste con el estilo de programacin imperativa, que enfatiza los
cambios de estado. La programacin funcional tiene sus raices en el clculo lambda, un sistema
formal desarrollado en los 1930s para investigar la definicin de funcin, la aplicacin de las
funciones y la recursin. Muchos lenguajes de programacin funcionales pueden ser vistos como
elaboraciones del clculo lambda, La programacin dirigida por eventos es la base de lo que
llamamos interfaz de usuario, aunque puede emplearse para desarrollar interfaces entre
componentes de Software como mdulos del ncleo tambin.

Programacin orientada a objetos

La programacin orientada a objetos o POO (OOP segn sus siglas en ingls) es un paradigma de
programacin que usa objetos y sus interacciones, para disear aplicaciones y programas
informticos. Est basado en varias tcnicas, incluyendo herencia, abstraccin, polimorfismo y
encapsulamiento. Su uso se populariz a principios de la dcada de los aos 1990. En la
actualidad, existe variedad de lenguajes de programacin que soportan la orientacin a objetos.

Programacin con restricciones

Es un paradigma de la programacin en informtica, donde las relaciones entre las variables son
expresadas en trminos de restricciones (ecuaciones). Actualmente es usada como una tecnologa
de software para la descripcin y resolucin de problemas combinatorios particularmente
difciles,

especialmente

en

las

reas

de

planificacin

programacin

de

tareas

(calendarizacin). La programacin con restricciones se relaciona mucho con la programacin


lgica y con la investigacin operativa. De hecho cualquier programa lgico puede ser traducido
en un programa con restricciones y viceversa. Muchas veces los programas lgicos son traducidos
a programas con restricciones debido a que la solucin es ms eficiente que su contraparte. La
diferencia entre ambos radica principalmente en sus estilos y enfoques en el modelado del
mundo. Para ciertos problemas es ms natural (y por ende ms simple) escribirlos como
programas lgicos, mientras que en otros es ms natural escribirlos como programas con
restricciones.

Programacin orientada a componentes

La programacin orientada a componentes (que tambin es llamada basada en componentes) es


una rama de la ingeniera del software, con nfasis en la descomposicin de sistemas ya
conformados en componentes funcionales o lgicos con interfaces bien definidas usadas para la
comunicacin

entre

componentes.

Se considera que el nivel de abstraccin de los componentes es ms alto que el de los objetos y
por lo tanto no comparten un estado y se comunican intercambiando mensajes que contienen
datos.

**Tarea sobre los estilos de programacin**

Das könnte Ihnen auch gefallen