Hi Trent,
I've been listening to the dialog for a bit and thought I would weigh in...

You've stated you are new to programming in general, but want to learn. You've also expressed interest in compilers, asking where to start to write compilers. You also want to use this new skill as a possible new career.

I applaud your efforts, however I suggest you rethink your strategy. You've selected what is arguably the hardest field within programming. Not only do you have to know computer architecture and instruction sets, you have to know parsing, lexing, optimization, etc. on top of all of the details of programming. Very smart people spend 10 years doing this with focused specialized instruction from people who know this stuff. 

Here are my recommendations:
1) identify an entry level programming position you are interested in (web dev is a decent choice). 
2) Identify the skills and languages you need to get into that position.
2a) learning basic programming skills in PHP or Python is far easier and faster than C/C++. The online manuals are fantastic, Stackoverflow is filled with great Q&A. 
3) get entry level job.
4) identify the next level of programming you want to learn (not compilers yet!) and repeat steps 1-3.

By the 3rd or 4th iteration, you may be ready for compiler design, or realize that there are other fun aspects of the field and pursue those as well (embedded firmware, IoT, etc).

I hope that helps.

Eric



On Wed, Jan 24, 2018 at 8:43 AM, Stephen Partington <cryptworks@gmail.com> wrote:
Some things to look for are online. For example, MIT has a ton of work online for free, https://ocw.mit.edu/index.htm

On Wed, Jan 24, 2018 at 8:24 AM, Carruth, Rusty <Rusty.Carruth@smartm.com> wrote:

Something they may or may not teach in school – take a good look at YACC and LEX (Flex/Bison in the open source world, IIRC).  They can help a lot in parsing the tokens. 

 

(At one point, after having written YACLP (Yet Another Command Language Parser), I realized that it would probably make more sense to use LEX/YACC (Flex/Bison) than to keep writing tokenizers and such…  Especially since the intention had been that you could enter the commands either on the command line and also run them like a pre-written program.  Never got the whole system finished, so don’t know if it DOES make more sense or not (from a practical point of view after having tried it out)…)

 

There may also be some good books.  I know I have a couple of books from my school days which cover various aspects of ‘language translation’.  I’ll try to remember to look for them tonight.  Don’t remember if they were any good, though.

 

From: PLUG-discuss [mailto:plug-discuss-bounces@lists.phxlinux.org] On Behalf Of trent shipley
Sent: Tuesday, January 23, 2018 6:39 PM
To: Main PLUG discussion list
Subject: Learning to compile

 

I have no money for school, (and whether school produces better coders or not, I LIKE school, but that's irrelevant due to the money problem.)

 

Is it possible to teach yourself to write compilers in an imperative language? If so how?


---------------------------------------------------
PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss



--
A mouse trap, placed on top of your alarm clock, will prevent you from rolling over and going back to sleep after you hit the snooze button.

Stephen


---------------------------------------------------
PLUG-discuss mailing list - PLUG-discuss@lists.phxlinux.org
To subscribe, unsubscribe, or to change your mail settings:
http://lists.phxlinux.org/mailman/listinfo/plug-discuss