Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

How does software make?

  1. Oct 2, 2014 #1
    hello,
    I need some information If I want to create my own software (like keil), Then what I need to learn
    I am interested developing software text editor . I know I need to learn one programming language.

    I have little bit knowledge about c language , and data structure , algorithm


    I am doing electronics engineering I don't have much knowledge about how does software make
    . we see icon on desktop then we do single click then we saw the some function add file, delete file copy move

    I know we write code but don't know how they create in one file (icon )?
     
  2. jcsd
  3. Oct 2, 2014 #2

    phinds

    User Avatar
    Gold Member
    2016 Award

    The icon is just a signal to the operating system to invoke an executable program. The executable program is created by an assembler or compiler from the code you write. It sounds like you should learn some basic programming before you worry about writing a text editor. If you don't know what an icon does, then clearly you need to start from the very beginning in learning to write programs.
     
  4. Oct 2, 2014 #3

    Mark44

    Staff: Mentor

    It's not clear to me what you're asking. How does software make what? Or are you asking how is software made?

    As phinds said, it looks like you need to start at the very beginning, using some programming language to create a simple program.
     
  5. Oct 2, 2014 #4

    analogdesign

    User Avatar
    Science Advisor

    Get a book on beginning C or Python programming. Read it. Understand the programs you write using it. Baby steps, baby steps.
     
  6. Oct 2, 2014 #5
    Greetings
    I'm afraid you are being confused by a misunderstanding of what an icon actually is and how it functions and this is the basis behind the Graphic User Interface (GUI) http://en.wikipedia.org/wiki/Graphical_user_interface.

    Just as the Brake Pedal in your car is not the braking system itself but rather an interface that humans can easily operate to somewhat remotely activate a hydraulic piston to squeeze brake pads on a disc or expand brake "shoes" into a drum on any number of wheels, an icon is a "symbolic link" to software(s).

    Computers run on binary code, commonly referred to as "Machine Language" http://en.wikipedia.org/wiki/Machine_code since it is easiest to make electronic devices that exist in just one of two states - Hi/Lo, Off/On, Yes/No, 1/0. Note here that already human friendly text (Hi/Lo, Off,On) differs slightly from the binary integers since 0/1 is a somehow more intuitive sequence, but "1" is the "On" state, while "0" is the "Off" state so while "0/1" looks "more right" to most of us, "when in Rome do as the Romans do" or more exactly we must link together text we can easily understand to numbers the machine can follow. Writing code in Machine Language is exceedingly difficult for humans so we have "higher code languages", like Assembly, C, C++, etc. that can translate syntax of text into binary the machine can "understand".

    Many people find memorizing commands and their numerous switching options, daunting as well. Icons are an attempt to employ the "a picture says 1000 words" concept because, using your example of "keil", many have no idea what "keil" is but those same people have no problem figuring that a picture of a pen on paper in icon form has something to do with writing text. However the picture is not the file but only a link assigned to that file. It is entirely possible to use the exact same icon for every application/program on your desktop but that would rather defeat the purpose of being more "user friendly". It does however illustrate that the icons are just links to an instruction or set of instructions.

    This is a concept you must grasp before you even begin to write code. To return to the auto braking system analogy, all a person needs to operate brakes is a working leg and foot, the knowledge and the will to use them. To actually work on the brakes themselves you need a lot more knowledge and a box of tools.
     
  7. Oct 2, 2014 #6
    that means I need compiler or assembler to create software like keil ,avr gcc

    I have written some assembly and c program for microcontroller
    I want to make simple text editor
    Q1which compiler should I use ?
    Q2can I use keil software ?
     
    Last edited: Oct 2, 2014
  8. Oct 2, 2014 #7

    analogdesign

    User Avatar
    Science Advisor

    why do you want to make a text editor when so many good ones are available for free? Is it a learning exercise? If so I would start with something simpler, like a program that prints out "hello world".

    If you've written some assembly and C programs for a microcontroller, how can you possibly not know what a compiler or assembler is?

    BTW "keil" is not a piece of software, it is a company that makes dev. tools for ARM products. That is way, way, way too advanced for you at the moment. Don't even worry about that.

    Download Python, install it on your computer (if you've got a Linux machine it should already be there), and download this free Python text. http://www.greenteapress.com/thinkpython/

    You are a long way from the capability to write a text editor. It is much more complex that you think. If you insist on jumping in before you have any idea what you're doing you are going to fail and frustrate yourself.
     
  9. Oct 2, 2014 #8
    I know what is assembler and compiler simple when we write code software compile code and create hex code then this hex code burnt into memory of micro controller
     
  10. Oct 2, 2014 #9
    theoretically I want to create software thats name is mysoftware and that should be run on desktop that software will show my name vead sharma
    Icon should be mysoftware
    when I will click on mysoftware then I will show my name
    Code (Text):

    #include <stdio.h>
    main()
    {
        printf("vead sharma \n");
        return 0;
     

    }

    I am just asking process so I have taken one example
    tell me how to create software ?
     
  11. Oct 2, 2014 #10

    analogdesign

    User Avatar
    Science Advisor

    that is very easy with a package like Visual Basic or Visual Studio. It depends a lot on your tools.

    Your C code will work but making an executable is a very platform-specific question. GCC won't do it for you. What platform / tools do you have?
     
  12. Oct 2, 2014 #11
    so I need Visual Basic or Visual Studio ok I will download.
     
  13. Oct 2, 2014 #12

    phinds

    User Avatar
    Gold Member
    2016 Award

    You just DID create software. The code you posted is software. I think what you are asking is how do I create an EXECUTABLE, and I have already explained that.

    You seem to know much less than you think you know, or perhaps you are expressing yourself badly, but in any case, what we ALL are telling you is BABY STEPS.

    Get a compiler and learn to write "hello world" and go from there. Quit asking questions that are too advanced for you.

    Beyond that, this thread is pointless.
     
  14. Oct 2, 2014 #13

    analogdesign

    User Avatar
    Science Advisor

  15. Oct 2, 2014 #14

    jtbell

    User Avatar

    Staff: Mentor

    That depends on the operating system that you are programming for: Windows, Mac OS, iOS, Android, Linux, ...

    Besides knowing how to program in C (or whatever other language may be favored for that operating system), you need specialized information on how to program for that operating system.
     
  16. Oct 2, 2014 #15
    I must confess to some ignorance and confusion now since I looked up "Keil". As far as I can tell they are a company that makes software for embedded devices, mostly ARM controlled, and they offer a complete set of programming tools apparently as well as tutorial kits, so why are you not just using those, Vead? I'm also having a difficult time imagining someone skilled enough to write in Assembly unaware of these things. Maybe it's just a few short sentences an the problem of English, but I can't wrap my head around this in any cogent way.

    There exists an abundance of extremely feature-full text editors because they came first. As you must know, code is written in them and some like emacs and vi have been around and evolving since the 1970's. An individual will be hard-pressed to create better so are you just trying to create a name for yourself? and if so, for career purposes or just vanity?

    Edit - OK maybe I'm a little clearer now after re-reading all vead's posts. It appears that vead is following the exact path that the industry did by learning to control component devices and wishes to see ahead to how that evolves into an operating system (or major components of an operating system) and how that is controlled by dedicated icons instead of written commands.

    Let me suggest that you download a kernel source, any will do, from kernel.org that you can unzip and then look over the config file to see how hardware support is combined in a system. This may be a bit foreign to you if you haven't worked in Linux but it seems as if cost may be an obstacle (isn't it always ? :) ) and Linux is free both in cost and as in freedom.
     
    Last edited: Oct 2, 2014
  17. Oct 2, 2014 #16

    analogdesign

    User Avatar
    Science Advisor

  18. Oct 2, 2014 #17
    I'm not so sure of that. I think much is just language barrier. I can, however, imagine someone just like vead has stated, that is an Electronics major, NOT a Computer Science major (essentially coming in from the "backdoor" hardware angle) having learned Assembly (the most efficient way to program embedded devices) just trying to bridge the gulf to System Management as a Computer Science student views it. I don't see the "grief and lulz" that connotes a troll yet, so until that time as proved otherwise, I see a student chomping at the bit (pun only slightly intended :) )
     
  19. Oct 3, 2014 #18

    analogdesign

    User Avatar
    Science Advisor

    Perhaps. Maybe he or she is just clueless on a truly epic scale. I focused on analog in my studies (about as far from computers as one can get) and I still took introductory courses in Pascal, C, and C++. The idea of an electronics major being so clueless about software boggles the mind. What is modern professional electronics development but an endless interaction with various pieces of software and writing scripts to cobble them together? I can't imagine an electronics student so clueless.

    If you look at the link I posted, you'll see the OP is equally befuddled in hardware. Maybe the student just doesn't know how utterly befuddled he or she is. He or she seriously needs to go back to "Hello World" and "meet our friend, the AND gate"
     
  20. Oct 3, 2014 #19

    Mark44

    Staff: Mentor

Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: How does software make?
  1. How to make decoder (Replies: 19)

Loading...