Reflections on Programming Systems


Book Description

This book presents a historical and philosophical analysis of programming systems, intended as large computational systems like, for instance, operating systems, programmed to control processes. The introduction to the volume emphasizes the contemporary need of providing a foundational analysis of such systems, rooted in a broader historical and philosophical discussion. The different chapters are grouped around three major themes. The first concerns the early history of large systems developed against the background of issues related to the growing semantic gap between hardware and code. The second revisits the fundamental issue of complexity of large systems, dealt with by the use of formal methods and the development of `grand designs’ like Unix. Finally, a third part considers several issues related to programming systems in the real world, including chapters on aesthetical, ethical and political issues. This book will interest researchers from a diversity of backgrounds. It will appeal to historians, philosophers, as well as logicians and computer scientists who want to engage with topics relevant to the history and philosophy of programming and more specifically the role of programming systems in the foundations of computing.




Reflections on the Teaching of Programming


Book Description

This state-of-the-art survey, reflecting on the teaching of programming, has been written by a group of primarily Scandinavian researchers and educators with special interest and experience in the subject of programming. The 14 chapters - contributed by 24 authors - present practical experience gathered in the process of teaching programming and associated with computing education research work. Special emphasis is placed on practical advice and concrete suggestions. The authors are all members of the Scandinavian Pedagogy of Programming Network (SPoP), and bring together a diverse body of experiences from the Nordic countries. The 14 chapters of the book have been carefully written and edited to present 4 coherent units on issues in introductory programming courses, object-oriented programming, teaching software engineering issues, and assessment. Each of these individual parts has its own detailed introduction. The topics addressed span a wide range of problems and solutions associated with the teaching of programming such as introductory programming courses, exposition of the programming process, apprentice-based learning, functional programming first, problem-based learning, the use of on-line tutorials, object-oriented programming and Java, the BlueJ environment to introduce programming, model-driven programming as opposed to the prevailing language-driven approach, teaching software engineering, testing, extreme programming, frameworks, feedback and assessment, active learning, technology-based individual feedback, and mini project programming exams.




Coders at Work


Book Description

Peter Seibel interviews 15 of the most interesting computer programmers alive today in Coders at Work, offering a companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words “at work” suggest, Peter Seibel focuses on how his interviewees tackle the day-to-day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 15 folks who’ve been kind enough to agree to be interviewed: Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow Joe Armstrong: Inventor of Erlang Joshua Bloch: Author of the Java collections framework, now at Google Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger Douglas Crockford: JSON founder, JavaScript architect at Yahoo! L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1 Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal Dan Ingalls: Smalltalk implementor and designer Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler Donald Knuth: Author of The Art of Computer Programming and creator of TeX Peter Norvig: Director of Research at Google and author of the standard text on AI Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress Ken Thompson: Inventor of UNIX Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker




Programming IOS 6


Book Description

Get a solid grounding in all the fundamentals of Cocoa Touch, and avoid problems during iPhone and iPad app development. With this revised and expanded edition, you'll dig into Cocoa and learn how to work effectively with Objective-C and Xcode. This book covers iOS 6 in a rigorous, orderly fashion--ideal whether you're approaching iOS for the first time or need a reference to bolster existing skills. Learn about features introduced with iOS 6, including Objective-C language advances, autosynthesis, autolayout, new view controller rotation rules, unwind segues, state restoration, styled text, and collection views. Learn Objective-C language details and object-oriented programming concepts Understand the anatomy of an Xcode project and all the stages of its lifecycle Grasp key Cocoa concepts such as relationships between classes, receiving events, and model-view-controller architecture Learn how views and layers are managed, drawn, composited, and animated Become familiar with view controllers and their relationships, along with nib and storyboard management Fully explore all basic interface objects such as scroll views, table views, and controls Delve into Cocoa frameworks for sound, video, sensors, maps, and other features Touch on advanced topics such as threading and networking




Programming Languages and Systems


Book Description

This book constitutes the refereed proceedings of the 13th Asian Symposium on Programming Languages and Systems, APLAS 2015, held in Pohang, South Korea, in November/December 2015. The 24 regular papers presented together with 1 short paper were carefully reviewed and selected from 74 submissions. The papers cover a variety of foundational and practical issues in programming languages and systems and have been organized in topical sections on compilers, separation logic, static analysis and abstract interpretation, Hoare logic and types, functional programming and semantics, model checking, program analysis, medley, and programming models.




Programming Languages and Systems


Book Description

This book constitutes the refereed proceedings of the 18th European Symposium on Programming, ESOP 2009, held in York, UK, in March 2009, as part of ETAPS 2009, the European Joint Conferences on Theory and Practice of Software. The 26 revised full papers presented together with two abstracts of invited talks were carefully reviewed and selected from 98 full paper submissions. The topics addressed are typed functional programming, computational effects, types for object-oriented languages, verification, security, concurrency, service-oriented computing, parallel and concurrent programming.




ECOOP '91 European Conference on Object-Oriented Programming


Book Description

ECOOP '91 is the fifth annual European Conference on Object-Oriented Programming. From their beginning, the ECOOP conferences have been very successful as a forum of high scientific quality where the newest devel- opments connected to object-oriented programming and related areas could be presented and discussed. Over the last few years object-oriented technology has gained widespread use and considerable popularity. In parallel with this, the field has matured scientifically, but there is still a lot of room for new ideas and for hot debates over fundamental issues, as these proceedings show. The 22 papers in this volume were selected by the programme committee from 129 submissions. Important issues discussed in the contributions are language design, specification, databases, concurrency types and software development.




FGCS '92


Book Description




Go Systems Programming


Book Description

Learning the new system's programming language for all Unix-type systems About This Book Learn how to write system's level code in Golang, similar to Unix/Linux systems code Ramp up in Go quickly Deep dive into Goroutines and Go concurrency to be able to take advantage of Go server-level constructs Who This Book Is For Intermediate Linux and general Unix programmers. Network programmers from beginners to advanced practitioners. C and C++ programmers interested in different approaches to concurrency and Linux systems programming. What You Will Learn Explore the Go language from the standpoint of a developer conversant with Unix, Linux, and so on Understand Goroutines, the lightweight threads used for systems and concurrent applications Learn how to translate Unix and Linux systems code in C to Golang code How to write fast and lightweight server code Dive into concurrency with Go Write low-level networking code In Detail Go is the new systems programming language for Linux and Unix systems. It is also the language in which some of the most prominent cloud-level systems have been written, such as Docker. Where C programmers used to rule, Go programmers are in demand to write highly optimized systems programming code. Created by some of the original designers of C and Unix, Go expands the systems programmers toolkit and adds a mature, clear programming language. Traditional system applications become easier to write since pointers are not relevant and garbage collection has taken away the most problematic area for low-level systems code: memory management. This book opens up the world of high-performance Unix system applications to the beginning Go programmer. It does not get stuck on single systems or even system types, but tries to expand the original teachings from Unix system level programming to all types of servers, the cloud, and the web. Style and approach This is the first book to introduce Linux and Unix systems programming in Go, a field for which Go has actually been developed in the first place.




Programming Languages and Systems


Book Description

This book constitutes the refereed proceedings of the Third Asian Symposium on Programming Languages and Systems, APLAS 2005, held in Tsukuba, Japan in November 2005. The 24 revised full papers presented together with 3 invited talks were carefully reviewed and selected from 78 submissions. Among the topics covered are semantics, type theory, program transformation, static analysis, verification, programming calculi, functional programming languages, language based security, real-time systems, embedded systems, formal systems design, Java objects, program analysis and optimization.