It's a fairly common thing in a lot of computer languages that the "type" of the operands on the RHS of an assignment determine the precision of the operation performed, which is int8 in this case. So even though you haven't explicitly typed "b" as int8 it gets implicitly typed by the assignment.
You get similar things in C and java, where for example the operation x=13/4 returns x=3.0, even when x is of type float (though they would return 3.25 if you entered the expression as 13.0/4 for example).
Pascal however would return 3.25 in either case, because it relies on things other than the types of the LHS to determine the type of the result. Matlab would also return 3.25 if you typed it in with 13 and 4 literally, because it treats everything as a double precision floating point by default (that is whether or not you type 13 or 13.0 it's still type float). If however you entered "x=int8(13);, x/4" then you'd just get the integer result of 3
Being aware of how a language handles this kind of implicit typing of operation results is a really important part of the understanding of any programming language.