Debian Games Team Meeting

This announcement was provided by Martin Erik Werner. I’m reproducing it for Planet Ubuntu.

The Debian/Ubuntu Games Team is organizing another meeting. If you’re into developing and/or packaging of games, or just generally curious about games in Debian/Ubuntu, you should join!

It will be held next Saturday, the 26th of November, in the #debian-games channel on irc.debian.org (also know as irc.oftc.net) at 10:00 UTC. More information is available on the wiki page Games/Meetings/2011-11-26.

The agenda starts off with the usual round of introductions, so if you’re new to the Team, say hi! Then we’ll be going through the action items from the last meeting, including work on the Debian Games LiveCD, and what’s up with the /usr/games/ path anyways?

Next we’ll be moving onto how the Games Team is faring in terms of members: are new recruits finding it comfortable, should we advertise more?

Next up it’s the squeeky penguin: Wheezy is somewhere in the not-completely-distant future, how does that affect the Games Team, should we be scuffling to get specific tasks done?

Then onto the recurring question of Sponsoring, and how to improve it, should we be utilising DebExpo more? What about our favourite PET?

Lastly, PlayDeb is doing some really neat stuff, would it make sense for our team to push some changes to PlayDeb? Would it make sense for PlayDeb to push changes to Debian Games?

Hopes are for a good discussion, and a merry time, hope to see you all there!

Apunts de Teoria de la Computació: Gramàtiques incontextuals

Una gramàtica incontextual (CFG, Context Free Grammar) \(G\) és un conjunt de regles de substitució on les parts esquerres són mots de longitud 1. Aquestes regles les anomenarem produccions i les seves parts esquerres variables (o no-terminals). Els símbols restants els anomenem terminals.

Dues regles com per exemple \(S \rightarrow aS\) i \(S \rightarrow X\) es poden representar de forma agrupada de la següent manera: \(S \rightarrow aS | X\).

En una gramàtica sempre hi ha una variable (normalment la primera que apareix) que anomenem símbol inicial. Les paraules generades per la gramàtica són aquelles formades per terminals a les quals es pot arribar des del símbol inicial.

Podem representar les substitucions necessàries per arribar a una paraula amb la sintaxi ja coneguda, o bé en forma d’arbre (arbre de derivació o arbre sintàctic).

Les gramàtiques incontextuals també es poden representar formalment com una tupla \(G=\langle{}V,\Sigma,\delta,S\rangle\).

Un llenguatge s’anomena llenguatge incontextual si existeix una gramàtica que el genera. Existeixen algorismes \(O(n^3)\) per comprovar si una paraula és generable per una gramàtica i generar-ne l’arbre sintàctic. Això és útil per a compiladors i intèrprets.

Quan una gramàtica permet més d’un arbre de derivació per a una paraula diem que és ambigua. Això no és desitjable quan volem utilitzar la gramàtica per interpretar el significat de les entrades.

Un criteri per determinat l’ambigüitat quan només utilitzem regles lineals (on cada alternativa de la part dreta només inclou una única variable): si no existeixen dues alternatives amb que es pugui generar el mateix, llavors la regla no genera ambigüitat.


Operacions sobre gramàtiques

Els llenguatges incontextuals estan tancats per unió: Tenim dues CFG \(G_1\) i \(G_2\) que generen els llenguatges \(\mathcal{L}(G_1)=L_1\) i \(\mathcal{L}(G_2)=L_2\). Suposem que els llenguatges no comparteixen variables (si no fos així, les podem reanomenar). Si definim la operació unió de gramàtiques \(G_1\cup G_2=\langle V_1 \cup V_2 \cup \{S\}, \Sigma_1 \cup \Sigma_2, \delta_1 \cup \delta_2 \cup \{S \rightarrow S_1|S_2, S\}\rangle\) llavors aquesta compleix \(\mathcal{L}(G_1 \cup G_2) = \mathcal{L}(G_1) \cup \mathcal{L}(G_2) = L_1 \cup L_2\).

També ho són per concatenació. Amb les mateixes condicions que abans, \((G_1\cdot G_2)=\langle V_1 \cup V_2 \cup \{S\}, \Sigma_1 \cup \Sigma_2, \delta_1 \cup \delta_2 \cup \{S \rightarrow S_1S_2\}, S\rangle\) compleix \(\mathcal{L}(G_1\cdot G_2)=\mathcal{L}(G_1)\cdot \mathcal{L}(G_2)=L_1\cdot L_2\).

Per l’operació estrella: \(G^*=\langle V \cup \{S’\}, \Sigma, \delta \cup \{S’ \rightarrow S’S|\lambda\}, S’\rangle\) compleix \(\mathcal{L}(G^*)=\mathcal{L}(G)^*=L^*\).

Per l’operació revessat: \(G^R=\langle V, \Sigma, \{X \rightarrow u^R | (X \rightarrow u) \in \delta\}, S’\rangle\) compleix \(\mathcal{L}(G^R)=\mathcal{L}(G)^R=L^R\) ja que \(\forall X \in V, \mathcal{L}(G, X)^R \subseteq \mathcal{L}(G^R,X)\).

I per imatge de morfisme: \(L \in CFL\) i \(\sigma: \Sigma_1 \rightarrow \Sigma_2\) tal que \(\sigma(uv)=\sigma(u)\sigma(v) \Rightarrow \sigma(L) \in CFL\). En aquest cas a la tupla de la gramàtica resultant es substitueix \(\delta\) per \(\{X\rightarrow \sigma(u) | (X \rightarrow u) \in \delta\}\).

En canvi, no són tancats per intersecció (si \(L_1, L_2 \in CFL \nRightarrow (L_1 \cap L_2) \in CFL\)) ni complementari.

Aquests apunts estan basats en els vídeos de Teoria de la Computació de Guillem Godoy (UPC).

Apunts de Teoria de la Computació: Teoria de llenguatges

Un alfabet (\(\Sigma\)) és un conjunt finit d’elements (símbols), habitualment caràcters alfanumèrics.

Un mot és una llista de símbols d’un alfabet. El mot buit (llista de longitud 0) el denotarem amb el meta-símbol \(\lambda\). Utilitzarem \(u\), \(v\), \(w\), \(u_1\), … per denominar paraules.

\(\Sigma = \{a, b\}\)
Paraules: ab, bbb, a, \(\lambda\)
Longituds: |ab|=2, |bbb|=3, |a|=1, |\(\lambda\)|=0

Extenem la notació de les longituds per a occurències d’un mot dins d’un altre: \(|u|_w\)

\(|ab|_a=1\), \(|bbb|_b=3\), \(|bbb|_{bb}=2\)

Per referir-nos al símbol i-éssim del mot u utilitzarem: u[i]

ab[1] = a, ab[2] = b

Amb la operació producte (\(u\cdot v\) o \(uv\)) representem la concatenació de dues paraules. Per exemple:

\((ab)\cdot(bbb) = abbbb\)
Element neutre: \(u\cdot\lambda=\lambda\cdot u=u\)
Associativitat: \(u\cdot(v\cdot w)=(u\cdot v)\cdot w\)

Amb \(\Sigma^*\) representem el conjunt de tots els mots possibles que podem construir amb l’alfabet \(\Sigma\). Exemple per a \(\Sigma = \{a, b\}\):

Continue reading →

Apunts de Bases de Dades

Introducció

Els tres mons

Món   Disseny… (BD) Enginyeria del Software Dependència tecnològica
Món real objectes del món real conceptual especificació independent
Món conceptual coneixements / informació
Món de les representacions dades lògic i físic disseny dependent
Món conceptual

Classes d'objectes: quelcom real, identificable i distingible.

… [FIXME: imatge diagrama UML] …

Món de les representacions

El més obvi seria utilitzar fitxers (i directoris), però aquests no es permeten representar associacions tal com nosaltres volem. Per aquest motiu, neix el concepte de base de dades: un conjunt estructurat de dades que permet representar classes d'objectes i les seves associacions amb integració (sense repeticions) i compartició (molts usuari alhora) de dades.

Evolució:
  • Model jeràrquic: arbres (IBM). Tenen el problema que un fill pot tenir només un sol pare.
  • Model en xarxa: xarxes.
  • Model relacional (1969, Codd): taules.

SGBD (DBMS)

Un sistema gestor de bases de dades (database management system) és un programa complex que facilita la representació de classes d'objectes i les seves associacions i diverses tasques de gestió de dades als programes d'aplicació. Nosaltres utilitzarem el PostgreSQL.

Continue reading →

Apunts de Càlcul: Funcions d’una variable

Introducció

Considerem una funció real de variable real \(f: A \in \mathbb{R} \rightarrow \mathbb{R}\) tal que \(\forall x \in A\) existeix com a màxim un \(y \in \mathbb{R} : y=f(x)\). Definim:

Definim el domini d’una funció:
\(\operatorname{Dom} f = \left\{x \in \mathbb{R} / \exists f(x) \in \mathbb{R}\right\} = \left\{x \in \mathbb{R} / \exists y \in \mathbb{R} / y=f(x)\right\}\)

I el recorregut d’una funció:
\(\operatorname{Im} f = \left\{f(x) / x \in \operatorname{Dom} f\right\} = \left\{y \in \mathbb{R} / \exists x \in \operatorname{Dom} f / y=f(x)\right\}\)

També: \(\operatorname{Graf}(f) = \left\{(x,y) / x \in \operatorname{Dom} f\right\}\) 

Exemple

\(\begin{array}{ll}f: & \mathbb{R} \rightarrow \mathbb{R} \\ & x \mapsto f(x)=|x|\end{array}\) \(\operatorname{Dom f} = \mathbb{R}\)
\(\operatorname{Im f} = \mathbb{R^+} \cup \{0\} = [0, +\infty)\)
\(\operatorname{Graf(f)} = \left\{(x,x) / x \ge 0\right\} \cup \left\{(x,-x) / x < 0\right\}\)
Tipus de funcions

Una funció \(\begin{array}{ll}f: & \mathbb{R} \rightarrow \mathbb{R} \\ & x \mapsto f(x)\end{array}\):

Continue reading →

You are reading: Apunts de Càlcul

 
web development