Anar al contingut (clic a Intro)
UdG Home UdG Home
Tancar
Menú

Estudia

Dades generals

Curs acadèmic:
2005
Descripció:
Programació imperativa, programació orientada a objectes, programació funcional, programació lògica, semàntiques. Models de Còmput: lambda-càlcul, Lògica de Primer Ordre. Tipatge.
Crèdits:
6
Idioma principal de les classes:
Sense especificar
S’utilitza oralment la llengua anglesa en l'assignatura:
Sense especificar
S’utilitzen documents en llengua anglesa:
Sense especificar

Grups

Grup A

Durada:
Semestral, 2n semestre
Professorat:
Mateu Villaret Auselle

Altres Competències

  • Donar a l'alumne una visió amplia de les diferencies existents entre els llenguatges de programació. Familiaritzar a l'estudiant amb els diferents paradigmes de programació, així com amb els seus models de còmput. Involucrar a l'alumne en l'especificació semàntica dels llenguatges de programació. Proporcionar a l'alumne èines potents per a atacar problemes computacionalment complexos (via Constraints). Incentivar la capacitat d'abstracció (via Programacio Funcional).

Continguts

1. - Presentació - (4 hores)

          1.1. Què és un Llenguatge de Programació

          1.2. Possibles Classificacions

                    1.2.1. Paradigmes

                    1.2.2. Imperatiu

                    1.2.3. Funcional

                    1.2.4. Lògic

                    1.2.5. Altres

          1.3. Història i evolució

          1.4. Definició del Llenguatge

                    1.4.1. Lèxic

                    1.4.2. Sintàctic

                    1.4.3. Semàntic

          1.5. Traducció per a l'execució

                    1.5.1. Compilació

                    1.5.2. Interpretació

2. - Paradigma Funcional - (12 hores)

          2.1. Introducció

          2.2. Model de Còmput: lambda-càlcul simple no tipat

                    2.2.1. lambda-termes

                    2.2.2. substitució

                    2.2.3. lambda-teoria

          2.3. lambda-definibilitat

          2.4. lambda-càlcul tipat

          2.5. inferència de tipus

          2.6. Lisp, ML, Haskell

          2.7. Propietats de programes funcionals

3. - Paradigma Lògic - (12 hores)

          3.1. Introducció

          3.2. Model de Còmput: lògica de primer ordre

                    3.2.1. Fórmules lògiques

                    3.2.2. Unificació

                    3.2.3. Resolució, SLD-resolució

          3.3. Prolog

          3.4. Resolució de restriccions

          3.5. Propietats de programes lògics

4. - Paradigma Imperatiu - (12 hores)

          4.1. Introducció

          4.2. Model de Còmput: Màquines de Turing/Arquitectura Von Newman

          4.3. Estat

          4.4. Expressions i instruccions

                    4.4.1. Tipus d'expressions, notacions

                    4.4.2. Assignació i control de flux

                    4.4.3. Abstracció de control

                    4.4.4. Accions i Funcions

                    4.4.5. Pas de paràmetres

          4.5. Abstracció de dades

          4.6. TAD

          4.7. OOP

          4.8. C, JAVA, ...

          4.9. Propietats de programes imperatius

5. Programació Orientada a Objectes

          5.1. Tipatge, dispatching, herència,...

          5.2. Problemes amb el tipatge

6. - Semàntica – (5 hores)

Activitats

Tipus d’activitat Hores amb professor Hores sense professor Total
Total 0 0 0

Bibliografia

  • Razonando con Haskell, : un curso sobre programación funcional (cop. 2004). Madrid: Thomson-Paraninfo.
  • Sterling, Leon, Shapiro, Ehud (1994). The Art of Prolog, : advanced programming techniques (2nd ed). Cambridge [etc.]: The MIT Press.
  • Bratko, Ivan (2001). Prolog, : programming for artificial intelligence (3rd ed). Wokingham [etc.]: Addison-Wesley.
  • Mitchell, John C (2003). Concepts in programming languages. Cambridge: Cambridge University Press.

Avaluació i qualificació

Activitats d'avaluació:

Descripció de l'activitat Avaluació de l'activitat %

Qualificació

La nota final de l'assignatura s'obtindrà a partir d'un 60% de
la nota de teoria i un 40% de la nota de pràctiques, essent necessari per aprobar:
- tenir una nota superior a 4 en cada part
- tenir les pràctiques presentades i acceptades

TEORIA:
la nota de teoria s'obtindrà mitjançant un exàmen final i petits exercicis proposats a classe.

PRÀCTICA:
la nota de pràctiques s'obtindrà mitjançant la realització de pràctiques en els llenguatges explicats a laboratori: Haskell i Prolog, i d'un exàmen pràctic.

Observacions

Es requereix un cert grau mínim d'abstracció i una capacitat de tractament de problemes formals.

Assignatures recomanades

  • Intel·ligència artificial. Tècniques i mètodes
  • Llenguatges, gramàtiques i autòmats
  • Mètodes i eines de compilació

Escull quins tipus de galetes acceptes que el web de la Universitat de Girona pugui guardar en el teu navegador.

Les imprescindibles per facilitar la vostra connexió. No hi ha opció d'inhabilitar-les, atès que són les necessàries pel funcionament del lloc web.

Permeten recordar les vostres opcions (per exemple llengua o regió des de la qual accediu), per tal de proporcionar-vos serveis avançats.

Proporcionen informació estadística i permeten millorar els serveis. Utilitzem cookies de Google Analytics que podeu desactivar instal·lant-vos aquest plugin.

Per a oferir continguts publicitaris relacionats amb els interessos de l'usuari, bé directament, bé per mitjà de tercers (“adservers”). Cal activar-les si vols veure els vídeos de Youtube incrustats en el web de la Universitat de Girona.