ورود به حساب

نام کاربری گذرواژه

گذرواژه را فراموش کردید؟ کلیک کنید

حساب کاربری ندارید؟ ساخت حساب

ساخت حساب کاربری

نام نام کاربری ایمیل شماره موبایل گذرواژه

برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید


09117307688
09117179751

در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید

دسترسی نامحدود

برای کاربرانی که ثبت نام کرده اند

ضمانت بازگشت وجه

درصورت عدم همخوانی توضیحات با کتاب

پشتیبانی

از ساعت 7 صبح تا 10 شب

دانلود کتاب Understanding Programming Languages

دانلود کتاب درک زبانهای برنامه نویسی

Understanding Programming Languages

مشخصات کتاب

Understanding Programming Languages

دسته بندی: برنامه نویسی: زبان های برنامه نویسی
ویرایش:  
نویسندگان:   
سری:  
ISBN (شابک) : 9783030592561, 9783030592578 
ناشر: Springer 
سال نشر: 2020 
تعداد صفحات: 229 
زبان: English 
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) 
حجم فایل: 2 مگابایت 

قیمت کتاب (تومان) : 45,000



ثبت امتیاز به این کتاب

میانگین امتیاز به این کتاب :
       تعداد امتیاز دهندگان : 14


در صورت تبدیل فایل کتاب Understanding Programming Languages به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.

توجه داشته باشید کتاب درک زبانهای برنامه نویسی نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.


توضیحاتی در مورد کتاب درک زبانهای برنامه نویسی

این کتاب در مورد توصیف معنی زبان های برنامه نویسی است. نویسنده مهارت نوشتن توصیف های معنایی را به عنوان راهی کارآمد برای درک ویژگی های یک زبان آموزش می دهد. در حالی که یک کامپایلر یا یک مفسر شکلی از توصیف رسمی یک زبان را ارائه می دهد، این چیزی نیست که بتوان به عنوان مبنایی برای استدلال در مورد آن زبان استفاده کرد و همچنین نمی تواند به عنوان تعریفی از خود زبان برنامه نویسی عمل کند، زیرا این باید محدوده ای را در اختیار بگذارد. از پیاده سازی ها با نوشتن یک معناشناسی رسمی یک زبان، طراح می‌تواند توصیف بسیار کوتاه‌تری ارائه دهد و انتخاب‌های طراحی را تحلیل، تحلیل و ضبط کند. در اوایل کتاب، نویسنده یک نماد ساده را معرفی می‌کند، یک فرازبان، که برای ثبت توصیفات معناشناسی زبان‌ها استفاده می‌شود. او در یک رویکرد عملی، ده‌ها موضوعی را که در زبان‌های برنامه‌نویسی کنونی مطرح می‌شود و تکنیک‌های کلیدی که باید برای نوشتن توضیحات معنایی رسمی مورد نیاز تسلط داشته باشند، در نظر می‌گیرد. این کتاب با بحث در مورد هشت چالش کلیدی به پایان می رسد: تحدید یک زبان (بازنمایی عینی)، تعیین حدود محتوای انتزاعی یک زبان، ثبت معناشناسی (زبان های قطعی)، معناشناسی عملیاتی (غیر جبر)، وابستگی به زمینه، به اشتراک گذاری مدل سازی، مدل سازی. همزمانی و خروجی مدلسازی محتوا به صورت کلاسی تست شده و برای دوره های سال آخر کارشناسی و کارشناسی ارشد مناسب است. همچنین برای هر طراح که می خواهد زبان ها را در سطح عمیق بفهمد مناسب است. بیشتر فصل‌ها پروژه‌هایی را ارائه می‌دهند، برخی از این تمرین‌های کاملاً پیشرفته که شرح کامل زبان‌ها را می‌طلبند، و کتاب در سرتاسر با اشاره‌هایی به خواندن بیشتر و منابع پشتیبانی می‌شود. به عنوان یک پیش نیاز، خواننده باید حداقل یک زبان ضروری سطح بالا را بداند و دانشی از نمادهای ریاضیات گسسته برای منطق و نظریه مجموعه داشته باشد.


توضیحاتی درمورد کتاب به خارجی

This book is about describing the meaning of programming languages. The author teaches the skill of writing semantic descriptions as an efficient way to understand the features of a language. While a compiler or an interpreter offers a form of formal description of a language, it is not something that can be used as a basis for reasoning about that language nor can it serve as a definition of a programming language itself since this must allow a range of implementations. By writing a formal semantics of a language a designer can yield a far shorter description and tease out, analyse and record design choices. Early in the book the author introduces a simple notation, a meta-language, used to record descriptions of the semantics of languages. In a practical approach, he considers dozens of issues that arise in current programming languages and the key techniques that must be mastered in order to write the required formal semantic descriptions. The book concludes with a discussion of the eight key challenges: delimiting a language (concrete representation), delimiting the abstract content of a language, recording semantics (deterministic languages), operational semantics (non-determinism), context dependency, modelling sharing, modelling concurrency, and modelling exits. The content is class-tested and suitable for final-year undergraduate and postgraduate courses. It is also suitable for any designer who wants to understand languages at a deep level. Most chapters offer projects, some of these quite advanced exercises that ask for complete descriptions of languages, and the book is supported throughout with pointers to further reading and resources. As a prerequisite the reader should know at least one imperative high-level language and have some knowledge of discrete mathematics notation for logic and set theory.



فهرست مطالب

Preface
	Using this book
	Writing style
	Acknowledgements
Contents
Chapter 1 Programming languages and their description
	1.1 Digital computers and programming languages
	1.2 The importance of HLLs
	1.3 Translators, etc.
	1.4 Insights from natural languages
	1.5 Approaches to describing semantics
	1.6 A meta-language
	1.7 Further material
		1.7.1 Further reading
		1.7.2 Classes of languages
		1.7.3 Logic of Partial Functions
Chapter 2 Delimiting a language
	2.1 Concrete syntax
	2.2 Abstract syntax
	2.3 Further material
		Projects
		Further reading
		Historical notes
Chapter 3 Operational semantics
	3.1 Operational semantics
	3.2 Structural Operational Semantics
		3.2.1 Relations
		3.2.2 Inference rules
		3.2.3 Non-deterministic iteration
	3.3 Further material
		Projects
		Alternatives
		Further reading
		Historical notes
Chapter 4 Constraining types
	4.1 Static vs. dynamic error detection
	4.2 Context conditions
	4.3 Semantic objects
		4.3.1 Input/output
		4.3.2 Arrays
		4.3.3 Records
	4.4 Further material
		Projects
		Further reading
Chapter 5 Block structure
	5.1 Blocks
	5.2 Abstract locations
	5.3 Procedures
	5.4 Parameter passing
		5.4.1 Passing “by reference”
		5.4.2 Passing “by value”
	5.5 Further material
		Projects
		Further reading
Chapter 6 Further issues in sequential languages
	6.1 Own variables
	6.2 Objects and methods
	6.3 Pascal variant records
	6.4 Heap variables
	6.5 Functions
		6.5.1 Marking the return value
		6.5.2 Side effects
		6.5.3 Recursion
		6.5.4 Passing functions as parameters [*]
		Procedure variables/results
	6.6 Further material
		Projects
Chapter 7 Other semantic approaches
	7.1 Denotational semantics
	7.2 Further material
	7.3 The axiomatic approach
		7.3.1 Assertions on states
		7.3.2 Hoare’s axioms
		7.3.3 Specification as statements
		7.3.4 Formal development
		7.3.5 Data abstraction and reification
	7.4 Further material
	7.5 Roles for semantic approaches
Chapter 8 Shared-variable concurrency
	8.1 Interference
	8.2 Small-step semantics
	8.3 Granularity
	8.4 Rely/Guarantee reasoning [*]
	8.5 Concurrent Separation Logic [*]
	8.6 Further material
		Projects
		Further reading
Chapter 9 Concurrent OOLs
	9.1 Objects for concurrency
		9.1.1 An example program
		9.1.2 Semantic objects
	9.2 Expressions
	9.3 Simple statements
	9.4 Creating objects
	9.5 Method activation and synchronisation
		9.5.1 Method activation
		9.5.2 Method synchronisation
		9.5.3 Delegation
	9.6 Reviewing COOL
		The example class
		COOL summary
	9.7 Further material
Chapter 10 Exceptional ordering [*]
	10.1 Abnormal exit model
	10.2 Continuations
	10.3 Relating the approaches
	10.4 Further material
		Projects
		Historical notes
Chapter 11 Conclusions
	11.1 Review of challenges
	11.2 Capabilities of formal description methods
	11.3 Envoi
Appendix A Simple language
	A.1 Concrete syntax
		A.1.1 Dijkstra style
		A.1.2 Java-style statement syntax
	A.2 Abstract syntax
	A.3 Semantics
		Statements
		Expressions
Appendix B Typed language
	B.1 Abstract syntax
	B.2 Context conditions
	B.3 Semantics
Appendix C Blocks language
	C.1 Auxiliary objects
		Objects needed for context conditions
		Semantic objects
	C.2 Programs
	C.3 Statements
	C.4 Simple statements Assignment
	C.5 Compound statements
	C.6 Blocks
	C.7 Call statements
	C.8 Expressions
Appendix D COOL
	Abbreviations
	D.1 Auxiliary objects
		Types for context conditions
		Types for semantics
	D.2 Expressions
	D.3 Statements
		D.3.1 Assignments
		D.3.2 If statements
	D.4 Methods
		D.4.1 Activate method
		D.4.2 Call method
		D.4.3 Rendezvous
		D.4.4 Method termination
		D.4.5 Delegation
	D.5 Classes
		D.5.1 Creating objects
		D.5.2 Discarding references
	D.6 Programs
Appendix E VDM notation
	E.1 Logical operators
	E.2 Set notation
	E.3 List (sequence) notation
	E.4 Map notation
	E.5 Record notation
	E.6 Function notation
Appendix F Notes on influential people
References
Index




نظرات کاربران