Re: Learning to compile

Top Page
Attachments:
Message as email
+ (text/plain)
+ (text/html)
+ (text/plain)
Delete this message
Reply to this message
Author: Eric Cope
Date:  
To: Main PLUG discussion list
Subject: Re: Learning to compile
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 <>
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 <>
> 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 -
>> 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 -
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
>

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