Sponsored Content
Full Discussion: Is C worth the effort?
Top Forums Programming Is C worth the effort? Post 302905299 by bakunin on Tuesday 10th of June 2014 07:25:16 PM
Old 06-10-2014
Every programming language is an abstraction layer between the bare machine and the human thought process. In some languages this layer is thicker than in others: in Assembler it is very thin (almost nonexistent) and in highly abstracted languages like Oberon it is very thick.

Both these concepts have up- and downsides: the thinner the abstraction layer is the more you are in contact with the real workings of the system. You have more to do and more things to observe but get to utilize the machine to its fullest capacity. The thicker this layer is the less you have to observe and the less you have to know about the real machine as you work against an abstracted (and simplified) concept of the system, but on the other hand the less efficient your code will be. All programming languages are tradeoffs in this respect (and some other areas).

The last 50 years saw a whole lot of programming paradigms: structured programming, object orientation, data-centered programming, and whatnot. Basically, all these paradigms are ways to help the programmer keep his code as organized and understandable (=> maintainable) as possible. There are good reasons to employ any of them and good reasons why to avoid them. For every paradigm i could write a demo program where it looks bad and another where it seems the natural thing to do.

Do the sensible thing: learn to program with an emphasis on algorithms, not on programming methods. It is like with (human) languages: if you know how to organize your thoughts well and how to express what you mean without any margin of error you will be able to transport that capability into any language, regardless how little you speak it. But if you know five different languages but have difficulties phrasing a simple fact your communication attempts will fail in any language.

It is not very popular nowadays, but i even suggest to start learning Assembler before anything else: only knowing in-depth how a system works will let you appreciated what a compiler does for you and knowing how to program in a structured language (C) will make you appreciate what a C++-compiler does in addition to a C-compiler once you switch from C to C++. There is a reason why Donald Knuth (my personal programming hero) developed his own virtual Assembly language for a hypothetical system for his book "The Art of Computer Programming".

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
 

5 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Is Unix Worth it?

I have been wanting to get much deaper into the world of computers for quite some time. I know a lot of c++, and plenty of website programming, and decided that the next step should be Unix. But here's the thing - I know nothing about Unix. I installed it and everything, but it just seemed like... (3 Replies)
Discussion started by: GuyWithAPen
3 Replies

2. UNIX for Dummies Questions & Answers

What is this system worth?

So my family is cleaning out our house and my dad stumbled on a Unix system with Unigraphix installed on it, and he remembers that it was 1 of 6 computers in a set that he used at a tool and dye machine shop where he worked. He said that the computer by itself with the monitor was $20,000! I was... (8 Replies)
Discussion started by: NVOtosReborn
8 Replies

3. What is on Your Mind?

Is M.Sc (FOSS) worth doing?

Recently while reading an linux magazine I understood that FOSS (Free or open source software) is gaining momentum.. And in my home town there is an reputed university which offers M.Sc online program on FOSS. The course covers: INTRODUCTION TO COMPUTING, PHILOSOPHY AND PRACTICE OF FOSS,... (4 Replies)
Discussion started by: Arun_Linux
4 Replies

4. Linux

Are /home partitions worth it?

I'm new to the Linux world and whilst I've been learning the ropes, I've read some conflicting opinions regarding the creation of separate partitions for /home and other directories during OS install. Some say that having these directories in separate partitions allows you to reinstall without... (12 Replies)
Discussion started by: maerlyngb
12 Replies

5. What is on Your Mind?

Are certifications worth it?

I have just been on RedHat SA 3 training course (4 days) and sat exams EX200 (RHCSA) and EX300 (RHCE) The daft thing was that politics meant I wasn't allowed to take courses SA 1 or 2. So I learnt about stuff I would never use (SELinux; iSCSI; NFS Kerberos encrypted with user specific access... (22 Replies)
Discussion started by: rbatte1
22 Replies
MIXAL(1)							Mixal user's manual							  MIXAL(1)

NAME
mixal - a load-and-go MIX assembler SYNOPSIS
mixal [ file ... ] DESCRIPTION
Mixal is an implementation of the hypothetical MIX computer and its assembly language called MIXAL. The computer was designed by Donald Knuth for use in his monumental and yet to be finished book series The Art of Computer Programming. All programs and all programming exer- cises in the book are written in the MIXAL language. This implementation is a load-and-go assembler, meaning that you provide it with a MIXAL program source, which it translates into MIX machine code, which it promptly executes by acting as a MIX emulator. You give Mixal zero or more program source files in the command line, which the program interprets. If you give it no arguments, it expects to find a program in the standard input stream. After the program has executed, the final state of the machine registers are printed to the standard output stream. The card punch and line printer devices are connected to the standard input and output stream, respectively. Console input and output are connected to standard input and output, and the disk devices are connected to files named diskN in the current directory, where N is the device number. Those files are created on demand. BUGS
This MIXAL implementation does not do floating-point. The tape devices are not implemented. AUTHOR
This MIXAL implementation was designed and written by Darius Bacon, and then ported to Unixish systems and debugged by Eric S. Raymond. This version includes corrections to multiplication and division by Larry Gately. This manual page was written for Debian by Antti-Juhani Kaijanaho, with changes by Darius Bacon. SEE ALSO
The files /usr/share/doc/mixal/READ.ME and /usr/share/doc/mixal/NOTES.gz contain some information about this MIXAL implementation. Be sure to read /usr/share/doc/mixal/README.Debian, too. A description of the MIX system and the MIXAL language can be found in Donald E. Knuth's book The Art of Computer Programming, Volume 1: Fundamental Algorithms; 3rd Edition (Addison-Wesley 1997). (Or see the home page at http://www-cs-faculty.stan- ford.edu/%7Eknuth/taocp.html.) Debian project 18 May 2003 MIXAL(1)
All times are GMT -4. The time now is 06:10 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy