Commit 2ab7a7fd authored by LiberIT's avatar LiberIT

made a function petri net

parent 6d13ee1b
Pipeline #27569282 passed with stages
in 2 minutes and 25 seconds
......@@ -5,7 +5,7 @@ image: ubuntu:latest
stages:
- compile
- quiz
# -deploy
wherami:
stage: compile
......@@ -45,3 +45,5 @@ check:
# memory
# code coverage
# test coverage
......@@ -76,8 +76,8 @@ for making an invitation.
This would be roughly equivalent to a current capability. However as you may
notice it doesn't say who was invited, nor who did the inviting. In Pyash this
is a simple fix, the inviter would go in the nominative_case, and guest would go
in the benefactive_case.
is a simple fix, the inviter would go in the nominative-case, and guest would go
in the benefactive-case.
If this is a secretivie Illuminated organization where people don't know each
others name, then can simply give a long public key for each. This way if a
......
......@@ -673,3 +673,9 @@ have multiple workers working on the same page.
2018/08/02 12:09:52 those shouldn'tbe unresolved but they are essential
2018/08/02 12:14:34 okay well w/e it compiles for now
2018/08/02 12:15:33 I'll sort out the rest of the stuff tommorrow
2018/08/09 11:15:34 working on making the graphviz representation of the functions
2018/08/09 11:15:44 hopefully it will make it easier to get my head around how it works
2018/08/09 11:15:53 then I'llbe able to code it
2018/08/09 11:16:56 so next have to write out what the function paragraph looks like
2018/08/09 11:17:06 and then what it looks like after the variable names are transformed
2018/08/09 12:23:12
// dot -Tps function.gv -o function.ps
digraph PyashFunctions {
// thing
node [shape=box, fillcolor=white, style="filled,rounded"];
functionCall;
rawKnowledgeOutput;
newRawKnowledge;
safeFunctionContent;
rawKnowledge;
knowledge;
namesUsed;
namesUsed2;
internalResult;
newFunctionContent;
functionParagraph;
functionCallTypeInformation;
functionInputVariables;
linePointer;
functionContent;
functionDeclaration;
workerNamePointer;
//workerNamePointer2;
// action
node [shape=box, fillcolor=black, fontcolor=white, style="filled"];
findFunction;
translateArgumentsToTypes;
//translateVariableNames2;
interpretNextSentence;
workerNamePointer -> translateVariableNames1;
rawKnowledge -> translateVariableNames1;
translateVariableNames1 -> knowledge;
translateVariableNames1 -> namesUsed;
//namesUsed -> plus1;
namesUsed[label="worker names used:\l\
kyimgina hnucgika li"];
//plus1 -> workerNamePointer2;
//workerNamePointer -> plus1;
//plus1[label="plus"];
linePointer -> interpretNextSentence;
knowledge -> interpretNextSentence;
interpretNextSentence -> functionCall;
knowledge -> findFunction;
functionCall -> translateArgumentsToTypes;
translateArgumentsToTypes -> functionCallTypeInformation;
functionCallTypeInformation -> translateToDeclarativeSentence;
translateToDeclarativeSentence -> functionDeclaration;
functionDeclaration -> findFunction;
findFunction -> functionParagraph;
//functionParagraph -> readFunctionDeclaration;
functionParagraph -> readFunctionContent;
//readFunctionDeclaration -> functionDeclaration;
functionDeclaration -> makeFunctionInputVariables;
makeFunctionInputVariables -> functionInputVariables;
readFunctionContent -> functionContent;
functionInputVariables -> translateVariableNamesToValues;
translateVariableNamesToValues -> newFunctionContent;
newFunctionContent -> primitiveFunctionCall;
//knowledge -> primitiveFunctionCall;
primitiveFunctionCall -> internalResult;
//newFunctionContent -> translateVariableNames2;
//workerNamePointer2 -> translateVariableNames2;
translateVariableNames1[label="translateVariableNamesToWorkerAssignedNames"]
workerNamePointer[label="worker name pointer:\l 1"]
// TODO add an ambigious named variable inside function
rawKnowledge[label="user knowledge:\l\
doyi tyutplusksuh\l\
hnucgina htikyaka li\l\
htikyayi hnucgika tyutdoyu plustu\l\
htikyaka fi\l\
\l\
hnucgina hyikdokali\l\
hnucgiyi tyutplustu \l"]
knowledge[label="internal knowledge:\l\
doyi tyutplusksuh\l\
htikyayi htikyaka tyutdoyu plustu\l\
htikyaka fi\l\
\l\
kyimgina hyikdokali\l\
kyimgiyi tyutplustu \l"]
functionCall[label="function call sentence:\lkyimgiyi tyutplustu"]
linePointer[label="line pointer:\l5"]
functionCallTypeInformation[label="function call type information:
doyi tyutplustu"];
functionParagraph[label="function paragraph (with ambiguous name):\l\
doyi tyutplusksuh\l\
hnucgina htiyaka li\l\
htikyayi hnucgika tyutdoyu plustu\l\
htikyaka fi\l"];
functionDeclaration[label="function declaration:\l\
doyi tyutplusksuh\l"]
functionInputVariables[label="function input variables:\l\
kyimgina hyindoka li\l\
htikyana kyimgika li\l"]
functionContent[label="function content (with ambiguious names):\l\
hnucgina htikyaka li\l\
htikyayi hnucgika tyutdoyu plustu\l"]
functionContent -> translateVariableNamesToWorkerAssignedNames;
namesUsed -> translateVariableNamesToWorkerAssignedNames;
translateVariableNamesToWorkerAssignedNames -> safeFunctionContent;
translateVariableNamesToWorkerAssignedNames -> namesUsed2;
namesUsed2[label="worker names used:\l\
kyimgina hnucgika li\l\
kyipgina hnucgika li\l"];
safeFunctionContent[label="safe function content:\l\
kyipgina htikyaka li\l\
htikyayi kyipgika tyutdoyu plustu\l"]
safeFunctionContent -> translateVariableNamesToValues;
newFunctionContent[label="new function content:\l\
kyimgiyi hyikdoka tyutdoyu plustu\l"]
//workerNamePointer2[label="worker names used:\l "];
internalResult[label="internal result:\lkyimgina tyindoka li"];
internalResult -> translateVariableNamesToValues2;
namesUsed2 -> translateVariableNamesToValues2;
translateVariableNamesToValues2 -> rawKnowledgeOutput;
rawKnowledgeOutput[label="user knowledge output:\l\
hnucgina tyindoka li\l"]
rawKnowledge -> addenda;
rawKnowledgeOutput -> addenda;
addenda -> newRawKnowledge;
newRawKnowledge[label="new user knowledge:\l\
doyi tyutplusksuh\l\
hnucgina htikyaka li\l\
htikyayi hnucgika tyutdoyu plustu\l\
htikyaka fi\l\
\l\
hnucgina hyikdokali\l\
hnucgiyi tyutplustu \l\
hnucgina tyindokali\l"]
fontsize=10;
font="DejaVu Sans Mono"
overlap=false;
label="Pyash Function semantics";
//{rank=same; readFunctionDeclaration readFunctionContent;}
//{rank=same; functionDeclaration functionContent;}
}
This diff is collapsed.
......@@ -10,7 +10,7 @@ specification.
\item[ksiktfikge consequence reflecter] a REPL, reflects the consequences of various statemnts.
\item[hk6nge bytecode to C compiler] compiles pyash bytecode to C source-code.
\item[hlakryange outof-translator] converts pyash bytecode to analytic language.
\item[mlathlasxrisge command-line-user\_interface] a friendly command line
\item[mlathlasxrisge command-line-user\-interface] a friendly command line
environment for linux.
\end{description}
......@@ -129,9 +129,9 @@ A typical authentication goes:
\begin{itemize}
\item S: "hello"
\item C: "hello"
\item S: "me _nom hostname's user _acc name _rea you _nom what _acc name _inte"
\item C: "me _nom hostname's user _acc name _rea"
\item S: "you _nom secret _or salt code _ins verification _inte"
\item S: "me -nom hostname's user -acc name -rea you -nom what -acc name -inte"
\item C: "me -nom hostname's user -acc name -rea"
\item S: "you -nom secret -or salt code -ins verification -inte"
\end{itemize}
......
......@@ -11,9 +11,9 @@ The general form is tense-voice-aspect
\begin{table}
\begin{tabular}{lll}
& active & passive \\
& active & passive \\
present & ra & rapyoh or pri7h \\
past & & ki & kipyoh or tri7h \\
past & ki & kipyoh or tri7h \\
future & bi & bipyoh \\
\end{tabular}
\end{table}
......
No preview for this file type
......@@ -165,7 +165,7 @@ for the normal case of a htin fits within the 15 bytes, then while writing the
worker can put positive-infinity as the index, updating that value
last.
Though for those that have several to write. Can write a uint32_t to the 0th
Though for those that have several to write. Can write a uint32\-t to the 0th
place of the form 0xFFFE (negative-infinity) followed by number of arrays that
are required, it would also be updated last. Then it would fill the following
initial ones with positive-infinity unless it doesn't have enough room, in which case would
......@@ -190,7 +190,7 @@ misleading with garbage data.
\subsection{Relative-Pointers}
yeah, I think I can do a relative-pointer _type name _case style, then either
yeah, I think I can do a relative-pointer -type name -case style, then either
the initial worker that loaded the code would put in the relative pointer, or
the first worker that attempts to evaluate it. main issue is that relative
pointers aren't generally human readable. but if I keep the name then it would
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment