Wednesday, January 27, 2010

==Characteristics present in Visual Basic==

Visual Basic has the following traits which differ from C-derived languages:
* Multiple assignment available in C language is not possible. A = B = C does not imply that the values of A, B and C are equalled. The boolean result of "Is B = C?" is stored in A. The result stored in A could therefore be false(0) or true(-1)
* [[Boolean datatype|Boolean]] constant True has numeric value −1.In most languages, True is mapped to a non zero numeric value, often 1 or -1. This is because the Boolean data type is stored as a 16-bit signed integer. In this construct −1 evaluates to 16 binary 1s (the Boolean value True), and 0 as 16 0s (the Boolean value False). This is apparent when performing a Not operation on a 16 bit signed integer value 0 which will return the integer value −1, in other words True = Not False. This inherent functionality becomes especially useful when performing logical operations on the individual bits of an integer such as And, Or, Xor and Not.[http://vb.mvps.org/tips/Truth.asp Microsoft Basic Logical Expression Evaluation] This definition of True is also consistent with BASIC since the early 1970s Microsoft BASIC implementation and is also related to the characteristics of CPU instructions at the time.

* Logical and bitwise operators are unified. This is unlike some C-derived languages (such as [[Perl]]), which have separate logical and bitwise operators. This again is a traditional feature of BASIC.
* Variable [[array]] base. Arrays are declared by specifying the upper and lower bounds in a way similar to Pascal and [[Fortran]]. It is also possible to use the Option Base statement to set the default lower bound. Use of the Option Base statement can lead to confusion when reading Visual Basic code and is best avoided by always explicitly specifying the lower bound of the array. This lower bound is not limited to 0 or 1, because it can also be set by declaration. In this way, both the lower and upper bounds are programmable. In more subscript-limited languages, the lower bound of the array is not variable. This uncommon trait does exist in [[Visual Basic .NET]] but not in [[VBScript]].
: OPTION BASE was introduced by ANSI, with the standard for ANSI Minimal BASIC in the late 1970s.
* Relatively strong integration with the [[Microsoft Windows|Windows operating system]] and the [[Component Object Model]].
* [[Rounding#Round-to-even method|Banker's rounding]] as the default behavior when converting real numbers to integers with the Round function.
* Integers are automatically promoted to reals in expressions involving the normal division operator (/) so that division of an odd integer by an even integer produces the intuitively correct result. There is a specific integer divide operator (\) which does truncate.
* By default, if a variable has not been declared or if no type declaration character is specified, the variable is of type [[Variant type|Variant]]. However this can be changed with Deftype statements such as DefInt, DefBool, DefVar, DefObj, DefStr. There are 12 Deftype statements in total offered by Visual Basic 6.0. The default type may be overridden for a specific declaration by using a special suffix character on the variable name (# for Double, ! for Single, & for Long, % for Integer, $ for String, and @ for Currency) or using the key phrase As (type). VB can also be set in a mode that only explicitly declared variables can be used with the command Option Explicit.

No comments:

Post a Comment