دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: برنامه نويسي ویرایش: نویسندگان: Markus Voelter سری: ناشر: dslbook.org سال نشر: 2013 تعداد صفحات: 560 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 10 مگابایت
در صورت تبدیل فایل کتاب DSL Engineering: Designing, Implementing and Using Domain-Specific Languages به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب مهندسی DSL: طراحی ، پیاده سازی و استفاده از زبان های خاص دامنه نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
(با سباستین بنز، کریستین دیتریش، بیرگیت انگلمن متس هلندر، لنارت کاتس، ایلکو ویسر، گیدو واکسموت) [این کتاب یک ابزار اهدایی است.] زبانهای اختصاصی دامنه، زبانهای برنامهنویسی هستند که برای یک دامنه کاربردی خاص طراحی شدهاند. با ترکیب دانش در مورد آن دامنه، DSL ها می توانند به برنامه های مختصرتر و قابل تحلیل تر، کیفیت کد بهبود یافته، ادغام سهامداران دقیق تر و سرعت توسعه سریع تر منجر شوند. این کتاب با تکیه بر میز کار زبان های پیشرفته امروزی، مثال های فراوان و سال ها تجربه، مقدمه ای کامل بر DSL ها ارائه می دهد. این کتاب دارای چهار بخش است که هر بخش بر جنبهای متفاوت از توسعه DSL تمرکز دارد. 1. مقدمه: در این قسمت به طور کلی DSL ها معرفی شده و مزایا و معایب آن ها بیان می شود. اصطلاحات و مفاهیم مهم را تعریف می کند و مطالعات موردی و ابزارهای مورد استفاده در بیشتر قسمت های باقی مانده کتاب را معرفی می کند. 2. طراحی DSL: این بخش بر روی طراحی DSL ها - بدون توجه به فناوری های پیاده سازی تمرکز دارد. این هفت بعد طراحی را مورد بحث قرار می دهد، تعدادی از پارادایم های زبان قابل استفاده مجدد را توضیح می دهد و به تعدادی از مسائل مربوط به فرآیند اشاره می کند. 3. پیادهسازی DSL: این بخش با استفاده از مثالهای فراوان جزئیاتی در مورد پیادهسازی DSL ارائه میدهد. از سه میز کار پیشرفته اما کاملاً متفاوت استفاده می کند: JetBrains MPS، Eclipse Xtext و TU Delft's Spoofax. 4. DSL ها در مهندسی نرم افزار: این بخش استفاده از DSL ها را برای مهندسی نیازمندی ها، معماری، پیاده سازی و مهندسی خط تولید و همچنین نقش آنها به عنوان ابزار توسعه دهنده و برای پیاده سازی منطق تجاری مورد بحث قرار می دهد.
(with Sebastian Benz, Christian Dietrich, Birgit Engelmann Mats Helander, Lennart Kats, Eelco Visser, Guido Wachsmuth) [This book is donationware.] Domain-Specific Languages are programming languages that are tailored to a particular application domain. By incorporating knowledge about that domain, DSLs can lead to more concise and more analyzable programs, improved code quality, tighter stakeholder integration and faster development speed. This book provides a thorough introduction to DSLs, relying on today’s state-of-the-art language workbenches, lots of examples and years of experience. The book has four parts, each focussing on a different aspect of DSL development. 1. Introduction: This part introduces DSLs in general and discusses their advantages and drawbacks. It defines important terms and concepts and introduces the case studies and tools used in most of the remainder of the book. 2. DSL Design: This part focusses on the design of DSLs – regardless of implementation technologies. It discusses seven design dimensions, explains a number of reusable language paradigms and points out a number of process-related issues. 3. DSL Implementation: This part provides details about the implementation of DSLs, using lots of examples. It uses three state-of-the-art but quite different language workbenches: JetBrains MPS, Eclipse Xtext and TU Delft’s Spoofax 4. DSLs in Software Engineering: This part discusses the use of DSLs for requirements engineering, architecture, implementation and product line engineering, as well as their roles as a developer utility and for implementing business logic.
I Introduction......Page 8
Thank You!......Page 10
This book is Donationware......Page 11
Why this Book......Page 12
Who should Read this Book......Page 13
The Structure of the Book......Page 14
How to Read the Book......Page 15
Example Tools......Page 16
Case Studies and Examples......Page 17
Very Brief Introduction to the Terminology......Page 26
From General Purpose Languages to DSLs......Page 28
Modeling and Model-Driven Development......Page 32
Modular Languages......Page 35
Benefits of using DSLs......Page 41
Challenges......Page 44
Applications of DSLs......Page 48
Differentiation from other Works and Approaches......Page 51
II DSL Design......Page 54
Programs, Languages and Domains......Page 58
Model Purpose......Page 62
The Structure of Programs and Languages......Page 64
Parsing versus Projection......Page 68
Design Dimensions......Page 70
Expressivity......Page 71
Coverage......Page 81
Semantics and Execution......Page 83
Separation of Concerns......Page 103
Completeness......Page 112
Language Modularity......Page 117
Concrete Syntax......Page 133
Structure......Page 142
Behavior......Page 150
Combinations......Page 159
DSL Development......Page 162
Using DSLs......Page 169
III DSL Implementation......Page 174
Concrete and Abstract Syntax......Page 178
Fundamentals of Free Text Editing and Parsing......Page 180
Fundamentals of Projectional Editing......Page 189
Comparing Parsing and Projection......Page 190
Characteristics of AST Formalisms......Page 197
Xtext Example......Page 201
Spoofax Example......Page 208
MPS Example......Page 213
Scoping and Linking......Page 222
Scoping in Spoofax......Page 224
Scoping in Xtext......Page 230
Scoping in MPS......Page 235
Constraints......Page 240
Constraints in Xtext......Page 242
Constraints in MPS......Page 243
Constraints in Spoofax......Page 248
Type Systems......Page 254
Type Systems Basics......Page 255
Type Calculation Strategies......Page 256
Xtext Example......Page 261
MPS Example......Page 264
Spoofax Example......Page 268
Transformation and Generation......Page 272
Overview of the approaches......Page 273
Xtext Example......Page 275
MPS Example......Page 282
Spoofax Example......Page 291
Building Interpreters......Page 298
Building an Interpreter with Xtext......Page 300
An Interpreter in MPS......Page 307
An Interpreter in Spoofax......Page 309
Code Completion......Page 314
Syntax Coloring......Page 317
Go-to-Definition and Find References......Page 322
Pretty-Printing......Page 324
Quick Fixes......Page 328
Refactoring......Page 330
Labels and Icons......Page 334
Outline......Page 335
Code Folding......Page 337
Tooltips/Hover......Page 338
Visualizations......Page 340
Diff and Merge......Page 342
Testing DSLs......Page 344
Syntax Testing......Page 345
Constraints Testing......Page 347
Semantics Testing......Page 350
Formal Verification......Page 357
Testing Editor Services......Page 364
Testing for Language Appropriateness......Page 368
Debugging the DSL Definition......Page 370
Debugging DSL Programs......Page 377
Introduction......Page 394
MPS Example......Page 395
Xtext Example......Page 415
Spoofax Example......Page 429
IV DSLs in Software Engineering......Page 440
What are Requirements?......Page 444
Requirements versus Design versus Implementation......Page 446
Using DSLs for Requirements Engineering......Page 448
Integration with Plain Text Requirements......Page 451
What is Software Architecture?......Page 456
Architecture DSLs......Page 458
Component Models......Page 469
DSLs as Programmer Utility......Page 478
The Context......Page 479
Jnario Described......Page 480
Implementation......Page 483
Summary......Page 488
Introduction......Page 490
Challenges in Embedded Software......Page 492
The mbeddr Approach......Page 494
Design and Implementation......Page 502
Experiences......Page 512
Discussion......Page 519
Introduction......Page 522
Feature Models......Page 523
Connecting Feature Models to Artifacts......Page 524
From Feature Models to DSLs......Page 529
Conceptual Mapping from PLE to DSLs......Page 535
Intentional Software......Page 540
The Project Challenge......Page 541
The DSL-Based Solution......Page 542
Wrapping Up......Page 559