Live Chat Icon For mobile
Live Chat Icon
Popular Categories.NET  (157).NET Core  (28).NET MAUI  (30)Angular  (64)ASP.NET  (48)ASP.NET Core  (72)ASP.NET MVC  (88)Azure  (31)Blazor  (130)DocIO  (22)Essential JS 2  (76)Essential Studio  (168)File Formats  (25)Flutter  (121)JavaScript  (165)Microsoft  (107)PDF  (64)React  (45)Succinctly series  (126)Syncfusion  (534)TypeScript  (30)Uno Platform  (3)UWP  (4)Vue  (34)Webinar  (29)Windows Forms  (57)WinUI  (38)WPF  (131)Xamarin  (142)XlsIO  (25)Other CategoriesBarcode  (5)BI  (29)Bold BI  (4)Build conference  (6)Business intelligence  (53)Button  (4)C#  (115)Chart  (55)Cloud  (11)Company  (445)Dashboard  (6)Data Science  (3)Data Validation  (5)DataGrid  (53)Development  (323)Doc  (7)DockingManager  (1)eBook  (95)Enterprise  (22)Entity Framework  (5)Essential Tools  (14)Excel  (22)Extensions  (17)File Manager  (4)Gantt  (9)Gauge  (9)Git  (4)Grid  (27)HTML  (9)Installer  (2)Knockout  (2)Language  (1)LINQPad  (1)Linux  (2)M-Commerce  (1)Metro Studio  (11)Mobile  (269)Mobile MVC  (9)OLAP server  (1)Open source  (1)Orubase  (12)Partners  (21)PDF viewer  (28)Performance  (8)PHP  (1)PivotGrid  (4)Predictive Analytics  (6)Report Server  (3)Reporting  (10)Reporting / Back Office  (11)Rich Text Editor  (7)Road Map  (10)Scheduler  (33)SfDataGrid  (9)Silverlight  (21)Sneak Peek  (20)Solution Services  (2)Spreadsheet  (11)SQL  (8)Stock Chart  (1)Surface  (4)Tablets  (5)Theme  (11)Tips and Tricks  (88)UI  (183)Uncategorized  (68)Unix  (2)User interface  (68)Visual State Manager  (1)Visual Studio  (23)Visual Studio Code  (14)Web  (292)What's new  (177)Windows 8  (19)Windows App  (2)Windows Phone  (15)Windows Phone 7  (9)WinRT  (26)
Share on twitter
Share on facebook
Share on linkedin

With Implementing a Custom Lang Succinctly Author

The following is a short interview with Succinctly series author Vassili Kaplan, whose latest book, Implementing a Custom Language Succinctly, was published recently. You can download the book here.

Implementing a Custom Language Succinctly

What should people know about the subject of your book? Why is it important?

If you know how a compiler works, you start programming differently and more efficiently. There are a few ways of implementing the same algorithm, but usually they are not equivalent and one of them will do its job more efficiently than another.

For instance, in C++ the prefix operator ++x is usually more efficient than the postfix one x++, when x is not a primitive type.

In CSCS, “for (element : array)” loop is more efficient than “for (i = 0; i < size(array); ++i)” for accessing all elements of an array.

The good thing about a custom language is precisely that it’s custom—you can easily change basic language features and their implementation. For instance, you can fine-tune the performance of “for (i = 0; i < size(array); ++i)” loop if this is the loop you want to use the most. You can add new operators and new programming rules, so you can start having even more fun when programming!

When did you first become interested in this subject?

A few years ago, I wrote a custom algorithm to parse a mathematical expression, Split-And-Merge. When I was publishing an article describing this algorithm in MSDN Magazine, I was asked by the editor to add a sentence on how this algorithm can be used in real life. So I added this sentence:

 “With small adjustments you can also create your own C# compiler for your new scripting language”


 Only after the article was published, I started thinking: “And how do I actually do that?”

As a result, I published another article in MSDN ( and this is how CSCS, Customizable Scripting in C#, was born.