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

Estudia

Dades generals

Curs acadèmic:
2007
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:
Català
S’utilitza oralment la llengua anglesa en l'assignatura:
Gens (0%)
S’utilitzen documents en llengua anglesa:
Indistintament (50%)

Grups

Grup A

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

Grup MO

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
Resolució d'exercicis 0 30,00 30,00
Sessió expositiva 60,00 58,00 118,00
Total 60,00 88,00 148

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 %
Realització de pràctiques de laboratori del tema 2 (Haskell).
Realització de pràctiques de laboratori del tema 3 (Programació lògica amb Constraints).

Qualificació

NOTA FINAL:
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 les pràctiques presentades i acceptades
- tenir una nota superior o igual a 5 en cada part

TEORIA:
la nota de teoria s'obtindrà mitjançant un exàmen final.

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.

EXERCICIS de SEGUIMENT:
la nota final es podrà arrodonir a l'alça mitjançant el lliurament de petits exercicis de seguiment proposats pel professor de sessió en sessió.

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.