Frequently Asked Questions
What is the
Quick Check?
The Quick Check exercise is
completed in class for one or more of the following purposes:
·
To check attendance
and provide data for the participation part of the grade
·
To check
student’s understanding about a concept recently learned in class,
possibly giving feedback to improve course content
·
To check
student’s background on a particular topic, possibly giving feedback to
develop course content
·
To give students a
chance to think about course content
The Quick Check is not graded
for correctness. If you complete and
hand in the Quick Check, you will receive credit.
What does
“abstraction” mean?
Programming languages bridge the gap between the real-world and the underlying system. A key characteristic of a programming language is its level of abstraction. Abstraction implies hiding of information – a gain in simplicity, clarity, verifiability, portability versus potential performance degradation.
For an example of levels of abstraction in terms of hardware think about CprE 210. The smallest building block for digital electronic circuits is the transistor. That’s a low level of abstraction. Built on top of this are higher levels.
1. Transistors
2. Logic gates (interconnections of transistors)
3. Combinational and sequential MSI logic devices such as decoders, muxes, counters, or registers
4. Arithmetic logic unit, control unit
5. Processors
“… Progress in computer development has been based on increasing abstraction away from the physical aspects of the computer toward more accurate representations of the real world. From switches to paper tape to operating systems to programming languages; from mainframes to minicomputers to PCs to embedded devices; as computers get more sophisticated, users are able to spend more time thinking about the work they want to accomplish and less time thinking about telling the computer how to accomplish that work.” --http://xml.oreilly.com
What is the
difference between big endian and little endian byte ordering?
From the Jargon Dictionary:
big-endian
adj. [common;
From Swift's "Gulliver's Travels" via the famous paper "On Holy
Wars and a Plea for Peace" by Danny Cohen, USC/ISI IEN 137, dated
little-endian adj. Describes a computer architecture in which, within a given 16- or 32-bit word, bytes at lower addresses have lower significance (the word is stored little-end-first). The PDP-11 and VAX families of computers and Intel microprocessors and a lot of communications and networking hardware are little-endian.
From Webopedia:
The adjectives big-endian
and little-endian refer to which bytes are most significant
in multi-byte data
types and describe the order in which a sequence of bytes is stored in a
computer’s memory.
In a big-endian system, the most significant value
in the sequence is stored at the lowest storage address (i.e., first). In a
little-endian system, the least significant value in the sequence is stored
first. For example, consider the number 1025 (2 to the tenth power plus one)
stored in a 4-byte integer:
00000000 00000000
00000100 00000001
|
Address |
Big-Endian representation of
1025 |
Little-Endian representation
of 1025 |
|
00 |
00000000 |
00000001 |
Many mainframe computers, particularly IBM
mainframes, use a big-endian architecture. Most modern
computers, including PCs, use the little-endian system. The PowerPC system is bi-endian because it can understand both systems.
Converting data between the two systems is
sometimes referred to as the NUXI problem. Imagine the word UNIX
stored in two 2-byte words. In a Big-Endian
systems, it would be stored as UNIX. In a little-endian system,
it would be stored as NUXI.
Note that the example above shows only big- and
little-endian byte orders. The bit ordering within each byte can also be big-
or little-endian, and some architectures actually use
big-endian ordering for bits and little-endian ordering for bytes, or vice
versa.
The terms big-endian and little-endian
are derived from the Lilliputians of Gulliver's Travels, whose major
political issue was whether soft-boiled eggs should be opened on the big side
or the little side. Likewise, the big-/little-endian computer debate has much
more to do with political issues than technological merits.