At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat.
i dont know really if you're coding low-level but with high-level language like c# and .net framework your codes will be translated to a middle language that works well on all platforms
I disagree!! For example in c++ , the code written in tubo c++ can run on visual c++ but code in visual c++ will not run in turbo c++. Also , you must have seen on many websites when downloading software that there are different links for Linux , Mac and Windows(Even for XP and Vista sometimes).
Assembly language is limited to a particular machine platform such as the x86 architecture. It usually differs across different Operating systems since the system calls executed by the processor can be different on another operating system. Cross platform software is developed using high level languages. High level languages are often designed with portability with mind. Compilers can translate high-level source code into a target platform's instructions i.e. C code being translated to native assembly. Nowadays, it's quite popular for compilers to translate the source code to an intermediate form such as bytecode, to be executed by a virtual machine, resulting in portability of your software.
yes as in java that codes compiled in bytecode , Microsoft high level progamming languages do same with compiling code into intermediate code named CIL , and JIT runs this CIL
OK , you are talking about high level languages like Java which will run on any platform (like the Pure Java setup) but then in what language are compilers developed i.e what is in the high level language that when they are translated to machine language they are same on all the platforms but this is not the same for low level language like C?
right. although thwe virtual machine is implemented differently on different platforms, the virtual machine itself executes instructions the way you'd expect even across different platforms
Compilers are usually developed in C :-D
cross-platform ensure you code you wrote will work well in all platforms , of course the machine code differs from a machine to another machine , so cross-platform use techniques to do this task not any thing else
Then what about C compilers? I am trying to find a link between different OS.There must be a language common for all the OS.If it is Binary number system the it has a good scope(or one should learn it for a better understanding of programming)? @MahdiMP : What techniques?
C compilers themselves are written in C
So C can be considered as a universal language that is basic and same for all the systems?
i hope this helps you : http://www.goingware.com/tips/getting-started/
I said : " I am trying to find a link between different OS.There must be a language common for all the OS.If it is Binary number system the it has a good scope(or one should learn it for a better understanding of programming)? "
read that and you'll begin to understand why nothing is completely portable yet :-D
So even if someone learns Binary , he can fail to understand any random machine on any random platform?
Even binary code is different (VERY DIFFERENT) across different machines.
actually, the binary code is the difference across machines, and one of the purposes of high level languages is to bridge such differences.
:P OK then can you recommend a set of languages so that to be a versatile programmer?
:D , both java and c
So you want to learn how to cover all possible platforms and make your work as portable as possible? Try Java :-D
Oh and also C; there's a C compiler for virtually everything from a calculator, a gameboy, your desktop, etc.
perhaps someday we will see microwave ovens with a .NET implementation, but nowadays C is the way to go, or Java (and some other technologies) if you like the web
Is machine language recommended to understand the working of C and Java?If yes ,then which one is better hex. or binary?
@Vibhor16 this wiki for you http://en.wikipedia.org/wiki/Cross-platform
thx. According to this python is a scripting language and I have read that python is good for calculations ,so then should I go for Python to?Isn't it more like Java?
Python and Java are used for different things. If your real question is what programming language is the one to master, then I can't really answer that.
So what languages should I master so that I can cover up max. requirements of a system?
That really depends on your target application i.e. are you planning on developing a website, building a robot, an operating system, a big video-game, a math application, etc.
I'm not sure if this will add any further understanding or not, but I used to program in assembly and machine language on the old MOS 6502. One thing that helped me understand it was to think of the system (architecture and OS) as a big set of cubby holes. Each cubby is a memory address that you can put a value into. These values tell the machine what to do. More specifically, whether a certain part of the curit should be on or off. Now every processor is built differently. Each one has circuits that perform the same functions, but they are in different locations or what have you. So for any given machine the cubby holes are going to be different. Cubby hole 10 on one machine might be cubby hole 151 on another. Therefore, when you stick your values in the cubby holes on one machine, you cannot stick them in the same hole on another. In order to effectively program in low-level languages you must be very intimate with the particular architectural you are working on.