2
$\begingroup$

Can there be a computer without software (only hardware) which can produce meaningful output?

  • "Software" would be for example an operating system (whether in the level of "firmware" or not).
  • "Meaningful output" would be for example anything useful for the user, but a practical example might be the solution to any "mathematical exercise" (addition/subtraction/multiplication/division and so forth).
$\endgroup$
10
  • 2
    $\begingroup$ what do you consider "meaningful output" and what do you consider "software", if by software you mean OS or any thing that is higher-level ? Then yes, you can have chips that receive signal, perform some gates, and return signal, see for example ALU en.wikipedia.org/wiki/Arithmetic_logic_unit if by no software you mean "no logic" then no, this is not a computer, there is nothing to compute, it is called wire and it just tosses the input signal. $\endgroup$
    – user206904
    Oct 19 at 23:58
  • $\begingroup$ Thanks @user206904 I have edited to explain per the points you have made, to the best of my ability. $\endgroup$ Oct 20 at 4:46
  • $\begingroup$ Thanks for editing. Without firmware (and no logic), then what nir shahar and I mentioned above in comment won't do. Any thing with electronics will require some logic to do sth meaningful. Your best bet is something mechanical that is proven to work, like a not got<=> switch, but then again it won't be a "computer" in the traditional modern sense, but it can do operations. Please check Punched card (the very first computers) and Tabulating machine, both have pages on wikipedia $\endgroup$
    – user206904
    Oct 20 at 11:48
  • $\begingroup$ I would argue any physical system is just hardware without software, and whether it has "meaningful" output is subject to interpretation. Meanwhile, it's easy to present software without hardware, such as (error-corrected) quantum computers as of the moment. $\endgroup$ Oct 21 at 0:39
  • 1
    $\begingroup$ @user206904 I'm saying quantum computers are (almost) software-only. You cannot run e.g. Shor's algorithm on any hardware now (and it may stay this way forever). $\endgroup$ Oct 21 at 14:18
4
$\begingroup$

Thats called a logic circuit. It computes stuff. No software here, only physical logic gates involved.

Even though technically a computer is a logic circuit...

$\endgroup$
10
  • $\begingroup$ Hello Nir, do you say that a computer such as the one I currently use to write this comment (my laptop) is a logic circuit in its entirety (the computer in its entirety?), thanks, $\endgroup$ Oct 20 at 13:52
  • $\begingroup$ The CPU, memory, and almost everything else in your computer is composed of logical circuits. Except for the power outlet and fan, etc. Basically a computer is a logix circuit that can remember commands and execute them - so when you write software you only change the memory of the computer in such a way that the computer knows how to execute and compute. If you are more interested in such things, I recommend taking a course about computer structure $\endgroup$
    – nir shahar
    Oct 20 at 13:58
  • $\begingroup$ I still miss what you meant to say, did you mean to say that any "modern computer", in it's entirety (putting outlets and fans outside) is one big logical circuit? $\endgroup$ Oct 20 at 22:10
  • $\begingroup$ It can indeed be modeled as a logical circuit (note that the notion of "logical circuit" is purely theoretical, but can be implemented using physical electrical circuits). For a classic example, take a look at the MIPS processor - you can find images in google of its entire circuit in a high-level description, and searching for something specific in it (for example, its ALU) will reveal the exact logic circuit used in that part. $\endgroup$
    – nir shahar
    Oct 20 at 22:36
  • $\begingroup$ No, even a logic circuit needs bits on its inputs to function. The bits are software. $\endgroup$ Nov 7 at 10:22
3
+100
$\begingroup$

Despite your attempt at more precise specification, it seems to me there is still a problem with understanding what you call software.

Even without requiring Turing power, I assume that your computer is a little bit more than a logical circuit computing always the same result, and does manipulate some data, if only as input. Then, how do you distinguish data and software. One important point of theory of computing is precisely that there is no such distinction, thanks to Gödel numbering.

For example, a computer C running a program P on input x can be seen as a "raw computer" (i.e., without software) running on an input which is a pair <P,x>.

Conversely and more to the point, consider a would be "raw computer" C that performs some useful computation on some data x to produce a result f(x). Now you can cut you data into a pair of 2 pieces x=<x1,x2>, and view x1 as a program run by your raw computer C on input x2, to produce f(<x1,x2>), i.e. f(x). So C is now a computer that uses software x1 to compute on input x2. This is related to techniques called partial evaluation.

Then, whether you have achieved an example of a useful raw computer depends only on the way you look at it. It's all in the eyes of the beholder.

I expect there are other ways to discuss this. For example, a purely hardware circuitry could be represented in a harware description language, and this linguistic representation could then be interpreted by a circuit description emulator. Then you might say that the circuit is hardware, while its linguistic description is software. But, again, where is the distinction. Software is always represented physically in computers, even though it is linguistic in nature, exactly like our circuitry which is physical with a linguistic representation. And that applies as well to parts of the circuit. Is a given part of the circuit a piece of hardware, or just a physical representation of a software written in a circuit description language ("language" is the important word).

$\endgroup$
1
1
$\begingroup$

There have been completely mechanical computers which would still be considered computers (in the sense that they are turing-complete at least), but are arguably all hardware.

For example, Konrad Zuse developed mechanical logic gates (though the computers he built did use phone relays, it would be possible to produce a completely mechanical computer with them).

Ultimately the software just tells the hardware what to do in a way that is easy to modify. The CPU can run a large number of different commands, but ultimately you could translate each instruction into only the circuitry that would perform each of the instructions. For more on that, you can look into FPGAs.

$\endgroup$
3
  • 1
    $\begingroup$ How do you define Turing completeness for a machine that does not use software? I do not mean a family of machines. Also, I am not sure that being mechanical (as in your Zuse example, or Babbage machine) rather than electronical is an issue here. $\endgroup$
    – babou
    Nov 8 at 13:41
  • $\begingroup$ @babou I am talking about a family of machines (in my final paragraph). specifically the fact that the software can be turned into pure hardware that represents the specific program you wish to run. The turing completeness doesn't refer to a specific machine. I brought up the Zuse example just because it might be something perceived as pure hardware, but ultimately if you choose to implement something that reads from a memory using these, it's basically software. I mentioned that because I thought it being completely mechanical might be of interest to OP considering his question. $\endgroup$ Nov 10 at 12:29
  • $\begingroup$ OK. That was not obvious from your text. But basically we always have the same situation of an abstract mathematical entity versus a physical representation. And we use only physical representation (magnetic orientations on some support, electronic circuitry, magnetic relays, ...) do actually perform computation. So we could say we never use software. But conversely, any computing setup can be seen as a physical representation of some abstraction, so that we are really using only software. I do not know that computing theory makes a difference ... but my knowledge is limited :-) $\endgroup$
    – babou
    Nov 11 at 10:08
-1
$\begingroup$

I vaguely remember that one of the three RSA guys designed a chip that could factor 512 bit numbers by setting the composite number as an input, then you wait a while, and it outputs a factor. No software at all. Source was private conversation with some guys who designed huge computer chips for a living. And it wasn't exactly a "chip", you needed a complete 12" wafer for that.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.