answersLogoWhite

0


Best Answer

Monitor

User Avatar

Wiki User

11y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: Which is a high level abstraction over semaphore?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Engineering

Is user level language and high level language same?

Yes. User-level language is a high-level language because it requires a high degree of abstraction between the language and the machine code emitted by the language. Even a graphical user interface (GUI) can be considered a high-level language because it (can) allow users to indirectly interact with the machine's low-level facilities. Conversely, machine-level languages are low-level languages because there is little to no abstraction between the language and the resultant machine code. Note that the only language actually understood by the machine is its own native machine code (every machine type has its own variant of machine code). Both high-level and low-level languages allow users to create machine code. Low-level languages give the programmer (the user) near absolute control over the machine whereas high-level languages tend to limit the amount of control. There is no real distinction between the various high-level languages and the amount of low-level control the user has within them, it's merely a general term that implies there is a high degree of abstraction involved. Although the programmer has less control over the machine code, the machine code produced by high level language compilers can be just as good if not better than hand-crafted assembly instructions. This is because modern compilers can analyse vast amounts of source code much more quickly than any human and can therefore produce more optimal code. Languages such as C++ are specifically designed such that programmers will very rarely need to resort to low-level code such as inline assembly.


What are the primary differences between symbolic and high-level languages?

Symbolic languages have a near 1:1 relationship with the resultant machine code, thus the translation from source code to machine code is extremely trivial. For instance, the move instruction maps to several operation codes (opcodes) depending on whether the source and destination are working memory addresses or register addresses. However, there is no need to map each opcode to a separate mnemonic because the assembler can deduce the exact opcode from the operands alone. Thus all moves can be symbolised with a MOV mnemonic. So aside from choosing between opcode variants, translation from source code to machine code is relatively simple to program. High-level languages have a higher degree of abstraction than symbolic languages (which is what we mean by high-level). A single high-level statement may generate many dozens of low-level instructions thus translation from source to machine code is far from trivial. However, programs don't need to be written in minute detail because the compiler handles all the machine-level details, many of which are highly repetitive (move values into registers, perform an operation upon those registers, act upon the result, rinse and repeat). This allows the programmer to express his ideas in code more freely.


What is a difference between a high level programming language and a low level programming language?

The most basic difference is that the statements in a low level language can be directly mapped to processor instructions, while a single statement in a high level language may execute dozens of instructions. Low level refers to the fact that this is a machine language, binary in form, generally meaning one low level command = one executed instruction. The complexity arises when we need to enable a programmer to designate one high level instruction that performs several or many machine (low level) operations. Low Level Languages: Assembler and Advanced Assembler - see Compiler Languages. High Level Languages: RPG, COBOL, any that make machine level programming of a computer easier.


Compare high level language and low level language?

a) The LLL is machine oriented and the HLL is problem oriented. b) The LLL is machine dependent but the HLL isn't. c) The HLL is much more user friendly than the LLL. d) The LLL has faster execution than HLL.


Why you cannot have full control over computer hardware when programming in high level language?

The higher level languages simplify instructions that could have taken many steps in a low level language. So puts("hello"); could be 20 instructions in assembler. So through this simplification, you lose a degree of control, depending on how high the language is.

Related questions

What is difference between counting and binary semaphore in os?

Binary semaphore is a semaphore with the integer value ranges over 0 and 1 whereas the counting semaphore's integer value ranges over unrestricted domain. Binary semaphores are easier to implement comparing with the counting semaphore. Binary semaphore allows only one thread to access the resource at a time. But counting semaphore allows N accesses at a time. The 2 operations that are defined for binary semaphores are take and release. The 2 operations that are defined for counting semaphores are wait and signal


Is user level language and high level language same?

Yes. User-level language is a high-level language because it requires a high degree of abstraction between the language and the machine code emitted by the language. Even a graphical user interface (GUI) can be considered a high-level language because it (can) allow users to indirectly interact with the machine's low-level facilities. Conversely, machine-level languages are low-level languages because there is little to no abstraction between the language and the resultant machine code. Note that the only language actually understood by the machine is its own native machine code (every machine type has its own variant of machine code). Both high-level and low-level languages allow users to create machine code. Low-level languages give the programmer (the user) near absolute control over the machine whereas high-level languages tend to limit the amount of control. There is no real distinction between the various high-level languages and the amount of low-level control the user has within them, it's merely a general term that implies there is a high degree of abstraction involved. Although the programmer has less control over the machine code, the machine code produced by high level language compilers can be just as good if not better than hand-crafted assembly instructions. This is because modern compilers can analyse vast amounts of source code much more quickly than any human and can therefore produce more optimal code. Languages such as C++ are specifically designed such that programmers will very rarely need to resort to low-level code such as inline assembly.


What is the main differences between HLL and LLL?

The main difference between a high-level language (HLL) and a low-level language (LLL) is the level of abstraction. HLLs are closer to human language and are easier to read, write, and maintain. LLLs are closer to machine code and offer more direct control over hardware resources, but are harder to work with due to their complexity.


What is the difference between a high level programming language and a low level programming language?

The level of abstraction. Low-level languages like assembler have very little in the way of abstraction and the programmer is in complete control over the resulting machine code. However, the programmer only has the architecture's instruction codes to work with so programs must be written in minute detail. High-level languages have a high degree of abstraction with little or no interaction between the programmer and the underlying architecture. While this allows programmer to produce working code more rapidly, the code may not be as efficient as an assembler language implementation. Languages such as C++ are high-level, but offer some low-level functionality such as pointer arithmetic to produce highly-efficient machine code with relatively little effort. By contrast, Java is more abstract and compiles to byte code which must be interpreted by the Java virtual machine. As such, it performs very poorly against a C++ implementation, but is a good deal more portable as the Java virtual machine handles the specific architecture from a single compilation, whereas C++ must be compiled separately for each architecture.


An instrument that can send messages over long distances is called?

A telegram, a telephone, a computer, a semaphore, a telegraph.


What is procedural abstraction in software engineering?

When we consider a modular solution to any problem, many levels of abstraction can be posed. At the highest level of abstraction, a solution is stated in broad terms using of the problem environment. At lower levels of abstraction, a mmore detailed description of the solution is provided.


What is high water level?

At least over 5 feet


Is level 10 in protein high in urine?

protein over spill in urine level 10


Why was semaphore invented?

Semaphore was invented as a visual signaling system to relay messages over long distances. It was developed to communicate with ships at sea or between different points on land where other methods of communication like smoke signals or flags were not practical. Semaphore systems used different flag positions to represent different letters or words and were widely used before the invention of the telegraph.


What was the unit of nick's sugar level?

Do you mean what it was when he was diagnosed. It was over 790 which is extremly high.


What is a high score on an iq test?

Anything over 120 would be good. Over 140 is considered genius level.


When was Semaphore first used?

Semaphore communication was first used in the late 18th century by Claude Chappe in France, around the 1790s. Chappe developed a system of visual signals using large mechanical arms to communicate messages over long distances.