diff --git a/AlgebraicDataflowArchitectureModel/models/JumpGame.model b/AlgebraicDataflowArchitectureModel/models/JumpGame.model index e1b9250..b9e3302 100644 --- a/AlgebraicDataflowArchitectureModel/models/JumpGame.model +++ b/AlgebraicDataflowArchitectureModel/models/JumpGame.model @@ -61,10 +61,10 @@ channel C6 { in position(p, update2(p2, g2)) = p2 in ground(g, update2(p2, g2)) = g2 - out onground(o:Bool, update2(p2, g2)) = (g2 == true) && (right(p2) <= 0.0) + out onground(o:Bool, update2(p2, g2)) = (g2 == true && right(p2) <= 0.0) } channel C7 { - in position(p, update7(p2)) == p2 - out clear(c:Bool, update7(p2)) == (left(p2) > 100.0) - out gameover(go:Bool, update7(p2)) == (right(p2) < -1.0) + in position(p, update7(p2)) = p2 + out clear(c:Bool, update7(p2)) = (left(p2) > 100.0) + out gameover(go:Bool, update7(p2)) = (right(p2) < -1.0) } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/Kinematics.model b/AlgebraicDataflowArchitectureModel/models/Kinematics.model new file mode 100644 index 0000000..3d10af4 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/models/Kinematics.model @@ -0,0 +1,20 @@ +channel CIO { + out force(f:Double, action(x)) = x + out time(t:Double, action(x)) = t + 0.01 +} + +channel C1 { + in force(f, update1(y, m)) = y + in mass(m, update1(y, m)) = m + out acceleration(a:Double, update1(y, m)) = y / m +} + +channel C2 { + in acceleration(a, update2(z)) = z + out velocity(v:Double, update2(z)) = v + 0.01 * z +} + +channel C3 { + in velocity(v, update3(u)) = u + out position(p:Double, update3(u)) = p + 0.01 * u +} \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/Kinetics.model b/AlgebraicDataflowArchitectureModel/models/Kinetics.model deleted file mode 100644 index 5218206..0000000 --- a/AlgebraicDataflowArchitectureModel/models/Kinetics.model +++ /dev/null @@ -1,20 +0,0 @@ -channel CIO { - out force(f:Double, action(x)) == x - out time(t:Double, action(x)) == t + 0.01 -} - -channel C1 { - in force(f, update1(y, m)) == y - in mass(m, update1(y, m)) == m - out acceleration(a:Double, update1(y, m)) == y / m -} - -channel C2 { - in acceleration(a, update2(z)) == z - out velocity(v:Double, update2(z)) == v + 0.01 * z -} - -channel C3 { - in velocity(v, update3(u)) == u - out position(p:Double, update3(u)) == p + 0.01 * u -} \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/NemophilaAccounts.model b/AlgebraicDataflowArchitectureModel/models/NemophilaAccounts.model index 37f6b4b..c2cc23a 100644 --- a/AlgebraicDataflowArchitectureModel/models/NemophilaAccounts.model +++ b/AlgebraicDataflowArchitectureModel/models/NemophilaAccounts.model @@ -1,5 +1,5 @@ channel CIO_CreateAccount { - out accounts(acList:List, createAccount(name:Str)) == append(acList, { + out accounts(acList:List, createAccount(name:Str)) = append(acList, { "name": name, "posts": nil, "newFriend": null, @@ -12,75 +12,75 @@ } channel CIO_ChangeName(uid:Str) { - out accounts.{uid}.name(prevName:Str, changeName(name)) == name + out accounts.{uid}.name(prevName:Str, changeName(name)) = name } -channel CIO_CreatePost(uid:Str){ - out accounts.{uid}.posts(postsList:List, createPost(comment:Str)) == cons(comment:Str, postsList) +channel CIO_CreatePost(uid:Str) { + out accounts.{uid}.posts(postsList:List, createPost(comment:Str)) = cons(comment:Str, postsList) } -channel CIO_DeletePost(uid:Str){ - out accounts.{uid}.posts(postsList:List, deletePost(pid:Str)) == remove(postsList, pid:Str) +channel CIO_DeletePost(uid:Str) { + out accounts.{uid}.posts(postsList:List, deletePost(pid:Str)) = remove(postsList, pid:Str) } -channel CIO_PostRequesting(sendId:Str){ - out accounts.{sendId}.newRequesting(preNewResuesting:Str, postRequesting(recvId:Str)) == recvId +channel CIO_PostRequesting(sendId:Str) { + out accounts.{sendId}.newRequesting(preNewResuesting:Str, postRequesting(recvId:Str)) = recvId } -channel C_AddRequesting(sendId:Str){ - in accounts.{sendId}.newRequesting(preNewResuesting:Str, sync1(recvId:Str, sendRequested:Map, recvRequesting:Map, sendFriends:Map)) == recvId +channel C_AddRequesting(sendId:Str) { + in accounts.{sendId}.newRequesting(preNewResuesting:Str, sync1(recvId:Str, sendRequested:Map, recvRequesting:Map, sendFriends:Map)) = recvId ref accounts.{sendId}.friends(sendFriends:Map, sync1(recvId:Str, sendRequested:Map, recvRequesting:Map, sendFriends:Map)) ref accounts.{sendId}.requested(sendRequested:Map, sync1(recvId:Str, sendRequested:Map, recvRequesting:Map, sendFriends:Map)) ref accounts.{recvId}.requesting(recvRequesting:Map, sync1(recvId:Str, sendRequested:Map, recvRequesting:Map, sendFriends:Map)) - out accounts.{sendId}.requesting(sendRequesting:Map, sync1(recvId:Str, sendRequested:Map, recvRequesting:Map, sendFriends:Map)) == if(eq(contains(sendFriends:Map, recvId), true), + out accounts.{sendId}.requesting(sendRequesting:Map, sync1(recvId:Str, sendRequested:Map, recvRequesting:Map, sendFriends:Map)) = if(contains(sendFriends:Map, recvId) == true, sendRequesting, insert(sendRequesting:Map, recvId:Str, true)) - out accounts.{recvId}.requested(recvRequested:Map, sync1(recvId:Str, sendRequested:Map, recvRequesting:Map, sendFriends:Map)) == if(eq(contains(sendFriends:Map, recvId), true), + out accounts.{recvId}.requested(recvRequested:Map, sync1(recvId:Str, sendRequested:Map, recvRequesting:Map, sendFriends:Map)) = if(ontains(sendFriends:Map, recvId) == true, recvRequested, insert(recvRequested:Map, sendId:Str, true)) } -channel CIO_RejectRequest(recvId:Str){ - out accounts.{sendId}.requesting(sendRequesting:Map, rejectRequest(sendId:Str)) == delete(sendRequesting:Map, recvId:Str) - out accounts.{recvId}.requested(recvRequested:Map, rejectRequest(sendId:Str)) == delete(recvRequested:Map, sendId:Str) +channel CIO_RejectRequest(recvId:Str) { + out accounts.{sendId}.requesting(sendRequesting:Map, rejectRequest(sendId:Str)) = delete(sendRequesting:Map, recvId:Str) + out accounts.{recvId}.requested(recvRequested:Map, rejectRequest(sendId:Str)) = delete(recvRequested:Map, sendId:Str) } -channel CIO_AdmitFriend(recvId:Str){ - out accounts.{recvId}.newFriend(preNewFriend:Str, admitFriend(sendId:Str)) == sendId +channel CIO_AdmitFriend(recvId:Str) { + out accounts.{recvId}.newFriend(preNewFriend:Str, admitFriend(sendId:Str)) = sendId } -channel C_AddFriend(recvId:Str){ - in accounts.{recvId}.newFriend(preSendId:Str, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) == sendId +channel C_AddFriend(recvId:Str) { + in accounts.{recvId}.newFriend(preSendId:Str, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) = sendId ref accounts.{sendId}.requesting(preSendTing:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) ref accounts.{recvId}.requested(preRecvTed:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) - out accounts.{sendId}.friends(sendFriends:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) == if(and(eq(contains(preSendTing:Map, recvId), true), eq(contains(preRecvTed:Map, sendId), true)), + out accounts.{sendId}.friends(sendFriends:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) = if(contains(preSendTing:Map, recvId) == true && contains(preRecvTed:Map, sendId) == true, insert(sendFriends, recvId:Str, true), sendFriends) - out accounts.{recvId}.friends(recvFriends:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) == if(and(eq(contains(preSendTing:Map, recvId), true), eq(contains(preRecvTed:Map, sendId), true)), + out accounts.{recvId}.friends(recvFriends:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) = if(contains(preSendTing:Map, recvId) == true && contains(preRecvTed:Map, sendId) == true, insert(recvFriends, sendId:Str, true), recvFriends) - out accounts.{sendId}.requesting(sendRequesting:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) == if(and(eq(contains(preSendTing:Map, recvId), true), eq(contains(preRecvTed:Map, sendId), true)), + out accounts.{sendId}.requesting(sendRequesting:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) = if(contains(preSendTing:Map, recvId) == true && contains(preRecvTed:Map, sendId) == true, delete(sendRequesting:Map, recvId:Str), sendRequesting) - out accounts.{recvId}.requested(recvRequested:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) == if(and(eq(contains(preSendTing:Map, recvId), true), eq(contains(preRecvTed:Map, sendId), true)), + out accounts.{recvId}.requested(recvRequested:Map, sync2(sendId:Str, preSendTing:Map, preRecvTed:Map)) = if(contains(preSendTing:Map, recvId) == true && contains(preRecvTed:Map, sendId) == true, delete(recvRequested:Map, sendId:Str), recvRequested) } -channel CIO_DeleteFriendRequest(sendId:Str){ - out accounts.{sendId}.delReqFriend(preDelReqFriend:Str, deleteFriend(recvId:Str)) == recvId +channel CIO_DeleteFriendRequest(sendId:Str) { + out accounts.{sendId}.delReqFriend(preDelReqFriend:Str, deleteFriend(recvId:Str)) = recvId } -channel CIO_DeleteFriend(sendId:Str){ - in accounts.{sendId}.delReqFriend(preRecvId:Str, sync3(recvId:Str, preSendFriends:Map, preRecvFriends:Map)) == recvId +channel CIO_DeleteFriend(sendId:Str) { + in accounts.{sendId}.delReqFriend(preRecvId:Str, sync3(recvId:Str, preSendFriends:Map, preRecvFriends:Map)) = recvId ref accounts.{sendId}.friends(preSendFriends:Map, sync3(recvId:Str, preSendFriends:Map, preRecvFriends:Map)) ref accounts.{recvId}.friends(preRecvFriends:Map, sync3(recvId:Str, preSendFriends:Map, preRecvFriends:Map)) - out accounts.{sendId}.friends(sendFriends:Map, sync3(recvId:Str, preSendFriends:Map, preRecvFriends:Map)) == if(or(eq(contains(preSendFriends:Map, recvId), true), eq(contains(preRecvFriends:Map, sendId), true)), + out accounts.{sendId}.friends(sendFriends:Map, sync3(recvId:Str, preSendFriends:Map, preRecvFriends:Map)) = if(contains(preSendFriends:Map, recvId) == true || contains(preRecvFriends:Map, sendId) == true, delete(sendFriends:Map, recvId:Str), sendFriends) - out accounts.{recvId}.friends(recvFriends:Map, sync3(recvId:Str, preSendFriends:Map, preRecvFriends:Map)) == if(or(eq(contains(preSendFriends:Map, recvId), true), eq(contains(preRecvFriends:Map, sendId), true)), + out accounts.{recvId}.friends(recvFriends:Map, sync3(recvId:Str, preSendFriends:Map, preRecvFriends:Map)) = if(contains(preSendFriends:Map, recvId) == true || contains(preRecvFriends:Map, sendId) == true, delete(recvFriends:Map, sendId:Str), recvFriends) } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/OnlineBattleGame.model b/AlgebraicDataflowArchitectureModel/models/OnlineBattleGame.model index ceb7100..846ffbf 100644 --- a/AlgebraicDataflowArchitectureModel/models/OnlineBattleGame.model +++ b/AlgebraicDataflowArchitectureModel/models/OnlineBattleGame.model @@ -1,31 +1,31 @@ channel CIO_Signup{ - out accounts(adb:Map, signUp(aid:Str, name:Str)) == insert(adb, aid, {"name": name}) + out accounts(adb:Map, signUp(aid:Str, name:Str)) = insert(adb, aid, {"name": name}) } channel CIO_ChangeName(aid:Str) { - out accounts.{aid}.name(prev_name:Str, changeName(name)) == name + out accounts.{aid}.name(prev_name:Str, changeName(name)) = name } channel CIO_CreateRoom { - out rooms(rdb:Map, createRoom(rid:Str, blue_id:Str, red_id:Str)) == insert(rdb, rid, {"blue_id": blue_id, "red_id": red_id}) + out rooms(rdb:Map, createRoom(rid:Str, blue_id:Str, red_id:Str)) = insert(rdb, rid, {"blue_id": blue_id, "red_id": red_id}) } channel CIO_ChangeRed_id(rid:Str) { - out rooms.{rid}.red_id(prev_red_id:Str, changeRed_id(red_id)) == red_id + out rooms.{rid}.red_id(prev_red_id:Str, changeRed_id(red_id)) = red_id } channel CIO_ChangeBlue_id(rid:Str) { - out rooms.{rid}.blue_id(prev_blue_id:Str, changeBlue_id(blue_id)) == blue_id + out rooms.{rid}.blue_id(prev_blue_id:Str, changeBlue_id(blue_id)) = blue_id } channel C_red(rid:Str) { - in rooms.{rid}.red_id(prev_aid:Str, sync(aid, name)) == aid - in accounts.{aid}.name(prev_name:Str, sync(aid, name)) == name - out rooms.{rid}.red_name(prev_name:Str, sync(aid, name)) == name + in rooms.{rid}.red_id(prev_aid:Str, sync(aid, name)) = aid + in accounts.{aid}.name(prev_name:Str, sync(aid, name)) = name + out rooms.{rid}.red_name(prev_name:Str, sync(aid, name)) = name } channel C_blue(rid:Str) { - in rooms.{rid}.blue_id(prev_aid:Str, sync(aid, name)) == aid - in accounts.{aid}.name(prev_name:Str, sync(aid, name)) == name - out rooms.{rid}.blue_name(prev_name:Str, sync(aid, name)) == name + in rooms.{rid}.blue_id(prev_aid:Str, sync(aid, name)) = aid + in accounts.{aid}.name(prev_name:Str, sync(aid, name)) = name + out rooms.{rid}.blue_name(prev_name:Str, sync(aid, name)) = name } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/POS.dtram b/AlgebraicDataflowArchitectureModel/models/POS.dtram index dc3d2d1..d1cb11c 100644 --- a/AlgebraicDataflowArchitectureModel/models/POS.dtram +++ b/AlgebraicDataflowArchitectureModel/models/POS.dtram @@ -1,18 +1,18 @@ model { channel CIO { - out payment(p:Int, purchase(x:Int)) == x + out payment(p:Int, purchase(x:Int)) = x } channel C3 { - in history(h, update3(u)) == u - out total(t:Int, update3(u)) == sum(u) + in history(h, update3(u)) = u + out total(t:Int, update3(u)) = sum(u) } channel C1 { - in payment(p, update1(y)) == y - out points(l:Int, update1(y)) == floor(y * 0.05) + in payment(p, update1(y)) = y + out points(l:Int, update1(y)) = floor(y * 0.05) } channel C2 { - in payment(p, update2(z)) == z - out history(h:List, update2(z)) == cons(z, h) + in payment(p, update2(z)) = z + out history(h:List, update2(z)) = cons(z, h) } } geometry { diff --git a/AlgebraicDataflowArchitectureModel/models/SimpleTwitter.model b/AlgebraicDataflowArchitectureModel/models/SimpleTwitter.model index 6604ea2..cea527d 100644 --- a/AlgebraicDataflowArchitectureModel/models/SimpleTwitter.model +++ b/AlgebraicDataflowArchitectureModel/models/SimpleTwitter.model @@ -1,7 +1,7 @@ channel Signup{ - out accounts(accountMap:Map, signUp(accountId:Str, name:Str)) == insert(accountMap, accountId, {"name": name, "tweets": nil}) + out accounts(accountMap:Map, signUp(accountId:Str, name:Str)) = insert(accountMap, accountId, {"name": name, "tweets": nil}) } channel Tweet(accountId:Str) { - out accounts.{accountId}.tweets(tweetList:List, tweet(contents:Str)) == append(tweetList, contents) + out accounts.{accountId}.tweets(tweetList:List, tweet(contents:Str)) = append(tweetList, contents) } diff --git a/AlgebraicDataflowArchitectureModel/models/StockManagement.model b/AlgebraicDataflowArchitectureModel/models/StockManagement.model index b133f44..4528cb7 100644 --- a/AlgebraicDataflowArchitectureModel/models/StockManagement.model +++ b/AlgebraicDataflowArchitectureModel/models/StockManagement.model @@ -4,47 +4,47 @@ } channel CIO_enter { - out arrival(s:Tuple, arrive(item:Str, num:Int)) == tuple(item, num) + out arrival(s:Tuple, arrive(item:Str, num:Int)) = tuple(item, num) } channel CIO_req { - out request(r:Tuple, req(item:Str, num:Int)) == tuple(item, num) + out request(r:Tuple, req(item:Str, num:Int)) = tuple(item, num) } channel C1 { - in arrival(ar, update1(ar2, st)) == ar2 + in arrival(ar, update1(ar2, st)) = ar2 ref stock(st:Map, update1(ar2, st)) - out available(av:Tuple, update1(ar2, st)) == tuple(fst(ar2), snd(ar2) + lookup(st, fst(ar2))) + out available(av:Tuple, update1(ar2, st)) = tuple(fst(ar2), snd(ar2) + lookup(st, fst(ar2))) } channel C2 { - in available(av, update2(av2, sh)) == av2 + in available(av, update2(av2, sh)) = av2 ref shortage(sh, update2(av2, sh)) - out deriver(dr:Tuple, update2(av2, sh)) == if(ge(snd(av2), lookup(sh, fst(av2))), + out deriver(dr:Tuple, update2(av2, sh)) = if(snd(av2) >= lookup(sh, fst(av2)), tuple(fst(av2), lookup(sh, fst(av2)), snd(av2) - lookup(sh, fst(av2))), tuple(fst(av2), 0, snd(av2))) - out shortage(s, update2(av2, sh)) == if(ge(snd(av2), lookup(s, fst(av2))), + out shortage(s, update2(av2, sh)) = if(snd(av2) >= lookup(s, fst(av2)), insert(s, fst(av2), 0), s) } channel C3 { - in deriver(dr, update3(dr2)) == dr2 - out stock(st, update3(dr2)) == insert(st, fst(dr2), snd(snd(dr2))) + in deriver(dr, update3(dr2)) = dr2 + out stock(st, update3(dr2)) = insert(st, fst(dr2), snd(snd(dr2))) } channel C4 { - in deriver(dr, update4(dr2)) == dr2 - out shipping(sp:Tuple, update4(dr2)) == tuple(fst(dr2), fst(snd(dr2))) + in deriver(dr, update4(dr2)) = dr2 + out shipping(sp:Tuple, update4(dr2)) = tuple(fst(dr2), fst(snd(dr2))) } channel C5 { - in request(rq, update5(rq2, st)) == rq2 + in request(rq, update5(rq2, st)) = rq2 ref stock(st, update5(rq2, st)) - out deriver(dr, update5(rq2, st)) == if(ge(lookup(st, fst(rq2)), snd(rq2)), + out deriver(dr, update5(rq2, st)) = if(lookup(st, fst(rq2)) >= snd(rq2), tuple(fst(rq2), snd(rq2), lookup(st, fst(rq2)) - snd(rq2)), tuple(fst(rq2), 0, lookup(st, fst(rq2)))) - out shortage(sh, update5(rq2, st)) == if(ge(lookup(st, fst(rq2)), snd(rq2)), + out shortage(sh, update5(rq2, st)) = if(lookup(st, fst(rq2)) >= snd(rq2), sh, insert(sh, fst(rq2), lookup(sh, fst(rq2)) + snd(rq2))) } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/StockManagement2.model b/AlgebraicDataflowArchitectureModel/models/StockManagement2.model index 6ee866a..36d6966 100644 --- a/AlgebraicDataflowArchitectureModel/models/StockManagement2.model +++ b/AlgebraicDataflowArchitectureModel/models/StockManagement2.model @@ -4,10 +4,10 @@ } channel CIO_enter { - out deriver(s:Tuple, arrive(item:Str, num:Int)) == tuple(item, num, num) + out deriver(s:Tuple, arrive(item:Str, num:Int)) = tuple(item, num, num) } channel C3 { - in deriver(dr, update3(dr2)) == dr2 - out shipping(sp:Tuple, update3(dr2)) == tuple(fst(dr2), fst(snd(dr2))) + in deriver(dr, update3(dr2)) = dr2 + out shipping(sp:Tuple, update3(dr2)) = tuple(fst(dr2), fst(snd(dr2))) } diff --git a/AlgebraicDataflowArchitectureModel/models/Test.model b/AlgebraicDataflowArchitectureModel/models/Test.model index a8a1348..0a7daa8 100644 --- a/AlgebraicDataflowArchitectureModel/models/Test.model +++ b/AlgebraicDataflowArchitectureModel/models/Test.model @@ -1,9 +1,9 @@ channel CIO { - out a(x:Int, set(n:Int)) == n + out a(x:Int, set(n:Int)) = n } channel C1 { - in a(x, update(y)) == y - out b(z, update(y)) == y + 1 - out c(v, update(y)) == v + y + in a(x, update(y)) = y + out b(z, update(y)) = y + 1 + out c(v, update(y)) = v + y } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/TravelDistance.model b/AlgebraicDataflowArchitectureModel/models/TravelDistance.model index a0c8fe2..07d12db 100644 --- a/AlgebraicDataflowArchitectureModel/models/TravelDistance.model +++ b/AlgebraicDataflowArchitectureModel/models/TravelDistance.model @@ -1,13 +1,13 @@ channel CX { - out pos_x(prev_x: Double, setX(cur_x: Double)) == cur_x + out pos_x(prev_x: Double, setX(cur_x: Double)) = cur_x } channel CY { - out pos_y(prev_y: Double, setY(cur_y: Double)) == cur_y + out pos_y(prev_y: Double, setY(cur_y: Double)) = cur_y } channel C { - in pos_x(prev_x, move(dx, dy)) == prev_x + dx - in pos_y(prev_y, move(dx, dy)) == prev_y + dy - out dist(prev_d, move(dx, dy)) == prev_d + sqrt(dx * dx + dy * dy) + in pos_x(prev_x, move(dx, dy)) = prev_x + dx + in pos_y(prev_y, move(dx, dy)) = prev_y + dy + out dist(prev_d, move(dx, dy)) = prev_d + sqrt(dx * dx + dy * dy) } diff --git a/AlgebraicDataflowArchitectureModel/models/Triangle.model b/AlgebraicDataflowArchitectureModel/models/Triangle.model index ebfe6b4..cf3d0e0 100644 --- a/AlgebraicDataflowArchitectureModel/models/Triangle.model +++ b/AlgebraicDataflowArchitectureModel/models/Triangle.model @@ -1,13 +1,13 @@ channel cio1 { - out base(x: Double, setBase(x2)) == x2 + out base(x: Double, setBase(x2)) = x2 } channel cio2 { - out height(y: Double, setHeight(y2)) == y2 + out height(y: Double, setHeight(y2)) = y2 } channel triangle { - in base(x, update(x2, y2)) == x2 - in height(y, update(x2, y2)) == y2 - out hypothenuse(z: Double, update(x2, y2)) == sqrt(x2 * x2 + y2 * y2) + in base(x, update(x2, y2)) = x2 + in height(y, update(x2, y2)) = y2 + out hypothenuse(z: Double, update(x2, y2)) = sqrt(x2 * x2 + y2 * y2) } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/Triangle2.model b/AlgebraicDataflowArchitectureModel/models/Triangle2.model index 82c59bd..5067fa0 100644 --- a/AlgebraicDataflowArchitectureModel/models/Triangle2.model +++ b/AlgebraicDataflowArchitectureModel/models/Triangle2.model @@ -1,13 +1,13 @@ channel cio1 { - out base(x: Double, setBase(x2)) == x2 + out base(x: Double, setBase(x2)) = x2 } channel cio2 { - out height(y: Double, setHeight(y2)) == y2 + out height(y: Double, setHeight(y2)) = y2 } channel triangle { - in base(x, update: Tuple) == fst(update) - in height(y, update) == snd(update) - out hypothenuse(z: Double, update) == sqrt(fst(update) * fst(update) + snd(update) * snd(update)) + in base(x, update: Tuple) = fst(update) + in height(y, update) = snd(update) + out hypothenuse(z: Double, update) = sqrt(fst(update) * fst(update) + snd(update) * snd(update)) } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/Twitter.model b/AlgebraicDataflowArchitectureModel/models/Twitter.model index 649abac..491d904 100644 --- a/AlgebraicDataflowArchitectureModel/models/Twitter.model +++ b/AlgebraicDataflowArchitectureModel/models/Twitter.model @@ -1,16 +1,16 @@ channel CIO1(myId:Str) { - out accounts(ac:List, signup(name:Str)) == cons(tuple(name, nil, nil), t1) + out accounts(ac:List, signup(name:Str)) = cons(tuple(name, nil, nil), t1) } channel CIO2(id:Str) { - out accounts.{id}.tweets(t1:List, tweet(text:Str, time:Long)) == cons(tuple(time, text), t1) + out accounts.{id}.tweets(t1:List, tweet(text:Str, time:Long)) = cons(tuple(time, text), t1) } channel C(myId:Str; m:Json) { - in accounts.{myId}.tweets(t1:List, m) == m.myTweets + in accounts.{myId}.tweets(t1:List, m) = m.myTweets sub C2(no:Int; flw:Json := m.followees.{no}) { - in accounts.{myId}.followees.{no}(id:Str, flw) == flw.id - in accounts.{flw.id}.tweets(t2:List, flw) == flw.tweets + in accounts.{myId}.followees.{no}(id:Str, flw) = flw.id + in accounts.{flw.id}.tweets(t2:List, flw) = flw.tweets } - out accounts.{myId}.timeline(l:List, m) == merge(m.myTweets, m.followees) + out accounts.{myId}.timeline(l:List, m) = merge(m.myTweets, m.followees) } \ No newline at end of file diff --git a/AlgebraicDataflowArchitectureModel/models/WOS.dtram b/AlgebraicDataflowArchitectureModel/models/WOS.dtram index 45f640c..81b0779 100644 --- a/AlgebraicDataflowArchitectureModel/models/WOS.dtram +++ b/AlgebraicDataflowArchitectureModel/models/WOS.dtram @@ -1,17 +1,17 @@ model { channel CIO2 { - out highest(h:Double, reset(v)) == v + out highest(h:Double, reset(v)) = v } channel CIO1 { - out temp_f(p:Double, observe(x)) == x + out temp_f(p:Double, observe(x)) = x } channel C1{ - in temp_f(q:Double, conversion(y)) == y - out temp_c(r:Double, conversion(z)) == (z-32) / 1.8 + in temp_f(q:Double, conversion(y)) = y + out temp_c(r:Double, conversion(z)) = (z-32) / 1.8 } channel C2{ - in temp_f(q:Double, update(y)) == y - out highest(h:Double, update(z)) == if(gt(z, h), z, h) + in temp_f(q:Double, update(y)) = y + out highest(h:Double, update(z)) = if(z >= h, z, h) } } geometry { diff --git a/AlgebraicDataflowArchitectureModel/models/WeatherObservationSystem.model b/AlgebraicDataflowArchitectureModel/models/WeatherObservationSystem.model index 2cd84d7..0096407 100644 --- a/AlgebraicDataflowArchitectureModel/models/WeatherObservationSystem.model +++ b/AlgebraicDataflowArchitectureModel/models/WeatherObservationSystem.model @@ -1,14 +1,14 @@ channel CIO2 { - out highest(h:Double, reset(v)) == v + out highest(h:Double, reset(v)) = v } channel CIO1 { - out temp_f(p:Double, observe(x)) == x + out temp_f(p:Double, observe(x)) = x } channel C1{ - in temp_f(q:Double, conversion(y)) == y - out temp_c(r:Double, conversion(z)) == (z-32) / 1.8 + in temp_f(q:Double, conversion(y)) = y + out temp_c(r:Double, conversion(z)) = (z-32) / 1.8 } channel C2{ - in temp_f(q:Double, update(y)) == y - out highest(h:Double, update(z)) == if(gt(z, h), z, h) + in temp_f(q:Double, update(y)) = y + out highest(h:Double, update(z)) = if(z >= h, z, h) } diff --git a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java index 472bb81..bc6429b 100644 --- a/AlgebraicDataflowArchitectureModel/src/parser/Parser.java +++ b/AlgebraicDataflowArchitectureModel/src/parser/Parser.java @@ -662,14 +662,14 @@ EQ), NEQ, NEQ), - GT, - GT), - LT, - LT), - GE, - GE), - LE, - LE), + GE, + GE), + LE, + LE), + GT, + GT), + LT, + LT), AND, AND), OR,