How can software be programmed on hardware




















Operating system OS — a software that controls and coordinates the computer hardware devices and runs other software and applications on a computer. It is the main part of system software and a computer will not function without it.

Device driver — a software program that is designed to control a particular hardware device that is attached to a computer.

Utility software — a type of system software that helps set up, analyze, configure, strengthen, maintain a computer and performs a very specific task e. Skip to content Unit 7. Evolution of computers. I have pondered the same question for quiet sometime now and come to realize that there are in fact a connection from software fantasy world to hardware real world.

Think of something as simple as circuits and switches, then think of something more abstract like an adder or ALU. Over time abstraction built on itself and gets complex in the next rom. Then comes the microcode, Opcodes, machine language then finally assembly and C. From that point think of currents and motors.

This code is given to the compiler and it then converts it into assembly code. Then, it's converted to binary, ie; 0's and 1's which represents digital voltages which are then fed into transistors in the hardware. Stack Overflow for Teams — Collaborate and share knowledge with a private group. Create a free Team What is Teams?

Collectives on Stack Overflow. Learn more. Ask Question. Asked 11 years, 5 months ago. Active 10 months ago. Viewed k times. To make my point clear: When we kick a ball,there is physical contact between the ball and our leg,for the ball to move.

Improve this question. AbyJames AbyJames 1 1 gold badge 7 7 silver badges 3 3 bronze badges. As Pavel mentioned, consider all matter is comprised of mostly empty space! Don't believe them -- it's all based on smoke. I've gone through all the answers and non of them is good enough. How exactly does the OS create a 5Volt charge for example? That's the question. I think we all know it is 1s and 0s and circuits and electricity. This is quite interesting question, even scrolled down all answers I still can not find a satisfied answer.

Most of answers focus on how computer works, but the question is how the simple code which is not in physical world such as MOV AX, 0x01 actually touch the CPU physically so ti can send some signals electrons to memory to change memory status of specific address. Basically question is: how non-physical world code touches physical world electrons?

Show 3 more comments. Active Oldest Votes. Improve this answer. Alan Alan Add a comment. Jim Rossi Jim Rossi 71 1 1 silver badge 1 1 bronze badge. Guffa Guffa k gold badges silver badges bronze badges. I think the OP wanted to know how something as abstract like "text" could be used to control something physical like power, or ejecting the CD tray Yea thats exactly what I want to know.

What alan mentioned — AbyJames. Simon Ndunda Simon Ndunda 6 6 silver badges 9 9 bronze badges. There're several interfaces between PC programs and the real world outside. Pavel Radzivilovsky Pavel Radzivilovsky Let's compare the physical and the software solutions.

Fenton Fenton k 63 63 gold badges silver badges bronze badges. Why and How? Explained below, Imagine! If you wish to know further in-depth, please leave a comment down. Kushan Gowda Kushan Gowda 41 4 4 bronze badges. Community Bot 1 1 1 silver badge. Akaanthan Ccoder Akaanthan Ccoder 1, 3 3 gold badges 20 20 silver badges 36 36 bronze badges. AceofSpades AceofSpades 4 4 bronze badges. The Overflow Blog. Podcast Explaining the semiconductor shortage, and how it might end.

Assembler languages are unique to specific types of computers. High-level languages are the third generation programming languages. These languages provide statements, each of which is translated into several machine-language instructions.

Easier to learn and understand than an assembler language as instructions statements that resemble human language or the standard notation of mathematics.

Have less-rigid rules, forms, and syntaxes, so the potential for error is reduced. Are machine-independent programs therefore programs written in a high-level language do not have to be reprogrammed when a new computer is installed.

Programmers do not have to learn a new language for each computer they program. Less efficient than assembler language programs and require a greater amount of computer time for translation into machine instructions. The fourth-generation languages 4GLs specify what needs to be done rather than detailing steps to doing it. Use nonprocedural languages that encourage users and programmers to specify the results they want, while the computers determines the sequence of instructions that will accomplish those results.

Use natural languages that impose no rigid grammatical rules. Less efficient in terms of processing speeds and amount of storage capacity needed. A number of languages could lay claim to belonging to the fifth generation. The following types of programming languages are likely to influence the development of such a new paradigm:. Object-oriented programming OOP languages tie data elements and the procedures or actions that will be performed on them, together into objects.

Languages that facilitate parallel processing in systems with a large number of processors. Functional languages such as LISP , based on the mathematical concept of computation as an application of functions. Limited subsets of natural languages which can be processed thanks to the progress in artificial intelligence. OOP languages are easier to use and more efficient for programming the graphics-oriented user interface required by many applications.

A variety of software packages are available to help programmers develop computer programs. For example, programming language translators are programs that translate other programs into machine language instruction codes that computers can execute. Other software packages called programming tools help programmers write programs by providing program creation and editing facilities. Language translator programs language processors are programs that translate other programs into machine language instruction codes the computer can execute.

These programs allow you to write your own programs by providing program creation and editing facilities. Programming language translator programs are known by a variety of names.

Assembler: translates the symbolic instruction codes of programs written in an assembler language into machine language instructions. Compiler: translates compiles high-level language statements source programs to machine language programs.

Interpreter: translates and executes each program statement one at a time, instead of first producing a complete machine language program, like compilers and assemblers do. The use of fourth-generation languages permits a severalfold increase in productivity in information systems development. The distinguishing feature of 4GLs is that they specify what is to be done rather than how to do it.

Characteristics of 4GL's include:. They do not specify the complete procedure for accomplishing the task this is filled in by the software translator for the 4GL. About one-tenth of the number of instructions are required in 4GL as compared to procedural languages. Principal categories of 4GLs are query languages, report generators, and application generators - Figure 5. Query languages and report generators make it unnecessary to develop certain applications by providing direct access to a database.

Application generators make it relatively easy to specify in nonprocedural terms a system for such access. Query languages enable end users to access databases directly. Characteristics of query language include:. Used online for ad-hoc queries, that is, queries that are not predefined. Result of the query is generally not formatted since it is displayed in a default format selected by the system itself.

Interaction is usually simple, only very simple computations are involved. Most query languages also make it possible to update databases. With many query languages, it is possible to request a graphical output to a query. Command-type query language, such as SQL. A report generator enables an end user or an information systems professional to produce a report without detailing all the necessary steps, such as formatting the document.

Offer users greater control over the content and appearance of the output than a query language. Specified data may be retrieved from the specified files or databases, grouped, ordered, and summarized in a specified way, and formatted for printing as desired.

An application generator makes it possible to specify an entire application, consisting of several programs, without much detailed coding. Characteristics of application generators include:. Most generators produce generate code in a procedural language. This code may then be modified to meet the precise needs of the application.

Generators targeted toward end users are simple to use. They are targeted to a limited application domain. They produce the code mostly from a specification of the structure of files and databases and from the given layouts of screens and reports.

The requisite processing is specified in terms natural to the end users. A screen-painting facility makes it possible to specify the graphical user interface for the system under development. Powerful application generators require the expertise of information systems professionals, and are general-purpose tools.

They often may run on mainframes and minicomputers. Application generators are increasingly integrated into computer-aided software engineering CASE environments. Programs written in 4GLs are generally far less efficient during program execution that programs in high-level languages.

Therefore, their use is limited to projects that do not call for such efficiency. The idea of object-oriented programming OOP is to build programs of software objects, in order to tie data elements and the procedures or actions that will be performed on them, together into objects. OOP, objects combine encapsulate the data with the operations that act on the data.



0コメント

  • 1000 / 1000