virtualization.lp
No OneTemporary

File Metadata

Created
Thu, Jul 9, 2:00 AM

virtualization.lp

virt_sizo(Sizo):-
bind_scope(_, assign_sizo(Sizo), strong).
virt_resource(files).
virt_sizo_control(Sizo, Resource):-
bind_scope(Scope, assign_sizo_control(Resource), strong);
bind_scope(Scope, assign_sizo(Sizo), strong).
% Decisions
%-----------------------------------
virt_sizo_strategy(Sizo, Resource, direct):-
not virt_sizo_control(Sizo, Resource);
virt_resource(Resource);
virt_sizo(Sizo).
activate_strategy_prefix(prefix) :-
2 #count{Sizo: virt_sizo_control(Sizo, files)}.
virt_sizo_strategy(Sizo, files, prefix):-
activate_strategy_prefix(prefix);
virt_sizo_control(Sizo, files);
not decided(virt_strategy(Sizo, files), 2).
virt_sizo_strategy(Sizo, Resource, common):-
virt_sizo_control(Sizo, Resource);
not virt_sizo_strategy(Sizo, Resource, prefix);
not decided(virt_strategy(Sizo, files), 2).
dict_sizo(Sizo, Id):-
Id= #sum{ 1, SizoLess : virt_sizo(SizoLess), SizoLess < Sizo};
virt_sizo(Sizo).
% Connect to Latex
%-----------------------------------
latex_registered_subjects(sizo, Sizo):- virt_sizo(Sizo).
latex_scope_demand(ScopeDemandSizo, sizo):-
bind(Target, demand(sizo));
Target = s(_, _, ScopeDemandSizo).
bind_scope(Scope, Sizo, strong):-
bind_scope(Scope, assign_sizo(Sizo), strong).
% Polymorphism based on virtualizaion strategy
%-----------------------------------
dfa_callguard(SymbRet, strategy(Strategy)):-
dfa_callfn(SymbRet, Fn);
bind_func(Fn, assign_zek_access(Resource));
SymbRet = s(_, _, Scope);
bind_scope(Scope, assign_sizo(Sizo), strong);
virt_sizo_strategy(Sizo, Resource, Strategy).
late(SymbRet, SymbolSizo, Sizo, dfa_callguard(SymbRet, strategy(Strategy))):-
bind_func(FnName, assign_zek_access(Resource));
virt_sizo_strategy(Sizo, Resource, Strategy);
dfa_callfn(SymbRet, FnName);
SymbRet=s(_, _, ScopeCaller);
scope_fnbody(ScopeCaller, FnCallerBody);
latex_symbol(FnCallerBody, sizo, SymbolSizo);
virt_sizo(Sizo).

Event Timeline