Computer
Programming
7215 sites listed · page 138 of 145
JBurg: a Bottom-Up Rewrite Machine Generator for Java
JBurg: a Bottom-Up Rewrite Machine Generator for Java- Java-based BURG (code emitter generator) which can also be used as a general purpose dynamic programming engine. [Open sourc…
Fnc-2 Attribute Grammar System
Fnc-2 Attribute Grammar System- An attribute grammar system based on strongly non-circular AGs that perform space optimizations.
Micro Attribute Grammar System
Micro Attribute Grammar System- The UU_AG system is a very simple program that reads a set of files containing an attribute grammar, in which semantic functions are described thro…
lrc attribute grammar system
lrc attribute grammar system- The system generates efficient incremental attribute evaluators and was written by one of the attribute-grammar formalizers.
Inter-Platform Mobility Project
Inter-Platform Mobility Project- Homepage of the IPMS project. Provides an extension for developing mobile agents on the JADE platform.
SOMA: Secure and Open Mobile Agent
SOMA: Secure and Open Mobile Agent- A mobile agent system. Technical description and code download.
Mobile Agents - Process migration technology and its implications
Mobile Agents - Process migration technology and its implications- Mobile agents are agents that can physically travel across a network, and perform tasks on machines that provide…
Under the Hood: The architecture of aglets
Under the Hood: The architecture of aglets- Find out about the inner workings of aglets, IBM Japan's Java-based autonomous software agent technology
Kaariboga Mobile Agents
Kaariboga Mobile Agents- Free framework for mobile agents implemented in Java.
Aglets
Aglets- The Aglets Software Development Kit (ASDK) is a framework and environment for researching and developing mobile agents.
Microsoft Agent Scripting Software (MASS)
Microsoft Agent Scripting Software (MASS)- An easy to use tool to create MS Agent scripts with animated, speaking characters. The program outputs the complete HTML page, ready to …
DesktopMates
DesktopMates- Animated human like characters that live on your desktop as your personal interactive companion and assistant capable of speech and doing tasks for you using Microso…
MASH - The Microsoft Agent Scripting Helper
MASH - The Microsoft Agent Scripting Helper- A tool to experiment with, compose, and playback Microsoft Agent scripts with no programming experience required. Presentations may be…
UMBC: KQML
UMBC: KQML- Information and resources for the Knowledge Query Manipulation Language (KQML)
FIPA ACL
FIPA ACL- Specifications of the Agent Communication Language. The FIPA is a consortium of experts providing specifications and recommendations for agent technologies.
J.Agentx
J.Agentx- A portable, lightweight implementation of the AgentX protocol for SNMP Agent Extensibility. This Java-based package was developed at the University of Coimbra, Portugal.…
Use Thread Pools Correctly: Keep Tasks Short and Nonblocking
Use Thread Pools Correctly: Keep Tasks Short and Nonblocking- A thread pool hides a lot of details, but to use it effectively some awareness of some things a pool does under the c…
Break Up and Interleave Work to Keep Threads Responsive
Break Up and Interleave Work to Keep Threads Responsive- Breaking up is hard to do, but interleaving can be even subtler.
Avoid Exposing Concurrency: Hide It Inside Synchronous Methods
Avoid Exposing Concurrency: Hide It Inside Synchronous Methods- Explains where to start when trying to add concurrency to a mass of existing code.
Prefer Structured Lifetimes: Local, Nested, Bounded, Deterministic
Prefer Structured Lifetimes: Local, Nested, Bounded, Deterministic- What's good for the function and the object is also good for the thread, the task, and the lock.
Practical Lock-Free Buffers
Practical Lock-Free Buffers- Looks at how lock-free programming avoids system failure by tolerating individual process failures.
Prefer Futures to Baked-In "Async APIs"
Prefer Futures to Baked-In "Async APIs"- Explains that it's important to separate "what" from "how" when designing concurrent APIs.
Use Threads Correctly = Isolation + Asynchronous Messages
Use Threads Correctly = Isolation + Asynchronous Messages- Motivates and illustrate best practices for using threads - techniques that will make concurrent code easier to write co…
It's Not Always Nice To Share
It's Not Always Nice To Share- It isn't just languages that have poor support for thread local storage, but operating systems too
Introduction to Priority Inversion
Introduction to Priority Inversion- Gives an introduction to priority inversion and shows a pair of techniques to avoid them.
Fundamental Concepts of Parallel Programming
Fundamental Concepts of Parallel Programming- Explains fundamental concepts for moving from a linear to a parallel programming model
Real-world Concurrency
Real-world Concurrency- Describes some key principles that will help mastering the "black art" of writing multithreaded code.
Lock-Free Code: A False Sense of Security
Lock-Free Code: A False Sense of Security- Writing lock-free code can confound anyone-even expert programmers, as Herb shows in this article.
Sharing Is the Root of All Contention
Sharing Is the Root of All Contention- Sharing requires waiting and overhead, and is a natural enemy of scalability. This article focuses on one important case, namely mutable (wr…
Multithreaded File I/O
Multithreaded File I/O- So far multithreaded file I/O is a under-researched field. Although its simple to measure, there is not much common knowledge about it. The measurements pr…
Measuring Parallel Performance: Optimizing a Concurrent Queue
Measuring Parallel Performance: Optimizing a Concurrent Queue- Shows different ways of how to write a fast, internally synchronized queue, one that callers can use without any exp…
Lock Options
Lock Options- Presents a solution to races and deadlocks based on a well-known deadlock-avoidance protocol and shows how it can be enforced by the compiler. It can be applied to p…
Understanding Parallel Performance
Understanding Parallel Performance- Explains how to accurately analyze the real performance of parallel code and lists some basic considerations and common costs.
What's New in Boost Threads?
What's New in Boost Threads?- The Boost.Thread library, which enables the use of multiple threads of execution with shared data in portable C++ code, has undergone some major chan…
Writing Lock-Free Code: A Corrected Queue
Writing Lock-Free Code: A Corrected Queue- Explores lock-free code by focusing on creating a lock-free queue.
The Many Faces of Deadlock
The Many Faces of Deadlock- Explains that deadlock can happen whenever there is a blocking (or waiting) cycle among concurrent tasks.
Maximize Locality, Minimize Contention
Maximize Locality, Minimize Contention- Explains why in the concurrent world, locality is a first-order issue that trumps most other performance considerations. Now locality is no…
volatile - Multithreaded Programmer's Best Friend
volatile - Multithreaded Programmer's Best Friend- Discusses the usage of the volatile keyword in multithreaded C++ programs.
Multi-threaded Debugging Techniques
Multi-threaded Debugging Techniques- Describes a number of general purpose debugging techniques for multi-threaded applications.
The Pillars of Concurrency
The Pillars of Concurrency- This article makes the case that a consistent mental model is needed to talk about concurrency.
Lock-free Interprocess Communication
Lock-free Interprocess Communication- Interprocess communication is an essential component of modern software engineering. Often, lock-free IPC is accomplished via special process…
Application-Level Abstractions for Lock-Free Data Sharing
Application-Level Abstractions for Lock-Free Data Sharing- Describes lock-free data sharing, otherwise known as "wait-free data sharing" as an alternative to the use of locks.
Use Lock Hierarchies to Avoid Deadlock
Use Lock Hierarchies to Avoid Deadlock- Explains how to use lock hierarchies to avoid deadlock by assigning each shared resource a level that corresponds to its architectural laye…
Apply Critical Sections Consistently
Apply Critical Sections Consistently- Critical sections are the One True Tool for guaranteeing mutual exclusion on shared variables. Like most tools, these must be applied consist…
Protothreads
Protothreads- Very lightweight stackless threads; give linear code execution for event-driven systems, designed to use little memory; library is pure C, no platform-specific Assem…
RT++
RT++- Higher order threads for C++; tutorial and reference manual.
A Thread Performance Comparison
A Thread Performance Comparison- Compares Windows NT and Solaris on a symmetric multiprocessor machine.
Welcome to the Jungle
Welcome to the Jungle- Herb Sutter is looking at how mainstream hardware is becoming permanently parallel, heterogeneous, and distributed.
1024cores
1024cores- A site devoted to lock-free algorithms, scalable architecture, multicore design patterns, parallel computations, threading libraries, tooling support and related topics.
Software and the Concurrency Revolution
Software and the Concurrency Revolution- Focuses on the implications of concurrency for software and its consequences for both programming languages and programmers. (Herb Sutter …