This book introduces the tools you'll need to program with the packetC language.
packetC speeds the development of applications that live within computer networks, the kind of programs that provide network functionality for connecting "clients" and "servers” and “clouds." The simplest examples provide packet switching and routing while more complex examples implement cyber security, broadband policies or cloud-based network infrastructure.
Network applications, such as those processing digital voice and video, must be highly scalable, secure and maintainable. Such application requirements translate to requirements for a network programming language that leverages massively-parallel systems and ensures a high level of security, while representing networking protocols and transactions in the simplest way possible.
packetC meets these requirements with an intuitive approach to coarse-grained parallelism, with strong-typing and controlled memory access for security and with new data types and operators that express the classic operations of the network-oriented world in familiar programming terms.
No other language has addressed the full breadth of requirements for tractable parallelism, secure processing and usable constructs. The packetC language is growing in adoption and has been used to develop solutions operating in some of the world’s largest networks.
This important new language, packetC, has now been successfully documented in this book, in which the language's authors provide the materials and tools you'll need in a readable and accessible form.
What you’ll learn
This book is the primary document specifying the language from a developer’s point of view and act as the formal language user’s guide. It covers:- How to program applications in packetC.
- The parallel programming model of packetC
- Deviations from C99 and the unique aspects of packetC
- How to leverage existing C code and the applicability of the C standard libraries
Who this book is for
packetC Programming is written for a wide variety of potential programmers. Most importantly, it's for people who need to use packetC to program for the Internet backbone. Still, knowledge of the packetC language will help a much wider array of programmers who need to write effective code that will be optimized for the cloud and work effectively and efficiently through complex network structures. Finally, readers will learn about how and why packetC is needed, and to better understand the technologies, standards and issues surrounding the 'net. If you really want to understand this level of programming, this book is a must-have!
Table of Contents
PART 1: packetC BackgroundChapter 1: Origins of packetC
Chapter 2: Introduction to packetC Language
Chapter 3: Style Guidelines for packetC Programs
Chapter 4: Construction of a packetC Program
PART 2: Language Reference
Chapter 5: Variables—Identifiers, Basic Scalar Data Types, and Literals Chapter 6: Data Initialization and Mathematical Expressions
Chapter 7: Functions
Chapter 8: packetC Data Type Fundamentals
Chapter 9: C-Style Data Types
Chapter 10: Basic Packet Interaction and Operations
Chapter 11: Selection Statements
Chapter 12: Loops and Flow Control
Chapter 13: Exception Handling
Chapter 14: Databases Types and Operations
Chapter 15: Search Set Types and Operations
Chapter 16: Reference Type and Operations
Chapter 17: Lock and Unlock Operators
Chapter 18: Packet Information Block and System Packet Operations Chapter 19: Descriptor Type and Operations
PART 3: Developing Applications
Chapter 20: Control Plane and System Interaction
Chapter 21: packetC Pre-Processor
Chapter 22: Pragmas and Other Key Compiler Directives
Chapter 23: Developing Large Applications in packetC
Chapter 24: Construction of a packetC Executable
Chapter 25: packetC Standard Networking Descriptors
Chapter 26: Developing For Performance
Chapter 27: Standard Libraries
PART 4: Industry Reprints
Appendix A: Reference Tables
Appendix B: Open Systems Vendors for packetC
Appendix C: Glossary
Appendix D: CloudShield Products Supporting packetC