19.11.2014 Views

The Fortress Language Specification - CiteSeerX

The Fortress Language Specification - CiteSeerX

The Fortress Language Specification - CiteSeerX

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

v: BinaryEndianWordb,bigEndianBytes,bigEndianBits):<br />

BinaryEndianLinearEndianSequenceb,bigEndianBytes,bigEndianBits,<br />

n,bigEndianSequence<br />

where { k < n }<br />

updatenat m(r:RangeOfStaticSizeIndexInt, m,<br />

v: BinaryEndianLinearEndianSequenceb,bigEndianBytes,bigEndianBits,<br />

m,bigEndianSequence):<br />

BinaryEndianLinearEndianSequenceb,bigEndianBytes,bigEndianBits,<br />

n,bigEndianSequence<br />

throws { IndexOutOfBoundsException }<br />

updateint a,nat m,int c<br />

(r:StaticRangea, m, c,<br />

v: BinaryEndianLinearEndianSequenceb,bigEndianBytes,bigEndianBits,<br />

m,bigEndianSequence):<br />

BinaryEndianLinearEndianSequenceb,bigEndianBytes,bigEndianBits,<br />

n,bigEndianSequence<br />

where { 0 ≤ a < n, 0 ≤ a + m · c < n }<br />

opr ‖ nat m(self,other: BinaryEndianLinearEndianSequence<br />

b,bigEndianBytes,bigEndianBits,<br />

m,bigEndianSequence):<br />

BinaryEndianLinearEndianSequenceb,bigEndianBytes,bigEndianBits,<br />

n + m,bigEndianSequence<br />

opr ‖ nat m,nat radix,nat q,nat k,nat v(self,other: NaturalNumeralm,radix, v):<br />

LinearSequenceT, n + k<br />

where {radix = 2 q , q · m = k · 2 b }<br />

opr ‖ nat m,nat radix,nat q,nat k,nat v(other: NaturalNumeralm,radix, v,self):<br />

LinearSequenceT, n + k<br />

where {radix = 2 q , q · m = k · 2 b }<br />

littleEndian():BinaryEndianLinearEndianSequenceb,false,false, n,bigEndianSequence<br />

bigEndian():BinaryEndianLinearEndianSequenceb,true,true, n,bigEndianSequence<br />

littleEndianBits():BinaryEndianLinearEndianSequenceb,bigEndianBytes,false,<br />

n,bigEndianSequence<br />

bigEndianBits():BinaryEndianLinearEndianSequenceb,bigEndianBytes,true,<br />

n,bigEndianSequence<br />

littleEndianSequence():BinaryEndianLinearEndianSequenceb,bigEndianBytes,bigEndianBits,<br />

n,false<br />

bigEndianSequence():BinaryEndianLinearEndianSequenceb,bigEndianBytes,bigEndianBits,<br />

n,true<br />

splitnat b ′ () :<br />

BinaryEndianLinearEndianSequenceb ′ ,bigEndianBytes,bigEndianBits,<br />

n · 2 b−b′ ,bigEndianSequence<br />

where { b ′ ≤ b }<br />

end<br />

40.10.1 coercion nat b ′ ,bool bigEndianBytes,bool bigEndianBits<br />

(x:BinaryEndianWordb ′ ,bigEndianBytes,bigEndianBits)<br />

where {bigEndianBytes = bigEndianSequence, 2 b′ = n · 2 b }<br />

[Description to be supplied.]<br />

299

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!