This is an online conference that will be held on Zoom for the talks while Discord will be used for networking.
Get your tickets now!
Day 1 (23th August 2024)
Time(IST) |
Topic |
Presenter |
Abstract |
09:45 - 10:00
|
Introduction |
CppIndia Hosts |
Welcome, familiarisation with the conference setup and Networking tools. |
10:00 - 11:00 |
Software Design and Performance in C++ |
John Stratton |
Historically, software developers were taught to focus on important software design principles that make it possible to construct the large software systems we rely on without falling into a pit of brittle, buggy, and unmaintainable code.-- In pursuit of these goals, and in the context of exponentially increasing compute capacity, performance was at most a secondary concern for most software projects.
Today, performance has become more and more the responsibility of the programmer in addition to the system provider. Some would say that this means compromising the good software design principles we normally rely on, but that should not be necessary. C++ itself is a language designed to make it possible to write both highly efficient and well-organized software, if the developer has an understanding of what the compiler and system will do with various language features and software implementation patterns. This presentation will cover high-level principles of both software design and software performance in C++, and explore case studies demonstrating how modern C++ language features can be used to combine and achieve both.
Read More
Read Less
|
11:00 - 11:30 |
30 min Break & Networking |
|
|
11:30 - 12:30 |
[Keynote] Declarative C++ |
Ankur Satle |
I don’t write code; I just express my intent and the compiler writes the code for me",I exclaimed while delivering a talk at a Company's Annual Event. And, I was very much talking about C++ code and not about a cloud deployment yaml or a makefile. We, as humans, know the best about the objective to be achieved or the problem to be solved. The compiler knows the best about the hardware and the best ways to achieve a desired outcome. It looks like a win-win approach that we specify the high-level outcome and the compiler (not an LLM! 😜) generates the best code to realise it. But, is it really possible to do this in C++?
In this talk, we explore how close to this we can get! I hope to inspire you to take the leap towards easy-to-use-correctly, highly maintainable and potentially bug-free implementations. BE WARNED: Once you see Declarative C++, THERE IS NO TURNING BACK! Your code will not be the same!!!
Read More
Read Less
|
12:30 - 13:00 |
30 min Break & Networking |
|
|
13:00 - 14:00 |
Art of Debugging |
Pavithra Ashok Kumar |
Enhance your debugging expertise by attending the focused talk,
designed for developers seeking to refine their problem-solving skills in software development.
This presentation will guide you through effective strategies for diagnosing and resolving bugs, with a particular emphasis on navigating the complexities of legacy code.
You will gain insights into a systematic approach for identifying bugs,
employing advanced techniques and tools for resolution, and implementing preventive measures to mitigate future errors. Join me to elevate your debugging capabilities and foster a more efficient and reliable development process. The talk also outlines preventive measures to ease the debugging process for the future
Read More
Read Less
|
14:00 - 15:00 |
Lunch & Networking |
|
|
15:00 - 16:00 |
What is a range? |
Šimon Tóth |
A range of elements was a very simple concept. Until C++20.
C++20 codified the concept of a range, a view, a common range, a borrowed range, a sized range.
After attending this talk, you will have a good understanding of the different types of ranges introduced in C++20, their limitations and implications on performance.
Read More
Read Less
|
16:00 - 16:30 |
30 min Break & Networking |
|
|
16:30 - 17:30 |
Lightning Talk |
Multiple Speakers |
|
17:30 - 17:45 |
Day 1 closure |
|
|
All day |
Networking on Discord |
|
|
Day 2 (24th August 2024)
Time(IST) |
Topic |
Presenter |
Abstract |
09:45 - 10:00
|
Introduction |
CppIndia Hosts |
Welcome, familiarisation with the conference setup and Networking tools. |
10:00 - 11:00 |
Getting Started with Modern C++ - A Tour of Features |
Mike Shah
|
Modern C++ is a powerful and expressive language used by millions of programmers.
The large C++ ecosystem of libraries and tooling allows C++ developers to build scalable and fast systems on multiple platforms utilizing techniques from multiple programming paradigms to conquer many domains in the software industry. That's the elevator pitch at the least -- so how does one get started in Modern C++ and utilize all these features of the language?
In this talk, I take audience members on a step-by-step journey to understand the fundamental pieces of the C++ ecosystem focusing primarily on new features of the Modern C++ language. In this talk we will focus on new language features and the STL and pointing out key parts (array, span, smart_pointers, ranges, concepts, and thread) and how these features improve upon legacy C++ code. Audience members will leave this talk excited about using a modern version of the language, and what features and libraries can enhance their experience with C++ going forward.
Read More
Read Less
|
11:00 - 11:30 |
30 min Break & Networking |
|
|
11:30 - 12:30 |
Exploring Undefined Behaviour in C++ |
Mahendra Bhagwan Garodi |
Undefined behavior in C++ can make programs act in unexpected ways. In this talk, we'll explain what defined, undefined, implementation-defined, and unspecified behavior mean, with clear examples for each. We'll look at common situations that cause undefined behaviour and see how compilers use this to make programs run faster. We'll also talk about why the C++ standard allows undefined behavior and how this affects performance and complexity. Finally, we'll introduce tools that can help find and fix undefined behaviour, helping you write safer and more reliable code.
Read More
Read Less
|
12:30 - 13:00 |
30 min Break & Networking |
|
|
13:00 - 14:00 |
An (In-)Complete Guide to C++ Object Lifetimes |
Jonathan Müller |
A C++ program manipulate objects, but it is undefined behavior if you attempt to manipulate them while they are not alive. So let's do a deep dive into object lifetime. When are objects created and when are they destroyed? How does temporary lifetime extension come into play and what changed there recently? What happens when you `std::malloc` memory and just pretend objects are there without creating anything? Or worse: You use `mmap()` to read shared memory. How do unions interact with constructors, strict aliasing, or the "common initial sequence"? What when you explicitly call the destructor and later re-use the same storage? What's the deal with `std::launder`, `std::bit_cast`, and `std::start_lifetime_as`? We'll answer all of those questions and much more. We'll do that by looking at the C++ standard, old and new proposals, and compiler optimizations.
Read More
Read Less
|
14:00 - 15:00 |
Lunch & Networking |
|
|
15:00 - 16:00 |
[Keynote] C++ ♥ Python |
Alex Dathskovsky |
As C++ programmers, many of us have embraced Python as our second language due to its versatility and ease of use, particularly for algorithm development (Maybe we should change the false writing of C/C++ to C++/Python because its more accurate :)).
However, one major challenge we encounter is Python's inherent slowness as an interpreted language. In this talk, we propose a paradigm shift by redefining our approach as C++/Python, emphasizing the symbiotic relationship between the two languages. By leveraging various binding tools, we can significantly accelerate Python's performance and unlock its true potential. We will explore many binding tools and understand the advantages and disadvantages of each one. We will explore CPython and understand GIL pitfalls. By the end of this talk, attendees will have a comprehensive understanding of various binding tools available for accelerating Python and their respective advantages and disadvantages. Armed with this knowledge, C++ programmers will be empowered to bridge the gap between the two languages, enhance their algorithm development process, and unlock the full potential of Python.
Read More
Read Less
|
16:00 - 16:30 |
30 min Break & Networking |
|
|
16:30 - 17:30 |
Quiz Competition |
Quiz Competition |
Quiz Competition
|
17:30 - 17:45 |
Conference Closing |
|
|
All day |
Networking on Discord |
|
|
Grab your tickets for a day of learning, exchange and networking!
Join CppIndia Discord server to get latest information, connect with like minded people, exchange the knowledege and get familier with the platform.