Expressive Compile-time ParsersTricks ## About the talk • Expressiveness in C++ • Parsers • Operator overloading • Domain specific languages • Open source compile-time libraries • API • Design • Implementation details • Using functions for specific types. std::️缝系统::️path p = "C:"; return concat(concat(concat(p, "files"), "images"), "cat.png"); std::️️️♀️♀️♀️ ## DSL - Domain Specific Language Language A programming language tailored to solve problems within a specific domain or application context. Examples: • SQL · CSS • Regular Expressions (PCRE) • Make (makefile) ## DSL Example – Boost Spirit0 码力 | 134 页 | 1.73 MB | 1 年前3
Streaming languages and operator semantics - CS 591 K1: Data Stream Processing and Analytics Spring 20202020 2/04: Streaming languages and operator semantics Vasiliki (Vasia) Kalavri vkalavri@bu.edu ## Languages for continuous data processing ## Language Types • Transforming languages define transformations and produce output streams. - Declarative languages specify the expected results of the computation rather than the execution flow. • Imperative languages are used to describe plans of operators the the streams must flow through. • Pattern-based languages specify conditions and actions to be taken when conditions are met. - Conditions are commonly described as patterns that can match input stream events0 码力 | 53 页 | 532.37 KB | 2 年前3
Measuring Woody: The Size of Debian 3.01 billion USD to develop Debian 3.0. In addition, we offer both an analysis of the programming languages used in the distribution (C amounts for about 65%, C++ for about 12%, Shell for about 8% and LISP development mail lists, etc.), several translation and internationalization efforts, development of tools specific to Debian, and in a wide sense, of all the infrastructure that makes the Debian distribution possible physical SLOC of the release, the SLOC for each package, the SLOC for each of several programming languages considered, etc. In the following sections these three steps are described in more detail. ###0 码力 | 15 页 | 111.82 KB | 2 年前3
More Ranges Pleasecontained reusable software • Abstraction layer • Language within a programming language ☐ Domain specific language (DSL) • Building blocks - Simple interface (API) with tricky implementation • Vocabulary • Algorithms are everywhere ☐ Not just in CS textbooks • Can be found in many places ☐ Other languages ☐ Other libraries ☐ Research papers ☐ Your own codebase Stepanov on Science link STL and its iterator-based algorithms o Fundamentals of functional / vectoric languages (APL, BQN, R, Julia, NumPy) Conor Hoekstra ☐ Libraries of similar languages (D, Rust, Java) Barry Revzin. ## • Main Innovation - Composability0 码力 | 27 页 | 1.08 MB | 1 年前3
Concurrency Patterns ISynchronization Patterns Concurrent Architecture ## Dealing with Sharing ■ Copied Value ■ Thread-Specific Storage ■ Future ## Dealing with Mutation ■ Scoped Locking ■ Strategized Locking ■ Thread-Safe Synchronization Patterns Concurrent Architecture ## Dealing with Sharing ◼ Copied Value ■ Thread-Specific Storage ■ Future Active Object ## Dealing with Mutation ■ Scoped Locking ■ Strategized Locking 8c2d920cfe/p8_1.jpg) → Data races or lifetime issues are not possible. ## Thread-Specific Storage Thread-specific storage enables global state within a thread. ■ Typical use-cases: ■ Porting a single-thread0 码力 | 39 页 | 1.14 MB | 1 年前3
Django 1.8.x Documentationsupport multiple-column primary keys? ■ Does Django support NoSQL databases? How do I add database-specific options to my CREATE TABLE statements, such as specifying MyISAM as the table type? ## • FAQ: The trouble? We’d like to help! • Try the FAQ – it’s got answers to many common questions. • Looking for specific information? Try the Index, Module Index or the detailed table of contents. - Search for information Supported databases | Legacy databases | Providing initial data | Optimize database access | PostgreSQL specific features ## The view layer Django has the concept of “views” to encapsulate the logic responsible0 码力 | 2454 页 | 2.85 MB | 2 年前3
Structure and Interpretation of Computer Programsprogramming language enthusiast • I love algorithms and beautiful code • Organizer of Programming Languages Virtual Meetup • I have a YouTube channel ## 入 , and named but important paradigms that greatly simplify concurrent programming with respect to mainstream languages: declarative concurrency (both eager and lazy), functional reactive programming, discrete synchronous0 码力 | 136 页 | 7.35 MB | 1 年前3
The Weblate Manual 4.3.2Each project can contain a number of components and those contain translations into individual languages. The component corresponds to one translatable file (for example GNU gettext or Android string resources) following the link in the e-mail you receive. 3. Optionally adjust your profile to choose which languages you know. ## Dashboard When you sign in, you will see an overview of projects and components, Components of projects you are watching are shown by default, and cross-referenced with your preferred languages. ## Hint You can switch to different views using the navigation tabs.  following the link in the e-mail you receive. 3. Optionally adjust your profile to choose which languages you know. ## Dashboard When you sign in, you will see an overview of projects and components, Components of projects you are watching are shown by default, and cross-referenced with your preferred languages. ## Hint You can switch to different views using the navigation tabs.  following the link in the e-mail you receive. 3. Optionally adjust your profile to choose which languages you know. ## Dashboard When you sign in, you will see an overview of projects and components, Components of projects you are watching are shown by default, and cross-referenced with your preferred languages. ## Hint You can switch to different views using the navigation tabs. 












