This document is a presentation on D Programming by Jonathan Mercier. It includes an introduction to D Programming and covers topics like objects, functions, parallelism, and basics of the language. The presentation is divided into sections on introduction, basics, GTK D, and thanks. It also provides context on why a new language was needed by listing the dates of other major languages like C++, Java, Python, and Ruby.
The document discusses object-oriented programming concepts in C#, including overloading unary and binary operators, identifying relationships between classes like inheritance and composition, and using classes and inheritance. It provides examples and demonstrations of these concepts.
The document discusses object-oriented programming using C# and covers several topics:
1) Handling exceptions by using try, catch, and finally blocks to handle errors.
2) Implementing user-defined exceptions by deriving from the ApplicationException class.
3) Implementing threads to allow concurrent execution, with the main thread created automatically and additional child threads created using the Thread class.
The document discusses object-oriented programming using C#. It covers using static variables and functions, components of the .NET framework including the common language runtime and class library, and using the Visual Studio IDE to create and run projects. Specifically, it will teach how to use static variables and functions, identify .NET framework components, and use the Visual Studio IDE.
The document discusses a common exchange format called DPDx for sharing design pattern detection results between different tools. It proposes metamodels to define design patterns, program element identifiers, and detection results to allow different tools to exchange information in a consistent way. This will enable combining results from multiple tools and improved analysis.
This document discusses object-oriented programming concepts in C#, including delegates, events, and attributes. It explains that delegates allow methods to be passed as arguments and invoked, and that there are single-cast and multicast delegates. Events use the publisher-subscriber model where a publisher raises an event and subscribers handle the event. Attributes provide metadata for classes, methods and other code elements.
This document discusses object-oriented programming using C#. It covers multiple topics related to multithreading like implementing multiple threads, identifying thread priority, using synchronization in threads, and communication between processes. It also provides an example of developing a Hangman game application.
Annotating with Annotations - PHPBenelux June/2012Rafael Dohms
What exactly are annotations? How can they change the way you code and make life simpler? Annotations allow you to implement new functionality into code using "notes" this allows you to easily maintain your own architecture but benefit from external tools. Let's look at how annotations are used today in PHP and how we can develop our own solutions based on the existing libraries.
The document discusses object-oriented programming concepts in C#, including overloading unary and binary operators, identifying relationships between classes like inheritance and composition, and using classes and inheritance. It provides examples and demonstrations of these concepts.
The document discusses object-oriented programming using C# and covers several topics:
1) Handling exceptions by using try, catch, and finally blocks to handle errors.
2) Implementing user-defined exceptions by deriving from the ApplicationException class.
3) Implementing threads to allow concurrent execution, with the main thread created automatically and additional child threads created using the Thread class.
The document discusses object-oriented programming using C#. It covers using static variables and functions, components of the .NET framework including the common language runtime and class library, and using the Visual Studio IDE to create and run projects. Specifically, it will teach how to use static variables and functions, identify .NET framework components, and use the Visual Studio IDE.
The document discusses a common exchange format called DPDx for sharing design pattern detection results between different tools. It proposes metamodels to define design patterns, program element identifiers, and detection results to allow different tools to exchange information in a consistent way. This will enable combining results from multiple tools and improved analysis.
This document discusses object-oriented programming concepts in C#, including delegates, events, and attributes. It explains that delegates allow methods to be passed as arguments and invoked, and that there are single-cast and multicast delegates. Events use the publisher-subscriber model where a publisher raises an event and subscribers handle the event. Attributes provide metadata for classes, methods and other code elements.
This document discusses object-oriented programming using C#. It covers multiple topics related to multithreading like implementing multiple threads, identifying thread priority, using synchronization in threads, and communication between processes. It also provides an example of developing a Hangman game application.
Annotating with Annotations - PHPBenelux June/2012Rafael Dohms
What exactly are annotations? How can they change the way you code and make life simpler? Annotations allow you to implement new functionality into code using "notes" this allows you to easily maintain your own architecture but benefit from external tools. Let's look at how annotations are used today in PHP and how we can develop our own solutions based on the existing libraries.
This document discusses object-oriented programming concepts in C#, including constructors, destructors, polymorphism, function overloading, and operator overloading. Constructors initialize objects, destructors release objects from memory, and polymorphism allows one interface to have multiple implementations. Function overloading uses the same name for functions that differ in parameters, while operator overloading extends operators to user-defined types.
The document discusses creating and using custom attributes in C#. It explains how to define a custom attribute class, apply the AttributeUsage attribute, name and construct the attribute, and apply it to a target element. It also covers retrieving metadata about custom attributes at runtime using reflection and the main uses of reflection like viewing metadata, type discovery, and late binding.
Annotating with Annotations - ForumPHP 2012Rafael Dohms
What exactly are annotations? How can they change the way you code and make life simpler? Annotations allow you to implement new functionality into code using "notes" this allows you to easily maintain your own architecture but benefit from external tools. Let's look at how annotations are used today in PHP and how we can develop our own solutions based on the existing libraries.
Annotating with Annotations - DPC UnConRafael Dohms
What exactly are annotations? How can they change the way you code and make life simpler? Annotations allow you to implement new functionality into code using "notes" this allows you to easily maintain your own architecture but benefit from external tools. Let's look at how annotations are used today in PHP and how we can develop our own solutions based on the existing libraries.
Flevy.com - Business Process Master List (BPML) TemplateDavid Tracy
This is a partial preview of the document found here:
https://flevy.com/browse/business-document/business-process-master-list-80
Description:
This spreadsheet is at template for conducting a very thorough Business Process Master List (BPML) analysis.
The first tab is the template itself.
The second tab is an illustrative example of a completed BPML spreadsheet.
The document describes research into automating the application and detection of design patterns. The researchers created two assistants called PatternsBox and Ptidej. PatternsBox helps implement design patterns and detect complete versions, while Ptidej helps understand software by detecting distorted pattern versions and transforming source code. The assistants are based on formalizing patterns, source code transformation, and constraint solving. Experiments showed the tools can accurately detect patterns in frameworks but are limited to Java and slow for reengineering. Open questions remain around pattern representation and improving detection and application capabilities.
Consistent Modeling Technique for Accurate Transaction Level Modelshuichenphd
This master's thesis presents a consistent modeling technique for creating accurate transaction level models. It describes refining an existing C model of the SPINNI system into a transaction level model by structuring it based on the original VHDL design. Timing information is integrated by adding time-based and event-based delays calibrated to the VHDL model. Functional regression is automated to validate the transaction level models against the C and VHDL versions. Simulation time and CPU time comparisons demonstrate the transaction level models achieve an order of magnitude speedup over VHDL while maintaining timing accuracy.
This chapter introduces Java GUI programming using Swing. It discusses the motivations for using Swing over AWT, outlines the objectives to be covered, and provides examples of creating basic Swing components like buttons, labels, text fields etc. It also explains the Swing and AWT class hierarchies with Container and Helper classes.
Here are the key methods in the Color class:
- Color(int red, int green, int blue) - Creates a color with the specified red, green, and blue values.
- static Color getColor(String colorName) - Returns a predefined color specified by name, such as "red", "blue", etc.
- int getRed() - Returns the red component of this color.
- int getGreen() - Returns the green component of this color.
- int getBlue() - Returns the blue component of this color.
So in summary, the Color class allows you to create colors from RGB values or predefined names, and retrieve the RGB components of existing colors. This enables
This document contains course notes for a Fortran programming course. It introduces basic computer science concepts like what a computer is, hardware and software, and how computer memory works. It then covers computer programs and programming, including an example temperature conversion program. It discusses programming languages, how to write programs, and common errors. It also provides an overview of the evolution of the Fortran programming language and its object oriented features.
Real world DSL - making technical and business people speaking the same languageMario Fusco
This document discusses domain specific languages (DSLs). It defines a DSL as a computer programming language with limited expressiveness focused on a particular domain to improve communication. The document discusses why DSLs are used to improve communication and maintainability. It also covers different types of DSLs, including internal and external DSLs. Examples of DSLs like Hibernate queries, jMock, and lambdaj are provided to illustrate DSL design patterns.
Patchwork3D is a software suite from Lumiscaphe that allows for 3D real-time realistic rendering of digital mockups. It includes tools for unfolding fabrics onto complex shapes, animating models, and ray tracing for realistic lighting and reflections. The software also includes configurators for customizing products and presenting configurations to customers. Additional complementary products provide standalone interactive presentations and virtual showroom capabilities.
Incremental pattern matching in the VIATRA2 model transformation frameworkIstvan Rath
This document discusses incremental pattern matching in the VIATRA2 model transformation framework. It introduces incremental pattern matching using the RETE algorithm as implemented in VIATRA2. The RETE algorithm caches pattern matches and incrementally updates them as the model changes. This allows pattern matching to be performed incrementally for efficient model transformations on evolving models. The document outlines how RETE networks are constructed from patterns and how they are updated based on model changes notified through the VIATRA framework. Initial performance analysis is discussed to compare incremental versus local search approaches.
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Shinpei Hayashi
This document presents an approach for generating assertion code from the Object Constraint Language (OCL) using model transformations. The approach constructs a hierarchy of programming languages based on their structural similarities. This allows rules for translating OCL to be reused across multiple implementation languages, saving approximately 50% of the effort compared to creating individual translators. An evaluation implemented the approach in Maude and demonstrated its ability to generate code for Java, Python, Haskell and O'Haskell from a single OCL specification.
The document discusses different types of statements in C# including selection statements like if and switch that allow conditional execution, iteration statements like while and for that allow repetitive execution, and jump statements like break and continue that change the flow of control. It provides examples of how to use if, else if, switch, and break statements to implement conditional logic and ensure no fall through between switch cases. The document also covers exception handling statements for raising and catching exceptions.
This document is a thesis on self-reproducing computer programs. It begins by motivating the study of self-reproducing programs and providing a definition. It then proves the existence of self-reproducing programs by defining a programming language and showing that self-reproducing programs can exist within it. The thesis provides several examples of self-reproducing programs implemented in languages like Simula, Pascal, and assembly language. It explores variants of self-reproducing programs, additional properties, and models of competing self-reproducing programs. The thesis also discusses whether self-reproducing programs can be considered a form of artificial life.
Arrabales, R. Ledezma, A. and Sanchis, A. "ConsScale: A Cognitive Scale Inspired on Consciousness". 4th International Conference on Cognitive Systems (CogSys 2010). Zürich. Switzerland. January 2010.
This document discusses intentional software and its goal of separating domain knowledge (A) from implementation (B) to reduce complexity. It provides context on the history of software development from the 1950s to present. Key figures discussed include John von Neumann, John Backus, Grace Hopper, John McCarthy, and Peter Naur who developed early domain-specific languages and programming concepts. The founder of Intentional Software, Charles Simonyi, is also introduced for his work developing early graphical editors and research on intentional programming.
This document provides a summary of key C# programming concepts in a concise reference card format. It includes definitions and examples of string literals, delegates, events, nullable value types, and generics. The document is intended as a handy reference for C# developers to have key syntax and concepts at their fingertips. It covers topics from basic string escaping to more advanced features introduced in recent versions of C#.
The document describes CONFLuEnCE, a continuous workflow execution engine. It was developed to enable applications involving continuous data streams. CONFLuEnCE extends the Kepler workflow system with a new continuous workflow director, window operators, and push communication capabilities. It implements the continuous workflow model, which includes waves of events, window semantics, and continuously running activities. Two example applications developed with CONFLuEnCE are described: supply chain management and Astroshelf, a collaboration platform for astrophysicists.
This document discusses object-oriented programming concepts in C#, including constructors, destructors, polymorphism, function overloading, and operator overloading. Constructors initialize objects, destructors release objects from memory, and polymorphism allows one interface to have multiple implementations. Function overloading uses the same name for functions that differ in parameters, while operator overloading extends operators to user-defined types.
The document discusses creating and using custom attributes in C#. It explains how to define a custom attribute class, apply the AttributeUsage attribute, name and construct the attribute, and apply it to a target element. It also covers retrieving metadata about custom attributes at runtime using reflection and the main uses of reflection like viewing metadata, type discovery, and late binding.
Annotating with Annotations - ForumPHP 2012Rafael Dohms
What exactly are annotations? How can they change the way you code and make life simpler? Annotations allow you to implement new functionality into code using "notes" this allows you to easily maintain your own architecture but benefit from external tools. Let's look at how annotations are used today in PHP and how we can develop our own solutions based on the existing libraries.
Annotating with Annotations - DPC UnConRafael Dohms
What exactly are annotations? How can they change the way you code and make life simpler? Annotations allow you to implement new functionality into code using "notes" this allows you to easily maintain your own architecture but benefit from external tools. Let's look at how annotations are used today in PHP and how we can develop our own solutions based on the existing libraries.
Flevy.com - Business Process Master List (BPML) TemplateDavid Tracy
This is a partial preview of the document found here:
https://flevy.com/browse/business-document/business-process-master-list-80
Description:
This spreadsheet is at template for conducting a very thorough Business Process Master List (BPML) analysis.
The first tab is the template itself.
The second tab is an illustrative example of a completed BPML spreadsheet.
The document describes research into automating the application and detection of design patterns. The researchers created two assistants called PatternsBox and Ptidej. PatternsBox helps implement design patterns and detect complete versions, while Ptidej helps understand software by detecting distorted pattern versions and transforming source code. The assistants are based on formalizing patterns, source code transformation, and constraint solving. Experiments showed the tools can accurately detect patterns in frameworks but are limited to Java and slow for reengineering. Open questions remain around pattern representation and improving detection and application capabilities.
Consistent Modeling Technique for Accurate Transaction Level Modelshuichenphd
This master's thesis presents a consistent modeling technique for creating accurate transaction level models. It describes refining an existing C model of the SPINNI system into a transaction level model by structuring it based on the original VHDL design. Timing information is integrated by adding time-based and event-based delays calibrated to the VHDL model. Functional regression is automated to validate the transaction level models against the C and VHDL versions. Simulation time and CPU time comparisons demonstrate the transaction level models achieve an order of magnitude speedup over VHDL while maintaining timing accuracy.
This chapter introduces Java GUI programming using Swing. It discusses the motivations for using Swing over AWT, outlines the objectives to be covered, and provides examples of creating basic Swing components like buttons, labels, text fields etc. It also explains the Swing and AWT class hierarchies with Container and Helper classes.
Here are the key methods in the Color class:
- Color(int red, int green, int blue) - Creates a color with the specified red, green, and blue values.
- static Color getColor(String colorName) - Returns a predefined color specified by name, such as "red", "blue", etc.
- int getRed() - Returns the red component of this color.
- int getGreen() - Returns the green component of this color.
- int getBlue() - Returns the blue component of this color.
So in summary, the Color class allows you to create colors from RGB values or predefined names, and retrieve the RGB components of existing colors. This enables
This document contains course notes for a Fortran programming course. It introduces basic computer science concepts like what a computer is, hardware and software, and how computer memory works. It then covers computer programs and programming, including an example temperature conversion program. It discusses programming languages, how to write programs, and common errors. It also provides an overview of the evolution of the Fortran programming language and its object oriented features.
Real world DSL - making technical and business people speaking the same languageMario Fusco
This document discusses domain specific languages (DSLs). It defines a DSL as a computer programming language with limited expressiveness focused on a particular domain to improve communication. The document discusses why DSLs are used to improve communication and maintainability. It also covers different types of DSLs, including internal and external DSLs. Examples of DSLs like Hibernate queries, jMock, and lambdaj are provided to illustrate DSL design patterns.
Patchwork3D is a software suite from Lumiscaphe that allows for 3D real-time realistic rendering of digital mockups. It includes tools for unfolding fabrics onto complex shapes, animating models, and ray tracing for realistic lighting and reflections. The software also includes configurators for customizing products and presenting configurations to customers. Additional complementary products provide standalone interactive presentations and virtual showroom capabilities.
Incremental pattern matching in the VIATRA2 model transformation frameworkIstvan Rath
This document discusses incremental pattern matching in the VIATRA2 model transformation framework. It introduces incremental pattern matching using the RETE algorithm as implemented in VIATRA2. The RETE algorithm caches pattern matches and incrementally updates them as the model changes. This allows pattern matching to be performed incrementally for efficient model transformations on evolving models. The document outlines how RETE networks are constructed from patterns and how they are updated based on model changes notified through the VIATRA framework. Initial performance analysis is discussed to compare incremental versus local search approaches.
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Shinpei Hayashi
This document presents an approach for generating assertion code from the Object Constraint Language (OCL) using model transformations. The approach constructs a hierarchy of programming languages based on their structural similarities. This allows rules for translating OCL to be reused across multiple implementation languages, saving approximately 50% of the effort compared to creating individual translators. An evaluation implemented the approach in Maude and demonstrated its ability to generate code for Java, Python, Haskell and O'Haskell from a single OCL specification.
The document discusses different types of statements in C# including selection statements like if and switch that allow conditional execution, iteration statements like while and for that allow repetitive execution, and jump statements like break and continue that change the flow of control. It provides examples of how to use if, else if, switch, and break statements to implement conditional logic and ensure no fall through between switch cases. The document also covers exception handling statements for raising and catching exceptions.
This document is a thesis on self-reproducing computer programs. It begins by motivating the study of self-reproducing programs and providing a definition. It then proves the existence of self-reproducing programs by defining a programming language and showing that self-reproducing programs can exist within it. The thesis provides several examples of self-reproducing programs implemented in languages like Simula, Pascal, and assembly language. It explores variants of self-reproducing programs, additional properties, and models of competing self-reproducing programs. The thesis also discusses whether self-reproducing programs can be considered a form of artificial life.
Arrabales, R. Ledezma, A. and Sanchis, A. "ConsScale: A Cognitive Scale Inspired on Consciousness". 4th International Conference on Cognitive Systems (CogSys 2010). Zürich. Switzerland. January 2010.
This document discusses intentional software and its goal of separating domain knowledge (A) from implementation (B) to reduce complexity. It provides context on the history of software development from the 1950s to present. Key figures discussed include John von Neumann, John Backus, Grace Hopper, John McCarthy, and Peter Naur who developed early domain-specific languages and programming concepts. The founder of Intentional Software, Charles Simonyi, is also introduced for his work developing early graphical editors and research on intentional programming.
This document provides a summary of key C# programming concepts in a concise reference card format. It includes definitions and examples of string literals, delegates, events, nullable value types, and generics. The document is intended as a handy reference for C# developers to have key syntax and concepts at their fingertips. It covers topics from basic string escaping to more advanced features introduced in recent versions of C#.
The document describes CONFLuEnCE, a continuous workflow execution engine. It was developed to enable applications involving continuous data streams. CONFLuEnCE extends the Kepler workflow system with a new continuous workflow director, window operators, and push communication capabilities. It implements the continuous workflow model, which includes waves of events, window semantics, and continuously running activities. Two example applications developed with CONFLuEnCE are described: supply chain management and Astroshelf, a collaboration platform for astrophysicists.
This document discusses P-code compilers and the P-code machine. It explains that P-code compilers translate source code into an intermediate P-code format that can be executed by a P-code interpreter on any machine. The P-code machine is a virtual machine that executes P-code instructions. It has a stack-based architecture and uses registers to manage memory areas like the stack, heap, and constants. Stack frames contain information like static and dynamic links to support calling procedures.
This document summarizes a thesis about automatically deriving semantic properties from source code. It introduces the Compose .NET project, which uses aspect-oriented programming to add features to .NET languages. The thesis aims to enhance Compose by extracting more semantic information from code. It presents the Semantic Analyzer, which parses code into a metamodel representing semantic actions. This metamodel can then be queried to provide semantic properties for tasks like pointcut matching and program analysis.
L Fu - Dao: a novel programming language for bioinformaticsJan Aerts
The document introduces Dao, a new programming language for bioinformatics. It discusses Dao's key features like optional typing, native support for concurrent programming, an LLVM-based JIT compiler, simple C interfaces, and the ClangDao tool for wrapping C/C++ libraries. An example demonstrates using thread tasks and futures for concurrent programming. The document outlines future plans to develop BioDao, an open source project providing bioinformatics modules to the Dao language.
Android. behind the scenes_programatica 2012Agora Group
The document provides an overview of the Android initialization process and application launch sequence. It discusses how QEMU can be used to emulate Android applications on x86 platforms by intercepting forks or running a second emulated zygote process. It also describes the init system and init.rc file that starts core system services like ril-daemon, zygote, and media server. Finally, it outlines the steps involved in an application launch, from the activity manager sending an intent to the launched activity's onCreate() method being called.
This document describes Robert Kovacsics' diploma project to create a compiler from the Scheme programming language to Java bytecode. The project implements a front-end to parse Scheme code, a middle phase to transform the code, and a back-end to generate Java bytecode. The compiler supports basic language features like macros, Java interoperability, and tail-call optimization. The document outlines the requirements for the compiler and its development. It then describes the implementation process and modular structure. Finally, it evaluates the compiler's functionality and performance.
London F-Sharp User Group : Don Syme on F# - 09/09/2010Skills Matter
This document provides an overview of the F# programming language and discusses some of its key features and benefits. It includes examples of using F# for financial modeling, event processing, and 3D simulation. F# allows for both functional and object-oriented programming, and supports features like units of measure, asynchronous and parallel programming. Case studies demonstrate how F# was used successfully for power grid scheduling and online advertising. The document concludes with a demonstration of using F# for a 3D simulation.
This document provides an introduction and overview of the C# programming language compared to Java and Objective-C. It discusses how C# is a simple, modern, object-oriented language that is immediately familiar to C/C++ and Java programmers. The document provides a high-level overview of key C# concepts like classes, structs, delegates, events and garbage collection. It also gives the perspectives of Java and Objective-C programmers in understanding C#. The document aims to help readers gain an understanding of C# and how it compares to other languages.
This document provides an introduction and overview of the C# programming language compared to Java and Objective-C. It discusses key aspects of C# including its simplicity, object-oriented nature, and use of the .NET runtime. It provides sample "Hello World" programs in each language and compares their syntax. It also discusses basic C# programming concepts like defining classes and namespaces. The document aims to give the reader a high-level understanding of C# and how it compares to other modern programming languages.
Java provides concise summaries in 3 sentences or less that provide the high level and essential information from the document. The document discusses various Java technicalities from a C/C++ programmer's perspective. It covers Java types, classes and objects, exceptions, core libraries like String and containers, and I/O. It compares Java concepts to C/C++ and discusses how to think about OO design in Java coming from other languages. Key topics are summarized but details are omitted for brevity.
The document is a tutorial on function pointers in C and C++. It introduces function pointers and provides examples of defining, assigning, comparing, and calling functions using pointers. It also covers callbacks and functors, which allow functions to be passed as arguments or returned.
This document provides an introduction to Dynamo visual programming software. It describes Dynamo's interface and basic concepts like nodes, wires, ports, and program flow. It then provides tutorials for several examples, including: creating a single reference point; placing reference points using numbers, sequences, and sliders; placing family instances along lines and grids; getting and setting family parameters; and using Python scripts. The document explains how Dynamo can be used to automate tasks in Revit and Vasari like geometry creation, family parameter control, and information sharing between design platforms.
Traditional profilers provide CPU time profiling information but do not provide insight into which specific domain objects are responsible for performance issues. Domain-specific profilers address this by instrumenting the domain of interest to capture runtime information about specific domain objects and their behavior, then presenting the results in a way that relates performance to the domain. This allows pinpointing which objects are actually causing performance problems rather than just methods or code sections.
This document provides an overview of using Dynamo to optimize structural analysis workflows. It discusses Dynamo software and the difference between Dynamo and Dynamo Studio. It then provides examples of using Dynamo nodes to create structural models, assign attributes, run analyses, and interpret results. The examples include 2D and 3D frame models as well as a concrete reservoir model. It also discusses extending the structural analysis capabilities through a Python script example and linking structural analysis with Revit models. The goal is to help users learn how to optimize existing structural analysis using Dynamo.
Neal Ford Emergent Design And Evolutionary ArchitectureThoughtworks
ThoughtWorks Luminary and Conference Presenter Extraordinaire Neal Ford will be presenting:
Emergent Design & Evolutionary Architecture
Most of the software world has realised that Big Design Up Front (BDUF) doesn’t work well in software. But lots of developers struggle with this notion when it applies to architecture and design, surely you can’t start coding, right? You need some level of understanding before you can start work.
This seminar will explore the current thinking about Emergent Design and Evolutionary Architecture, including:
• Proactive approaches with test driven development
• Reactive approaches including both refactoring and composed methods
• Strategies and techniques for allowing design to emerge from projects as they proceed, keeping your code in sync with the problem domain
• Real world examples of these techniques in action
Neal Ford, Software Architect and Meme Wrangler, ThoughtWorks
Neal is an acclaimed international speaker and expert on designing and building of large-scale enterprise applications. Neal has spoken at over 100 conferences worldwide, delivering more than 600 talks. Neal is also the designer and developer of applications, instructional materials, magazine articles, courseware, video/DVD presentations and author and/or editor of 6 books spanning a variety of technologies, including the most recent The Productive Programmer.
Source code recovery is one of the most tedious, and interesting, tasks in reverse engineering. During the course of this talk, the author will talk about a tool being developed (on and off) since last year that aims to generate auto-compilable source code from binaries. The tool is currently working though it needs a lot more work.
2011.02.18 marco parenzan - case study. conversione di una applicazione for...Marco Parenzan
The document discusses converting a Fortran molecular dynamics simulation code to C#. The original Fortran code had problems like high coupling, no separation of concerns, and low reusability. Modern coding practices like object orientation, separating roles into modules, and creating reusable libraries are recommended. The converted C# code is well-structured but may not be optimal for GPU performance. GPU programming requires specialized preparation code. Overall structures that improve maintainability, like separating concerns, are important to allow code to be adapted to new technologies over time.
Analyzing Dart Language with Pharo: Report and early resultsESUG
This document summarizes an analysis of the Dart programming language using tools in the Pharo environment. It describes generating a parser for Dart using SmaCC, which produces an AST. It also details defining a Famix meta-model for Dart and the Chartreuse-D importer that creates a FamixDart model from the AST. Future work is outlined, including improving SmaCCDart, continuing to develop the FamixDart meta-model, and handling dynamic types when importing associations. The goal is to analyze Dart and explore modeling Flutter applications.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Trusted Execution Environment for Decentralized Process MiningLucaBarbaro3
Presentation of the paper "Trusted Execution Environment for Decentralized Process Mining" given during the CAiSE 2024 Conference in Cyprus on June 7, 2024.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfChart Kalyan
A Mix Chart displays historical data of numbers in a graphical or tabular form. The Kalyan Rajdhani Mix Chart specifically shows the results of a sequence of numbers over different periods.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on automated letter generation for Bonterra Impact Management using Google Workspace or Microsoft 365.
Interested in deploying letter generation automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Fudcon D programming
1. D Programming
.
Jonathan MERCIER
Introduction
D Programming
Object
. In nutshell
Functional
Meta-programming
Parallelism
Ressource Management
Contract Jonathan MERCIER
System and Safe Code
Reference and pointer
Generics
Inference
Loops
Functions December 9, 2012
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
. 1/122
.
Let start it!
D Programming .
. . .
Forward
.
GTK D
2. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. .
2/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
3. D Programming
Jonathan MERCIER
Before starting
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract
System and Safe Code
Reference and pointer
Generics
Inference
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .
3/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
4. D Programming
Jonathan MERCIER
Why a new language?
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management .
Contract Few significant dates
System and Safe Code .
Reference and pointer C++ 1983
Generics
Inference
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program .
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .
4/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
5. D Programming
Jonathan MERCIER
Why a new language?
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management .
Contract Few significant dates
System and Safe Code .
Reference and pointer C++ 1983
Generics
Inference
Loops
Java 1990
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program .
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .
4/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
6. D Programming
Jonathan MERCIER
Why a new language?
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management .
Contract Few significant dates
System and Safe Code .
Reference and pointer C++ 1983
Generics
Inference
Loops
Java 1990
Functions
Debugs
Python 1995
Versions
Requirement
Editors
Basics
My first D program .
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .
4/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
7. D Programming
Jonathan MERCIER
Why a new language?
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management .
Contract Few significant dates
System and Safe Code .
Reference and pointer C++ 1983
Generics
Inference
Loops
Java 1990
Functions
Debugs
Python 1995
Versions
Requirement Ruby 1995
Editors
Basics
My first D program .
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .
4/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
8. D Programming
Jonathan MERCIER
Why a new language?
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management .
Contract Few significant dates
System and Safe Code .
Reference and pointer C++ 1983
Generics
Inference
Loops
Java 1990
Functions
Debugs
Python 1995
Versions
Requirement Ruby 1995
And now?
Editors
Basics
My first D program .
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .
4/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
9. D Programming
Jonathan MERCIER
What is D programming?
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract
System and Safe Code
D is a modern language programming inspired by:
Reference and pointer
Generics
C++
Inference
Loops Java
Functions
Debugs Haskell
Versions
Requirement Python
Editors
Basics Ruby
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .
5/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
10. D Programming
Jonathan MERCIER
Why a new language?
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract
System and Safe Code .
Reference and pointer D Combines
Generics .
Inference Modeling Power
Loops
Functions
Debugs
Versions
.
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
.
. .
6/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
11. D Programming
Jonathan MERCIER
Why a new language?
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract
System and Safe Code .
Reference and pointer D Combines
Generics .
Inference Modeling Power
Loops
Functions
Debugs
Modern Convenience
Versions
.
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
.
. .
6/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
12. D Programming
Jonathan MERCIER
Why a new language?
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract
System and Safe Code .
Reference and pointer D Combines
Generics .
Inference Modeling Power
Loops
Functions
Debugs
Modern Convenience
Versions
Native Efficiency
.
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
.
. .
6/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
13. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. . .
7/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
14. D Programming
Jonathan MERCIER
Object
Introduction
Object
Functional
Meta-programming .
Parallelism
Ressource Management
Interface
Contract 1 interface foo { …}
System and Safe Code .
Reference and pointer
Generics
Inference
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters .
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .
8/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
15. D Programming
Jonathan MERCIER
Object
Introduction
Object
Functional
Meta-programming .
Parallelism
Ressource Management
Interface
Contract 1 interface foo { …}
System and Safe Code .
Reference and pointer
Generics class
Inference
Loops
1 class bar { …}
Functions .
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters .
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .
8/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
16. D Programming
Jonathan MERCIER
Object
Introduction
Object
Functional
Meta-programming .
Parallelism
Ressource Management
Interface
Contract 1 interface foo { …}
System and Safe Code .
Reference and pointer
Generics class
Inference
Loops
1 class bar { …}
Functions .
Debugs
Versions inheritance
Requirement
1 class bar: foo { …}
Editors
.
Basics
My first D program
Types
Arrays
String and characters .
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .
8/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
17. D Programming
Jonathan MERCIER
Object
Introduction
Object
Functional
Meta-programming .
Parallelism
Ressource Management
Interface
Contract 1 interface foo { …}
System and Safe Code .
Reference and pointer
Generics class
Inference
Loops
1 class bar { …}
Functions .
Debugs
Versions inheritance
Requirement
1 class bar: foo { …}
Editors
.
Basics
My first D program multi class inheritance not allowed, instead used
Types
Arrays interface.
String and characters .
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .
8/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
18. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. . .
9/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
19. D Programming
Jonathan MERCIER
Functional
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
.
Contract Data immutability
System and Safe Code
Reference and pointer
1 immutable int[] a = [ 4, 6, 1, 2];
Generics .
Inference
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
.
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .
10/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
20. D Programming
Jonathan MERCIER
Functional
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
.
Contract Data immutability
System and Safe Code
Reference and pointer
1 immutable int[] a = [ 4, 6, 1, 2];
Generics .
Inference
Loops Pure functions
Functions
1 pure int square(int x) { return x * x; }
Debugs
Versions
.
Requirement
Editors
Basics
My first D program
Types
.
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .
10/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
21. D Programming
Jonathan MERCIER
Functional
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
.
Contract Data immutability
System and Safe Code
Reference and pointer
1 immutable int[] a = [ 4, 6, 1, 2];
Generics .
Inference
Loops Pure functions
Functions
1 pure int square(int x) { return x * x; }
Debugs
Versions
.
Requirement
Editors Lambda functions
1 a.sort!( (x,y) => x < y ); // [ 1, 2, 4, 6 ]
Basics
.
My first D program
Types
.
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .
10/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
22. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. . . .
11/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
23. D Programming
Jonathan MERCIER
Meta-programming
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract .
System and Safe Code Combination of
Reference and pointer .
Generics templates
Inference
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
.
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . .
12/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
24. D Programming
Jonathan MERCIER
Meta-programming
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract .
System and Safe Code Combination of
Reference and pointer .
Generics templates
Inference
Loops
Functions
compile time function execution
Debugs
Versions
Requirement
Editors
Basics
.
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . .
12/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
25. D Programming
Jonathan MERCIER
Meta-programming
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract .
System and Safe Code Combination of
Reference and pointer .
Generics templates
Inference
Loops
Functions
compile time function execution
Debugs
Versions
tuples
Requirement
Editors
Basics
.
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . .
12/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
26. D Programming
Jonathan MERCIER
Meta-programming
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract .
System and Safe Code Combination of
Reference and pointer .
Generics templates
Inference
Loops
Functions
compile time function execution
Debugs
Versions
tuples
Requirement
Editors string mixins
Basics
.
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . .
12/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
27. D Programming
Jonathan MERCIER
Meta-programming
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract
System and Safe Code
Reference and pointer Code 1: Example
Generics
1 template Factorial(ulong n){
Inference 2 static if(n < 2)
Loops 3 const Factorial = 1;
Functions 4 else
Debugs 5 const Factorial = n * Factorial!(n − 1);
Versions 6 }
Requirement 7 const ulong var = Factorial!( 8 ); // compute at compile−time
Editors .
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . .
13/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
28. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. . . .
14/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
29. D Programming
Jonathan MERCIER
Parallelism
Introduction
Object
Functional
Meta-programming .
Parallelism
Ressource Management
module to use
Contract 1 import std.parallelism;
System and Safe Code .
Reference and pointer
Generics
Inference
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters .
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .. .
15/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
30. D Programming
Jonathan MERCIER
Parallelism
Introduction
Object
Functional
Meta-programming .
Parallelism
Ressource Management
module to use
Contract 1 import std.parallelism;
System and Safe Code .
Reference and pointer
Generics parallel loop
Inference
Loops 1 foreach( i; parallel( list ) ){ …}
Functions .
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters .
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .. .
15/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
31. D Programming
Jonathan MERCIER
Parallelism
Introduction
Object
Functional
Meta-programming .
Parallelism
Ressource Management
module to use
Contract 1 import std.parallelism;
System and Safe Code .
Reference and pointer
Generics parallel loop
Inference
Loops 1 foreach( i; parallel( list ) ){ …}
Functions .
Debugs
Versions
Requirement
Pool thread
Editors
1 void myfunction( int param1, int param 2 ){ …}
2 auto myTask = task!myfunction( param1, param2 );
Basics 3 taskPool.put( myTask );
My first D program 4 doSomething(); // another work in parallel
Types 5 taskPool.finish( true ); // wait alls jobs ending
Arrays .
String and characters .
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. .. .
15/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
32. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. .
. . .
16/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
33. D Programming
Jonathan MERCIER
Ressource Management
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract
System and Safe Code
Reference and pointer Code 2: Example
Generics
Inference
1 File f = File( ”myfile.txt”, ”r”);
Loops
2 scope(exit) f.close();
3 lockFile( f );
Functions
4 doFoo( f );
Debugs
5 scope(success) doBar( f );
Versions
6 scope(failure) unlock( f );
Requirement
Editors
.
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . . .
17/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
34. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. . . . .
18/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
35. D Programming
Jonathan MERCIER
Contract
Introduction
Object .
Functional check a statement
Meta-programming
1 assert( var != null );
Parallelism
Ressource Management
.
Contract
System and Safe Code
Reference and pointer
Generics
Inference
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
.
Template
Miscellanous
.
.
. . . . .
19/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
36. D Programming
Jonathan MERCIER
Contract
Introduction
Object .
Functional check a statement
Meta-programming
1 assert( var != null );
Parallelism
Ressource Management
.
Contract
System and Safe Code check before entering into a function
Reference and pointer
1 double foo ( int a )
Generics
2 in{ assert( a > 0 ); }
Inference
3 body { return a − 2; }
Loops
Functions
.
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
.
Template
Miscellanous
.
.
. . . . .
19/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
37. D Programming
Jonathan MERCIER
Contract
Introduction
Object .
Functional check a statement
Meta-programming
1 assert( var != null );
Parallelism
Ressource Management
.
Contract
System and Safe Code check before entering into a function
Reference and pointer
1 double foo ( int a )
Generics
2 in{ assert( a > 0 ); }
Inference
3 body { return a − 2; }
Loops
Functions
.
Debugs
Versions check at function exit
Requirement 1 int foo ( int a )
Editors 2 out{ assert( a > 0 ); }
3 body { return a − 2; }
Basics
My first D program
.
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
.
Template
Miscellanous
.
.
. . . . .
19/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
38. D Programming
Jonathan MERCIER
Contract
Introduction
Object .
Functional check a statement
Meta-programming
1 assert( var != null );
Parallelism
Ressource Management
.
Contract
System and Safe Code check before entering into a function
Reference and pointer
1 double foo ( int a )
Generics
2 in{ assert( a > 0 ); }
Inference
3 body { return a − 2; }
Loops
Functions
.
Debugs
Versions check at function exit
Requirement 1 int foo ( int a )
Editors 2 out{ assert( a > 0 ); }
3 body { return a − 2; }
Basics
My first D program
.
-release flag will not compute contract
Types
Arrays
String and characters
Const and Immutable $ ldc2 -release foo.d
Input/Output
.
Algorithm
Structure and Class
.
Template
Miscellanous
.
.
. . . . .
19/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
39. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. . . . .
20/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
40. D Programming
Jonathan MERCIER
System and Safe Code
Introduction
Object
Functional .
Meta-programming
System and Safe Code
Parallelism
.
Ressource Management
Contract
Safe functions are functions that are statically checked
System and Safe Code
Reference and pointer
to have no possibility of undefined behavior.
Generics
Inference
Loops
Functions
Debugs Undefined behavior is often used as a vector for
Versions
Requirement malicious attacks.
Editors
Basics
My first D program
Types
Arrays Functions are marked with attributes: @safe,
String and characters
Const and Immutable
@system, @trusted
.
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . . . .
21/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
41. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. . . . . .
22/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
42. D Programming
Jonathan MERCIER
Reference and pointer
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
.
Contract Pointers exist only to create C interface code
System and Safe Code
1 int* a = cFunction( param );
Reference and pointer
Generics
.
Inference
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
.
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . . . .
23/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
43. D Programming
Jonathan MERCIER
Reference and pointer
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
.
Contract Pointers exist only to create C interface code
System and Safe Code
1 int* a = cFunction( param );
Reference and pointer
Generics
.
Inference
Loops ref into function
Functions
1 void foo( ref int[] param ) { …}
Debugs
Versions
.
Requirement
Editors
Basics
My first D program
Types
.
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . . . .
23/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
44. D Programming
Jonathan MERCIER
Reference and pointer
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
.
Contract Pointers exist only to create C interface code
System and Safe Code
1 int* a = cFunction( param );
Reference and pointer
Generics
.
Inference
Loops ref into function
Functions
1 void foo( ref int[] param ) { …}
Debugs
Versions
.
Requirement
Editors
ref into a loop
Basics 1 foreach( ref item ; list ){ …}
.
My first D program
Types
.
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . . . .
23/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
45. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. . . . . .
24/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
46. D Programming
Jonathan MERCIER .
Generic
Introduction
.
Object
class
Functional 1 class Foo( T ){ …}
Meta-programming 2 Foo!int instance = new Foo!(int)( param );
Parallelism .
Ressource Management
Contract
System and Safe Code
Reference and pointer
Generics
Inference
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
.
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .. . .
25/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
47. D Programming
Jonathan MERCIER .
Generic
Introduction
.
Object
class
Functional 1 class Foo( T ){ …}
Meta-programming 2 Foo!int instance = new Foo!(int)( param );
Parallelism .
Ressource Management
Contract
System and Safe Code
structure
Reference and pointer 1 struct Foo( T ){ …}
Generics
2 Foo!int instance = Foo!int( param );
Inference .
Loops
Functions
Debugs
Versions
Requirement
Editors
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
.
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .. . .
25/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
48. D Programming
Jonathan MERCIER .
Generic
Introduction
.
Object
class
Functional 1 class Foo( T ){ …}
Meta-programming 2 Foo!int instance = new Foo!(int)( param );
Parallelism .
Ressource Management
Contract
System and Safe Code
structure
Reference and pointer 1 struct Foo( T ){ …}
Generics
2 Foo!int instance = Foo!int( param );
Inference .
Loops
Functions function
Debugs
1 T foo( T )(T param){ …}
Versions
2 int var = foo!int( param );
Requirement
Editors
.
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
.
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .. . .
25/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
49. D Programming
Jonathan MERCIER .
Generic
Introduction
.
Object
class
Functional 1 class Foo( T ){ …}
Meta-programming 2 Foo!int instance = new Foo!(int)( param );
Parallelism .
Ressource Management
Contract
System and Safe Code
structure
Reference and pointer 1 struct Foo( T ){ …}
Generics
2 Foo!int instance = Foo!int( param );
Inference .
Loops
Functions function
Debugs
1 T foo( T )(T param){ …}
Versions
2 int var = foo!int( param );
Requirement
Editors
.
Basics macro
My first D program
1 template TFoo( T )( T param ){ immutable T f = param + 3;
Types
}
Arrays
2 int a = TFoo!int( 4 ) ; // return 7 at compile time
String and characters
.
Const and Immutable
Input/Output
.
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . .. . .
25/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
50. D Programming
Jonathan MERCIER
Plan
..
1 Introduction
Introduction Object
Object Functional
Functional Meta-programming
Meta-programming
Parallelism
Parallelism
Ressource Management
Ressource Management
Contract
System and Safe Code
Contract
Reference and pointer
System and Safe Code
Generics
Reference and pointer
Inference
Generics
Loops
Inference
Functions
Loops Debugs
Functions Versions
Debugs Requirement
Versions Editors
Requirement .
2 Basics
Editors My first D program
Types
Basics Arrays
My first D program String and characters
Types Const and Immutable
Arrays Input/Output
String and characters Algorithm
Const and Immutable Structure and Class
Input/Output Template
Algorithm Miscellanous
Structure and Class
Let start it!
.
3 GTK D
Template
.
4 Thanks To
Miscellanous
.
.
. . .. . . .
26/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D
51. D Programming
Jonathan MERCIER
Inference
Introduction
Object
Functional
Meta-programming
Parallelism
Ressource Management
Contract .
System and Safe Code
Reference and pointer
auto for variable
Generics 1 size_t[] list = [ 0, 1, 2, 3, 4];
Inference 2 auto item = list[1]; // item type is size_t
Loops .
Functions
Debugs
Versions
Requirement
Editors
.
Basics
My first D program
Types
Arrays
String and characters
Const and Immutable
Input/Output
Algorithm
Structure and Class
Template
Miscellanous
.
.
. . . . . . .
27/122
.
Let start it!
D Programming . . . .
Back
.
.
. . .
Forward
.
GTK D