Author: Gaia Asher
Publisher: Trafford Publishing
ISBN: 155395050X
Category : Computers
Languages : en
Pages : 228
Book Description
The Dark Art of C# Programming By Gaia Asher C# is the new programming language at the core of the Microsoft .Net initiative. If you want to be on the .Net bandwagon, you need this language. And how can 500 letter-sized pages of official ECMA-334 Standard "C# Language Specification" fit into 200 pages of this book? Still, it's done. This book explains the complete and unabridged C# programming language. It can be used as both a blitzkrieg course for students and a convenient reference for professionals. The book has two main parts. The Part One, "Bare Necessities", describes the basic language functionality similar to what you can find in all traditional languages from Algol and Fortran to Pascal and C. That includes such topics as statements, flow control, operators, expressions, type system, local declarations, preprocessor, and more. The Part Two, "Classes and Objects", dives into object-oriented programming inherited by C# from SmallTalk, Modula-2, C++, and Java. For benefit of the readers, who already know some programming language, the book frequently compares C# constructs to their counterparts in other languages, especially C, C++, and Java. Who is this book for? Software developers and Computer Science and Information Technology students. What does this book cover? Complete C# programming language as per ECMA-334 Standard. What do you need to know? Generic understanding of programming in any language will be helpful. What to read next? ".Net Cookbook" (not yet published) for .Net extensive library of classes.
The Dark Art of C# Programming
Author: Gaia Asher
Publisher: Trafford Publishing
ISBN: 155395050X
Category : Computers
Languages : en
Pages : 228
Book Description
The Dark Art of C# Programming By Gaia Asher C# is the new programming language at the core of the Microsoft .Net initiative. If you want to be on the .Net bandwagon, you need this language. And how can 500 letter-sized pages of official ECMA-334 Standard "C# Language Specification" fit into 200 pages of this book? Still, it's done. This book explains the complete and unabridged C# programming language. It can be used as both a blitzkrieg course for students and a convenient reference for professionals. The book has two main parts. The Part One, "Bare Necessities", describes the basic language functionality similar to what you can find in all traditional languages from Algol and Fortran to Pascal and C. That includes such topics as statements, flow control, operators, expressions, type system, local declarations, preprocessor, and more. The Part Two, "Classes and Objects", dives into object-oriented programming inherited by C# from SmallTalk, Modula-2, C++, and Java. For benefit of the readers, who already know some programming language, the book frequently compares C# constructs to their counterparts in other languages, especially C, C++, and Java. Who is this book for? Software developers and Computer Science and Information Technology students. What does this book cover? Complete C# programming language as per ECMA-334 Standard. What do you need to know? Generic understanding of programming in any language will be helpful. What to read next? ".Net Cookbook" (not yet published) for .Net extensive library of classes.
Publisher: Trafford Publishing
ISBN: 155395050X
Category : Computers
Languages : en
Pages : 228
Book Description
The Dark Art of C# Programming By Gaia Asher C# is the new programming language at the core of the Microsoft .Net initiative. If you want to be on the .Net bandwagon, you need this language. And how can 500 letter-sized pages of official ECMA-334 Standard "C# Language Specification" fit into 200 pages of this book? Still, it's done. This book explains the complete and unabridged C# programming language. It can be used as both a blitzkrieg course for students and a convenient reference for professionals. The book has two main parts. The Part One, "Bare Necessities", describes the basic language functionality similar to what you can find in all traditional languages from Algol and Fortran to Pascal and C. That includes such topics as statements, flow control, operators, expressions, type system, local declarations, preprocessor, and more. The Part Two, "Classes and Objects", dives into object-oriented programming inherited by C# from SmallTalk, Modula-2, C++, and Java. For benefit of the readers, who already know some programming language, the book frequently compares C# constructs to their counterparts in other languages, especially C, C++, and Java. Who is this book for? Software developers and Computer Science and Information Technology students. What does this book cover? Complete C# programming language as per ECMA-334 Standard. What do you need to know? Generic understanding of programming in any language will be helpful. What to read next? ".Net Cookbook" (not yet published) for .Net extensive library of classes.
Expert C Programming
Author: Peter Van der Linden
Publisher: Prentice Hall Professional
ISBN: 0131774298
Category : Computers
Languages : en
Pages : 379
Book Description
Software -- Programming Languages.
Publisher: Prentice Hall Professional
ISBN: 0131774298
Category : Computers
Languages : en
Pages : 379
Book Description
Software -- Programming Languages.
Black Art of 3D Game Programming
Author: André LaMothe
Publisher:
ISBN: 9781571690043
Category : Computer games
Languages : en
Pages : 0
Book Description
Written by a master programmer, this book explains in detail what's behind the programming of those complex, mesmerizing video games. LaMothe makes clarity a priority, discussing math, projections, hidden surface removal, lighting, and transformation in an easy-to-understand language, and concludes by showing how to assemble all the pieces of a game into a complete product. 30 screen dumps.
Publisher:
ISBN: 9781571690043
Category : Computer games
Languages : en
Pages : 0
Book Description
Written by a master programmer, this book explains in detail what's behind the programming of those complex, mesmerizing video games. LaMothe makes clarity a priority, discussing math, projections, hidden surface removal, lighting, and transformation in an easy-to-understand language, and concludes by showing how to assemble all the pieces of a game into a complete product. 30 screen dumps.
Effective C
Author: Robert C. Seacord
Publisher: No Starch Press
ISBN: 1718501056
Category : Computers
Languages : en
Pages : 273
Book Description
A detailed introduction to the C programming language for experienced programmers. The world runs on code written in the C programming language, yet most schools begin the curriculum with Python or Java. Effective C bridges this gap and brings C into the modern era--covering the modern C17 Standard as well as potential C2x features. With the aid of this instant classic, you'll soon be writing professional, portable, and secure C programs to power robust systems and solve real-world problems. Robert C. Seacord introduces C and the C Standard Library while addressing best practices, common errors, and open debates in the C community. Developed together with other C Standards committee experts, Effective C will teach you how to debug, test, and analyze C programs. You'll benefit from Seacord's concise explanations of C language constructs and behaviors, and from his 40 years of coding experience. You'll learn: How to identify and handle undefined behavior in a C program The range and representations of integers and floating-point values How dynamic memory allocation works and how to use nonstandard functions How to use character encodings and types How to perform I/O with terminals and filesystems using C Standard streams and POSIX file descriptors How to understand the C compiler's translation phases and the role of the preprocessor How to test, debug, and analyze C programs Effective C will teach you how to write professional, secure, and portable C code that will stand the test of time and help strengthen the foundation of the computing world.
Publisher: No Starch Press
ISBN: 1718501056
Category : Computers
Languages : en
Pages : 273
Book Description
A detailed introduction to the C programming language for experienced programmers. The world runs on code written in the C programming language, yet most schools begin the curriculum with Python or Java. Effective C bridges this gap and brings C into the modern era--covering the modern C17 Standard as well as potential C2x features. With the aid of this instant classic, you'll soon be writing professional, portable, and secure C programs to power robust systems and solve real-world problems. Robert C. Seacord introduces C and the C Standard Library while addressing best practices, common errors, and open debates in the C community. Developed together with other C Standards committee experts, Effective C will teach you how to debug, test, and analyze C programs. You'll benefit from Seacord's concise explanations of C language constructs and behaviors, and from his 40 years of coding experience. You'll learn: How to identify and handle undefined behavior in a C program The range and representations of integers and floating-point values How dynamic memory allocation works and how to use nonstandard functions How to use character encodings and types How to perform I/O with terminals and filesystems using C Standard streams and POSIX file descriptors How to understand the C compiler's translation phases and the role of the preprocessor How to test, debug, and analyze C programs Effective C will teach you how to write professional, secure, and portable C code that will stand the test of time and help strengthen the foundation of the computing world.
Crafting Interpreters
Author: Robert Nystrom
Publisher: Genever Benning
ISBN: 0990582949
Category : Computers
Languages : en
Pages : 1021
Book Description
Despite using them every day, most software engineers know little about how programming languages are designed and implemented. For many, their only experience with that corner of computer science was a terrifying "compilers" class that they suffered through in undergrad and tried to blot from their memory as soon as they had scribbled their last NFA to DFA conversion on the final exam. That fearsome reputation belies a field that is rich with useful techniques and not so difficult as some of its practitioners might have you believe. A better understanding of how programming languages are built will make you a stronger software engineer and teach you concepts and data structures you'll use the rest of your coding days. You might even have fun. This book teaches you everything you need to know to implement a full-featured, efficient scripting language. You'll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused. Starting from main(), you will build a language that features rich syntax, dynamic typing, garbage collection, lexical scope, first-class functions, closures, classes, and inheritance. All packed into a few thousand lines of clean, fast code that you thoroughly understand because you wrote each one yourself.
Publisher: Genever Benning
ISBN: 0990582949
Category : Computers
Languages : en
Pages : 1021
Book Description
Despite using them every day, most software engineers know little about how programming languages are designed and implemented. For many, their only experience with that corner of computer science was a terrifying "compilers" class that they suffered through in undergrad and tried to blot from their memory as soon as they had scribbled their last NFA to DFA conversion on the final exam. That fearsome reputation belies a field that is rich with useful techniques and not so difficult as some of its practitioners might have you believe. A better understanding of how programming languages are built will make you a stronger software engineer and teach you concepts and data structures you'll use the rest of your coding days. You might even have fun. This book teaches you everything you need to know to implement a full-featured, efficient scripting language. You'll learn both high-level concepts around parsing and semantics and gritty details like bytecode representation and garbage collection. Your brain will light up with new ideas, and your hands will get dirty and calloused. Starting from main(), you will build a language that features rich syntax, dynamic typing, garbage collection, lexical scope, first-class functions, closures, classes, and inheritance. All packed into a few thousand lines of clean, fast code that you thoroughly understand because you wrote each one yourself.
Coders at Work
Author: Peter Seibel
Publisher: Apress
ISBN: 1430219491
Category : Computers
Languages : en
Pages : 619
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
Publisher: Apress
ISBN: 1430219491
Category : Computers
Languages : en
Pages : 619
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
The Art of Writing Efficient Programs
Author: Fedor G. Pikus
Publisher: Packt Publishing Ltd
ISBN: 1800202741
Category : Computers
Languages : en
Pages : 465
Book Description
Become a better programmer with performance improvement techniques such as concurrency, lock-free programming, atomic operations, parallelism, and memory management Key Features Learn proven techniques from a heavyweight and recognized expert in C++ and high-performance computing Understand the limitations of modern CPUs and their performance impact Find out how you can avoid writing inefficient code and get the best optimizations from the compiler Learn the tradeoffs and costs of writing high-performance programs Book DescriptionThe great free lunch of "performance taking care of itself" is over. Until recently, programs got faster by themselves as CPUs were upgraded, but that doesn't happen anymore. The clock frequency of new processors has almost peaked, and while new architectures provide small improvements to existing programs, this only helps slightly. To write efficient software, you now have to know how to program by making good use of the available computing resources, and this book will teach you how to do that. The Art of Efficient Programming covers all the major aspects of writing efficient programs, such as using CPU resources and memory efficiently, avoiding unnecessary computations, measuring performance, and how to put concurrency and multithreading to good use. You'll also learn about compiler optimizations and how to use the programming language (C++) more efficiently. Finally, you'll understand how design decisions impact performance. By the end of this book, you'll not only have enough knowledge of processors and compilers to write efficient programs, but you'll also be able to understand which techniques to use and what to measure while improving performance. At its core, this book is about learning how to learn.What you will learn Discover how to use the hardware computing resources in your programs effectively Understand the relationship between memory order and memory barriers Familiarize yourself with the performance implications of different data structures and organizations Assess the performance impact of concurrent memory accessed and how to minimize it Discover when to use and when not to use lock-free programming techniques Explore different ways to improve the effectiveness of compiler optimizations Design APIs for concurrent data structures and high-performance data structures to avoid inefficiencies Who this book is for This book is for experienced developers and programmers who work on performance-critical projects and want to learn new techniques to improve the performance of their code. Programmers in algorithmic trading, gaming, bioinformatics, computational genomics, or computational fluid dynamics communities will get the most out of the examples in this book, but the techniques are fairly universal. Although this book uses the C++ language, the concepts demonstrated in the book can be easily transferred or applied to other compiled languages such as C, Java, Rust, Go, and more.
Publisher: Packt Publishing Ltd
ISBN: 1800202741
Category : Computers
Languages : en
Pages : 465
Book Description
Become a better programmer with performance improvement techniques such as concurrency, lock-free programming, atomic operations, parallelism, and memory management Key Features Learn proven techniques from a heavyweight and recognized expert in C++ and high-performance computing Understand the limitations of modern CPUs and their performance impact Find out how you can avoid writing inefficient code and get the best optimizations from the compiler Learn the tradeoffs and costs of writing high-performance programs Book DescriptionThe great free lunch of "performance taking care of itself" is over. Until recently, programs got faster by themselves as CPUs were upgraded, but that doesn't happen anymore. The clock frequency of new processors has almost peaked, and while new architectures provide small improvements to existing programs, this only helps slightly. To write efficient software, you now have to know how to program by making good use of the available computing resources, and this book will teach you how to do that. The Art of Efficient Programming covers all the major aspects of writing efficient programs, such as using CPU resources and memory efficiently, avoiding unnecessary computations, measuring performance, and how to put concurrency and multithreading to good use. You'll also learn about compiler optimizations and how to use the programming language (C++) more efficiently. Finally, you'll understand how design decisions impact performance. By the end of this book, you'll not only have enough knowledge of processors and compilers to write efficient programs, but you'll also be able to understand which techniques to use and what to measure while improving performance. At its core, this book is about learning how to learn.What you will learn Discover how to use the hardware computing resources in your programs effectively Understand the relationship between memory order and memory barriers Familiarize yourself with the performance implications of different data structures and organizations Assess the performance impact of concurrent memory accessed and how to minimize it Discover when to use and when not to use lock-free programming techniques Explore different ways to improve the effectiveness of compiler optimizations Design APIs for concurrent data structures and high-performance data structures to avoid inefficiencies Who this book is for This book is for experienced developers and programmers who work on performance-critical projects and want to learn new techniques to improve the performance of their code. Programmers in algorithmic trading, gaming, bioinformatics, computational genomics, or computational fluid dynamics communities will get the most out of the examples in this book, but the techniques are fairly universal. Although this book uses the C++ language, the concepts demonstrated in the book can be easily transferred or applied to other compiled languages such as C, Java, Rust, Go, and more.
Thinking In Numbers
Author: Daniel Tammet
Publisher: Little, Brown Spark
ISBN: 0316250805
Category : Mathematics
Languages : en
Pages : 240
Book Description
The irresistibly engaging book that "enlarges one's wonder at Tammet's mind and his all-embracing vision of the world as grounded in numbers" (Oliver Sacks, MD). Thinking in Numbers is the book that Daniel Tammet, mathematical savant and bestselling author, was born to write. In Tammet's world, numbers are beautiful and mathematics illuminates our lives and minds. Using anecdotes, everyday examples, and ruminations on history, literature, and more, Tammet allows us to share his unique insights and delight in the way numbers, fractions, and equations underpin all our lives. Inspired variously by the complexity of snowflakes, Anne Boleyn's eleven fingers, and his many siblings, Tammet explores questions such as why time seems to speed up as we age, whether there is such a thing as an average person, and how we can make sense of those we love. His provocative and inspiring new book will change the way you think about math and fire your imagination to view the world with fresh eyes.
Publisher: Little, Brown Spark
ISBN: 0316250805
Category : Mathematics
Languages : en
Pages : 240
Book Description
The irresistibly engaging book that "enlarges one's wonder at Tammet's mind and his all-embracing vision of the world as grounded in numbers" (Oliver Sacks, MD). Thinking in Numbers is the book that Daniel Tammet, mathematical savant and bestselling author, was born to write. In Tammet's world, numbers are beautiful and mathematics illuminates our lives and minds. Using anecdotes, everyday examples, and ruminations on history, literature, and more, Tammet allows us to share his unique insights and delight in the way numbers, fractions, and equations underpin all our lives. Inspired variously by the complexity of snowflakes, Anne Boleyn's eleven fingers, and his many siblings, Tammet explores questions such as why time seems to speed up as we age, whether there is such a thing as an average person, and how we can make sense of those we love. His provocative and inspiring new book will change the way you think about math and fire your imagination to view the world with fresh eyes.
Code
Author: Charles Petzold
Publisher: Microsoft Press
ISBN: 0137909292
Category : Computers
Languages : en
Pages : 563
Book Description
The classic guide to how computers work, updated with new chapters and interactive graphics "For me, Code was a revelation. It was the first book about programming that spoke to me. It started with a story, and it built up, layer by layer, analogy by analogy, until I understood not just the Code, but the System. Code is a book that is as much about Systems Thinking and abstractions as it is about code and programming. Code teaches us how many unseen layers there are between the computer systems that we as users look at every day and the magical silicon rocks that we infused with lightning and taught to think." - Scott Hanselman, Partner Program Director, Microsoft, and host of Hanselminutes Computers are everywhere, most obviously in our laptops and smartphones, but also our cars, televisions, microwave ovens, alarm clocks, robot vacuum cleaners, and other smart appliances. Have you ever wondered what goes on inside these devices to make our lives easier but occasionally more infuriating? For more than 20 years, readers have delighted in Charles Petzold's illuminating story of the secret inner life of computers, and now he has revised it for this new age of computing. Cleverly illustrated and easy to understand, this is the book that cracks the mystery. You'll discover what flashlights, black cats, seesaws, and the ride of Paul Revere can teach you about computing, and how human ingenuity and our compulsion to communicate have shaped every electronic device we use. This new expanded edition explores more deeply the bit-by-bit and gate-by-gate construction of the heart of every smart device, the central processing unit that combines the simplest of basic operations to perform the most complex of feats. Petzold's companion website, CodeHiddenLanguage.com, uses animated graphics of key circuits in the book to make computers even easier to comprehend. In addition to substantially revised and updated content, new chapters include: Chapter 18: Let's Build a Clock! Chapter 21: The Arithmetic Logic Unit Chapter 22: Registers and Busses Chapter 23: CPU Control Signals Chapter 24: Jumps, Loops, and Calls Chapter 28: The World Brain From the simple ticking of clocks to the worldwide hum of the internet, Code reveals the essence of the digital revolution.
Publisher: Microsoft Press
ISBN: 0137909292
Category : Computers
Languages : en
Pages : 563
Book Description
The classic guide to how computers work, updated with new chapters and interactive graphics "For me, Code was a revelation. It was the first book about programming that spoke to me. It started with a story, and it built up, layer by layer, analogy by analogy, until I understood not just the Code, but the System. Code is a book that is as much about Systems Thinking and abstractions as it is about code and programming. Code teaches us how many unseen layers there are between the computer systems that we as users look at every day and the magical silicon rocks that we infused with lightning and taught to think." - Scott Hanselman, Partner Program Director, Microsoft, and host of Hanselminutes Computers are everywhere, most obviously in our laptops and smartphones, but also our cars, televisions, microwave ovens, alarm clocks, robot vacuum cleaners, and other smart appliances. Have you ever wondered what goes on inside these devices to make our lives easier but occasionally more infuriating? For more than 20 years, readers have delighted in Charles Petzold's illuminating story of the secret inner life of computers, and now he has revised it for this new age of computing. Cleverly illustrated and easy to understand, this is the book that cracks the mystery. You'll discover what flashlights, black cats, seesaws, and the ride of Paul Revere can teach you about computing, and how human ingenuity and our compulsion to communicate have shaped every electronic device we use. This new expanded edition explores more deeply the bit-by-bit and gate-by-gate construction of the heart of every smart device, the central processing unit that combines the simplest of basic operations to perform the most complex of feats. Petzold's companion website, CodeHiddenLanguage.com, uses animated graphics of key circuits in the book to make computers even easier to comprehend. In addition to substantially revised and updated content, new chapters include: Chapter 18: Let's Build a Clock! Chapter 21: The Arithmetic Logic Unit Chapter 22: Registers and Busses Chapter 23: CPU Control Signals Chapter 24: Jumps, Loops, and Calls Chapter 28: The World Brain From the simple ticking of clocks to the worldwide hum of the internet, Code reveals the essence of the digital revolution.
The Art and Science of C
Author: Eric S. Roberts
Publisher: Addison-Wesley
ISBN: 9780201543223
Category : C (Computer program language).
Languages : en
Pages : 0
Book Description
This work sets out to provide a solid introduction to computer science that emphasizes software engineering and the development of good programming style. The text focuses on the use of libraries and abstractions, which are essential to modern programming, and readers will learn the fundamentals of ANSI C, the industry standard. Rather than attempt to translate Pascal-based approaches into a new domain, this text is written from the ground up as an introduction to C.
Publisher: Addison-Wesley
ISBN: 9780201543223
Category : C (Computer program language).
Languages : en
Pages : 0
Book Description
This work sets out to provide a solid introduction to computer science that emphasizes software engineering and the development of good programming style. The text focuses on the use of libraries and abstractions, which are essential to modern programming, and readers will learn the fundamentals of ANSI C, the industry standard. Rather than attempt to translate Pascal-based approaches into a new domain, this text is written from the ground up as an introduction to C.