I'm working on a scripting language and would like to write a compiler / interpreter for my language. 

I've desited to do the compiler in standart ML

My question now is, is there a "pattern" for doing this sorta design process?

I've written a java-compiler from scratch as a part of a computerscience course, but that was sorta cheating, since the language was given, meaning that there was reference implementations and syntax, grammars and other specs given.

If starting from scratch, only having a problem domain how does one get started? 

I'm looking for a book or a tutorial on the subject.
['https://Stackoverflow.com/questions/10650165', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/750186/']
The classic books on modern compiler construction in functional languages are:

* [Modern Compiler Implementation in ML](http://www.cs.princeton.edu/~appel/modern/ml/)
* [Types and Programming Languages](http://www.cis.upenn.edu/~bcpierce/tapl/)
* [Implementing Functional Languages](http://research.microsoft.com/en-us/um/people/simonpj/papers/pj-lester-book/)
* [Practical Foundations of Programming Languages](http://www.cs.cmu.edu/~rwh/plbook/book.pdf)
[Concepts, Techniques and Models of Computer Programming](https://rads.stackoverflow.com/amzn/click/com/0262220695). This book is not directly about how to design a language, but it is an in-depth exploration of the features of one interesting language (Oz), how they interact, and how they enable various usage patterns and features. It is excellent for giving a sense of what the implications of various design decisions and capabilities are. Reading a few such books, observing the resulting languages, and synthesizing from them is a decent way to go about learning how to design a language.

Similarly, but a lot more pragmatically, [Programming Scala](https://rads.stackoverflow.com/amzn/click/com/0981531644) does a great job of explaining how language features enable style.

A lot of language design is ultimately taste and good sense. Reading in-depth explorations of existing languages is a good way to develop and hone such taste.