Thread: C++ jargons: Really CONFUSING

  1. #1
    Registered User
    Join Date
    Oct 2007
    Posts
    36

    C++ jargons: Really CONFUSING

    Hi folks,

    We use these two C++ jargons very often while explaining the code architecture.

    Code:
    1. UNICODE and BYTECODE
    
    and the other one is 
    
    2. EARLY BINDING  and LATE BINDING
    As per my understanding, Early Binding and Late Binding are used during compilation may be similar to an Array (static memory allocation) and New (dynamic memory allocation).

    BUT, I have no idead about Unicode and Bytecode.

    I would really appreciate if anyone can provide a clear picture for both the above queries.

    thanx in advance

    -- Cavestine

  2. #2
    Cat without Hat CornedBee's Avatar
    Join Date
    Apr 2003
    Posts
    8,895
    Early binding means that it is clear at compile time which actual function a particular call refers to. This is the case for most functions. Late binding means it isn't clear until runtime, e.g. for virtual functions and function pointers.
    DLL functions are bound at load time, so they're somewhere in-between.

    Unicode is the name of a single, all-encompassing, universal character set, together with classification of these characters, a few algorithms for proper handling of their idiosyncrasies (such as the Unicode Bidi algorithm and the string collation algorithms) and a few mappings to byte streams (most notably UTF-8, UTF-16 and UTF-32). The actual character set is code-for-code identical to the Universal Character Set, standardized by ISO as ISO-10046 or something like that. (I can never remember the number.)
    Unicode is further used in "The Unicode Consortium", which is the industry consortium that defines and evolves Unicode, and it is widely misused (especially in the Win32 world) to refer to the UTF-16 encoding. To say that a program "is Unicode" means that it uses wide strings.

    You misheard (or someone misused) the term bytecode. The word refers to CPU-independent binary code such as Java Bytecode and CIL (.Net) Bytecode.

    What was meant were single-byte encodings and multi-byte encodings. (The term "character set" is often used instead of encoding, but that's a misuse of the term.) Single-byte and multi-byte encodings stand in contrast to wide encodings. Single-byte encodings use a single byte for every character; they are thus very limited in the number of characters they can represent. ASCII, Windows-1252 and the ISO-8859-* family are single-byte encodings. Wide encodings use more than one byte for every character. Multi-byte encodings use a variable number of bytes for every character, from 1 up to as many as 4, depending on the encoding.
    UTF-16 is a variable-width wide encoding (it uses one or two 16-bit units per character), UTF-32 is a fixed-width wide encoding (one 32-bit unit per character). UTF-8 is a multi-byte (or variable-width) "narrow" (the byte is the base) encoding (between 1 and 4 bytes per character) using a modified prefix byte scheme (you inspect the first byte to see if it is a character on its own or if follow-up bytes are part of it). Shift-JIS is a multi-byte encoding using a shift scheme (some bytes are not characters, but instead shift between one-byte and two-byte mode).
    All the buzzt!
    CornedBee

    "There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
    - Flon's Law

  3. #3
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    UNICODE is a definition of "wide characters" to allow international characters.

    BYTECODE is, generally speaking, a way to define some sort of "machine code that isn't machine code", e.g. Java Bytecode.

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  4. #4
    Hardware Engineer
    Join Date
    Sep 2001
    Posts
    1,398
    FOLDOC (Free On Line Dictionary Of Computing) can be handy. Although, the definitions can sometimes be a bit too brief.

    I didn't find "early binding or "late binding", but I did find "binding". (The definition was not as clear & complete as CornBee's.) There is half-a-page on Unicode with several links.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. confusing error messages?
    By ssjnamek in forum C Programming
    Replies: 6
    Last Post: 01-26-2006, 08:56 PM
  2. Arrays are confusing...
    By GavinHawk in forum C Programming
    Replies: 10
    Last Post: 11-29-2005, 01:09 AM
  3. Confusing Pointer
    By loko in forum C Programming
    Replies: 4
    Last Post: 08-29-2005, 08:52 PM
  4. pointers are confusing!
    By ali1 in forum C Programming
    Replies: 10
    Last Post: 09-07-2004, 10:41 PM
  5. functions declaration, pointers, cast, .... CONFUSING
    By Rhodium in forum C Programming
    Replies: 7
    Last Post: 01-09-2003, 06:21 AM