Подписывайтесь на наш Telegram-канал! Ежедневно интересно!

Подписывайтесь на наш Telegram-канал!

Помочь нашему сайту финансово на сервисе сбора донатов!

Помочь нашему сайту финансово!
 
Текущий раздел Скачать бесплатно » Книги » Программирование » Foundations of Computing An Accessible Introduction to Formal Languages
HostLife - лучший платный хостинг

Foundations of Computing An Accessible Introduction to Formal Languages

  • Заявить о правах (Abuse)
Автор: Limpopo5 от 2021-11-07, 22:27:53
Foundations of Computing An Accessible Introduction to Formal LanguagesНазвание: Foundations of Computing: An Accessible Introduction to Formal Languages
Автор: Charles D. Allison
Издательство: Leanpub
Год: 2021-07-01
Страниц: 286
Язык: английский
Формат: pdf (true), epub
Размер: 64.7 MB

An accessible, practical approach to formal languages with an introduction to computability.

A textbook for upper-division Computer Science majors covering formal languages and automata with an introduction to computability. Intended to give CS majors a solid foundation in the Theory of Computation without being overly formal mathematically, while retaining the rigor of the material.

I wrote this book to make the fundamentals of the theory of computation more accessible to the current generation of undergraduate computer science students. Over the course of twenty years of teaching this subject at Utah Valley University (UVU) in Orem, Utah, I have noticed that computer science undergraduates are not as mathematically sophisticated as in the early days of computer science education, when CS students mostly came from mathematics and the sciences, yet the demand for CS graduates has increased dramatically, with enrollments at UVU and elsewhere following suit. Furthermore, the areas where computing applies to daily life have broadened to the point that society can’t seem to do without the convenience that computerized devices afford. CS graduates can make a noticeable contribution to the world of computing work without as much mastery of formal mathematics as was required in times past.

Yet it is crucial that a practicing software engineer understand the nature and limits of computation. As the artist must have familiarity with media and the scientist with elements and equipment, the computing practitioner must know what software can and can’t do. In this book, I attempt to illuminate the fundamentals of computing for as large an audience as possible. The key results of the theory of computation are covered with numerous examples and sometimes even with working Python programs, while at the same time achieving a measure of rigor with only a minimum of mathematical formalism. Formal proofs appear infrequently, but constructive arguments abound. I use recursive definitions, but use mathematical induction only twice. While mathematical notation appears as needed, I use visual representations profusely to illustrate concepts.

I assume that readers have basic programming knowledge as one would encounter in typical CS1 and CS2 courses, and familiarity with introductory discrete mathematics, including sets, relations, functions, modular arithmetic, the notion of a logarithm, first-order predicate logic, and the structure of simple, directed graphs.

The emphasis is on the structure, properties, and application of formal languages, along with an introductory exposure to computability. Complexity theory is not covered, as it is the topic of a separate undergraduate course on algorithms at UVU. Parsing is only touched on since that topic is covered exhaustively in our compiler course required of CS majors.

I use a uniform approach to transition graphs for the different types of finite-state machines so students feel at home when new features are added. For example, for pushdown automata, I use the same graph notation as for finite automata, only adding stack operations, and only pop one symbol at a time. In addition, when stack start symbols are used, I explicitly push them in the graph, minimizing changes to what students are already accustomed to with finite automata. Furthermore, I require both final/accepting states and an empty stack simultaneously for PDA acceptance. This avoids needless discussion of how to convert acceptance by empty stack to and from acceptance by accepting state only, and makes it easier to show that deterministic pushdown automata are closed under complement, as well as making converting PDAs to context-free grammars less exceptional.

Several programming examples appear, and a small number of modest programming projects appear in the exercises. I use Python 3. Python is among the most readable of programming languages; it is often referred to as “executable pseudocode.” It is in widespread use in many computing domains and is universally available. An effective innovation is the use of Python program to teach reductions of one unsolvable problem to another in a compact chapter on computability.

Скачать Foundations of Computing An Accessible Introduction to Formal Languages






Выгодные предложения от нашего партнёра ИГ "ЭКСМО-АРТ":

Акция С заботой о здоровье и безопасности




 


BooksKeeper - электронная библиотека, ежедневно пополняемая нашими авторами.
Все материалы, представленные на нашем сайте, Вы сможете скачать по ссылкам различных бесплатных файлообменников совершенно бесплатно!
Инструкции, поясняющие, как надо качать бесплатно с файлообменников смотреть тут
Регистрация на нашем сайте позволит Вам добавлять свои книги, а также комментировать опубликованные книги, общаться с нашими авторами.
Для этого мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

HostLife - лучший платный хостинг
HostLife - лучший платный хостинг!
Отличный хостинг по цене от 1.87$/месяц! Рекомендация от сайта Bookskeeper!


Бесплатная электронная библиотека. Скачать книги бесплатно!
Текущий раздел Скачать бесплатно » Книги » Программирование » Foundations of Computing An Accessible Introduction to Formal Languages

Наша электронная библиотека Bookskeeper (для РФ работает через VPN) - это интернет-витрина, где любой посетитель может публиковать электронные варианты книг, журналов, газет, комиксов, в общем, любой литературы со ссылками для медленного, но бесплатного скачивания с файлообменников. В нашем книжном хранилище Вы всегда найдете литературу на любой вкус человека любого возраста - от детских комиксов и расскрасок до серьезной научной литературы.
 
 
Поддержите наш сайт!
Идет сбор донатов на хостинг
для работы нашего сайта.
Сканируйте QR-код
(или нажмите на него)
для Вашей поддержки!
Оплата картой, ЮMoney


Донаты для помощи нашему сайту!

ОГРОМНОЕ СПАСИБО
всем за Ваши донаты!

Наши рекомендации


Садовые печи-барбекю от компании Династия


Book24.ru - книжный интернет магазин



Turbobit - Получите турбо-доступ и скачивайте безлимитно и без рекламы!


HostLife - лучший платный хостинг