Sunteți pe pagina 1din 6

Universidad de Mlaga

Dpto. Lenguajes y Ciencias de la Computacin


Programacin Concurrente

Introduccin a Pascal-FC

Manuel Daz, Daniel Garrido

Pascal-FC
z Lenguaje para docencia
Desarrollado en la Univ. de York
z Alan Burns, Geoff Davies

Pascal simplificado
z No tiene strings, ficheros, punteros ni mdulos

Mecanismos para concurrencia


z Semforos, monitores, paso de mensajes,

rendezvous, recursos protegidos

1
Pascal-FC
z Modelo de procesos en lenguajes concurrentes
Estructura
z Estticos
z Dinmicos
Nivel
z Jerarquas de procesos
Inicializacin
z Parmetros en tiempo de ejecucin?
Representacin
z Procesos explcitos
z Procesos no explcitos
Forma de terminacin
z Normal, errores, abortados, ...

Pascal-FC
z Modelo de procesos en Pascal-FC
Estructura esttica
Lenguaje plano
Permite inicializacin
Procesos explcitos

2
Pascal-FC
program <nombre> (* Cuerpo principal *)
const begin
(* Constantes *) ....
type cobegin
(* Tipos de usuario *) (* Creacin de procesos *)
A;
process A(<parametros>) B;
var C;
(* Variables locales *) coend;
begin
(* Cuerpo del proceso *) end.
end;

Pascal-FC
z Procesos
process A(<parametros>) process type
var tipo_proceso(<parametros>)
(* Variables locales del var
proceso*) (* Variables locales del
begin proceso*)
(* Cuerpo del proceso *) begin
end; (* Cuerpo del proceso *)
end;

3
Pascal-FC
z Procesos
process type var
tipo_proceso(id:integer) a,b:tipo_proceso;
begin c:array [1..10] of tipo_proceso;
writeln(Mi id: ,id) begin
end; cobegin
a(20);
b(30);
for i:=1 to 10 do
c[i];
coend
end.

Pascal-FC
z Declaraciones
const var
PI=3.14; a:integer;
b:char;
type c:real;
lista=array [1..10] of integer;
d:boolean;
punto=record
e:array [1..10] of integer;
x:integer;
f:lista;
y:integer;
end;

4
Pascal-FC

z Asignacin:
variable:=valor;
z Sentencia nula:
null;

Pascal-FC
z Sentencias de seleccin: if
if <cond> then if a<3 then
sentencia b:=5
else else
sentencia_else; c:=6;

if <cond> then if c=true then


begin begin
bloque ...
end end
else else
begin begin
bloque_else ...
end; end;

5
Pascal-FC
z Sentencias iterativas: for, while, repeat
for var:=1 to n do repeat
sentencia;
sentencias
for var:=1 to n do until <cond>;
begin
sentencias
end;
repeat
while <cond> do sentencias
begin forever;
sentencias
end;

Pascal-FC
z Escritura en pantalla
write, writeln
z Ej: writeln(Variable: ,a);
z Lectura de teclado
read, readln
z readln(a);
z Pausas:
sleep(<segundos>);
z Valores aleatorios: random
Ej: sleep(random(5));

S-ar putea să vă placă și