Differences

This shows you the differences between two versions of the page.

Link to this comparison view

alf:teme:tema3_en [2020/03/21 15:29]
diana.ghindaoanu
alf:teme:tema3_en [2020/04/07 20:06] (current)
alexandru.radovici
Line 4: Line 4:
  
 <note important>​ <note important>​
-Deadline: **7th of April, 23:55**\\+Deadline: **12th of April, 23:55**\\
 Points: **2 points** out of the final grade\\ Points: **2 points** out of the final grade\\
 Upload the homework: [[https://​vmchecker.cs.pub.ro|vmchecker.cs.pub.ro]]\\ Upload the homework: [[https://​vmchecker.cs.pub.ro|vmchecker.cs.pub.ro]]\\
Line 31: Line 31:
  
 Try running small scripts to test every feature. Try running small scripts to test every feature.
 +
 +A useful debugging too is [[https://​nolanlawson.github.io/​jison-debugger|jison-debugger]]
  
 ===== AST Format ===== ===== AST Format =====
Line 48: Line 50:
  
 The list of the node ids is: The list of the node ids is:
-  * program ​- the actual program+  * script ​- the actual program
   * var - variable definition   * var - variable definition
   * expr - any expression   * expr - any expression
Line 56: Line 58:
   * prop - a property of a class   * prop - a property of a class
   * vector - array definition   * vector - array definition
-  * element ​- an element of an array+  * element_of_vector ​- an element of an array
   * if_then - if statement   * if_then - if statement
-  * loop_while ​- while statement +  * loop_when ​- while statement 
-  * loop_for ​- for statement +  * loop_go ​- for statement 
-  * function_run ​- call (run) a function+  * function_call ​- call (run) a function
   * return - value of a function   * return - value of a function
-  * value - a value (integerlogic, float, string, user_defined)+  * value - a value (intbool, float, string, character, user_defined)
  
 ===== Questions ===== ===== Questions =====
Line 243: Line 245:
 </​code>​ </​code>​
  
-[[https://​github.com/​upb-fils/​alf/​tree/​master/​Devoir/​alf/​verify/​alf/​6_class|Example]]+[[https://​github.com/​upb-fils/​alf/​tree/​master/​Devoir/​alf/​verify/​alf/​6_struct|Example]]
  
 === Property access === === Property access ===
Line 266: Line 268:
 </​code>​ </​code>​
  
-[[https://​github.com/​upb-fils/​alf/​tree/​master/​Devoir/​alf/​verify/​alf/​6_class|Example]]+[[https://​github.com/​upb-fils/​alf/​tree/​master/​Devoir/​alf/​verify/​alf/​6_struct|Example]]
  
  
Line 302: Line 304:
 <code javascript>​ <code javascript>​
 { {
- id:"vector_element",+ id:"element_of_vector",
  vector:{  vector:{
  expression for array  expression for array
Line 401: Line 403:
  
 <​code>​ <​code>​
-function function_name:​return_type ​(parameter1:​[parameter1_type][<​-value],​ ...) -> expression;+function function_name (parameter1:​[parameter1_type][<​-value],​ ...):​return_type ​-> expression;
 </​code>​ </​code>​
  
 <​code>​ <​code>​
-function function_name:​return_type ​(parameter1:​[parameter1_type][<​-value],​ ...) +function function_name (parameter1:​[parameter1_type][<​-value],​ ...):​return_type ​
 start start
    ...    ...
Line 420: Line 422:
  
 <​code>​ <​code>​
-function sum:int (a:int, b:int) -> a+b;+function sum (a:int, b:int):int -> a+b;
 </​code>​ </​code>​
  
 <​code>​ <​code>​
-function power:int (a:int, n:int)+function power (a:int, n:int):int
 start start
   @var p:int;   @var p:int;
Line 456: Line 458:
 </​code>​ </​code>​
  
-[[https://​github.com/​upb-fils/​alf/​tree/​master/​Devoir/​alf/​verify/​alf/​4_messages|Example]]+[[https://​github.com/​UPB-FILS/​alf/​tree/​master/​Devoir/​alf/​verify/​alf/​4_function|Example]]
  
 === Return === === Return ===
Line 600: Line 602:
  
 <​code>​ <​code>​
-for variable_name ​between ​expression go+for variable_name ​of expression go
    ...    ...
 end; end;
Line 623: Line 625:
 <code javascript>​ <code javascript>​
 { {
- id:"loop_for",+ id:"for",
         variable:​variable_name,​         variable:​variable_name,​
  exp:{  exp:{
Line 639: Line 641:
 <code javascript>​ <code javascript>​
 { {
- id:"loop_for",+ id:"for",
         variable:​variable_name,​         variable:​variable_name,​
  from: { expression },  from: { expression },
Line 703: Line 705:
  
 <​code>​ <​code>​
-*register identifier value+&register identifier value
 </​code>​ </​code>​
  
Line 712: Line 714:
  
 <​code>​ <​code>​
-*register platform ...+&register platform ...
  
 ... ...
  
-*if platform = windows ​+&if platform = windows ​
 p <- "​Windows" ​ #this source is ignored if platform is not windows# p <- "​Windows" ​ #this source is ignored if platform is not windows#
-*else+&else
 p <- "​Linux" ​ #this source code is ignored if platform is not linux# p <- "​Linux" ​ #this source code is ignored if platform is not linux#
-*endif+&endif
 </​code>​ </​code>​
  
Line 727: Line 729:
  
 <​code>​ <​code>​
-*register N value+&register N value
  
 ... ...
  
-*unregister N+&unregister N
  
-*N is undefined*+#N is undefined#
 </​code>​ </​code>​
  
alf/teme/tema3_en.1584797349.txt.gz · Last modified: 2020/03/21 15:29 by diana.ghindaoanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0