▁marked ▁with ▁ready ▁tag ▁when ▁data ▁has ▁been ▁computed . ▁Inst ru ctions ▁with ▁ready ▁arguments ▁get ▁executed ▁mark ing ▁their ▁result ▁data ▁ready ". ▁ ▁The ▁main ▁feature ▁of ▁B M DF M ▁is ▁to ▁provide ▁a ▁conventional ▁programming ▁parad ig m ▁at ▁the ▁top ▁level , ▁so - called ▁transparent ▁data flow ▁semantics . ▁A ▁user ▁understand s ▁B M DF M ▁as ▁a ▁virtual ▁machine , ▁which ▁runs ▁all ▁statements ▁of ▁an ▁application ▁program ▁in ▁parallel ▁having ▁all ▁parallel ization ▁and ▁synchron ization ▁mechan isms ▁fully ▁transparent . ▁The ▁statements ▁of ▁an ▁application ▁program ▁are ▁normal ▁operators , ▁which ▁any ▁single ▁thread ed ▁program ▁might ▁consist ▁of ▁- ▁they ▁include ▁variable ▁assign ments , ▁conditional ▁processing , ▁loops , ▁function ▁calls , ▁etc . ▁ ▁Suppose ▁we ▁have ▁the ▁code ▁fragment ▁shown ▁below : ▁ ▁( set q ▁a ▁( foo 0 ▁i )) ▁▁▁▁▁▁▁ ▁# ▁a ▁= ▁foo 0 ( i ); ▁( set q ▁b ▁( foo 1 ▁(+ ▁i ▁ 1 ))) ▁ ▁# ▁b ▁= ▁foo 1 ( i + 1 ); ▁( set q ▁b ▁( ++ ▁b )) ▁▁▁▁▁▁▁▁▁ ▁# ▁b ++; ▁( out f ▁" a ▁= ▁% d \ n " ▁a ) ▁▁▁▁▁ ▁# ▁printf (" a ▁= ▁% d \ n ", ▁a ); ▁( out f ▁" b ▁= ▁% d \ n " ▁b ) ▁▁▁▁▁ ▁# ▁printf (" b ▁= ▁% d \ n ", ▁b ); ▁ ▁The ▁two ▁first ▁statements ▁are ▁independent , ▁so ▁a