Decipher Eclipse Architecture: IAdaptable – Part 1 – Brief Introduction

If you read Eclipse source code, you will find that IAdaptable is a very popular interface which is implemented by many others. Why do so many classes/interfaces implement IAdaptable? The answer is that Adapter is the core design pattern for eclipse Core Runtime. What is IAdaptable? public interface IAdaptable { /** * Returns an object … Read more

Eclipse RCP Tutorial: How to Add a Progress Bar

This tutorial is about eclipse Job and it consists two parts. The first part introduces how to make a progress bar by using a simple example. The second part briefly illustrates Eclipse Job for background processing. 1. A Simple Example of Progress Bar in Eclipse Suppose you have a working RCP application with a sample … Read more

Eclipse RCP Tutorial: Export Eclipse RCP Application to be a Product

To develop a standalone desktop GUI application by using eclipse RCP, exporting it to be a product is necessary. This tutorial is about how to use the Eclipse Product export wizard to generate executable stand-alone desktop application. This article assumes that you know how to build a plug-in project by using eclipse RCP wizard. Here … Read more

Blocking, nonblocking, asynchronous, buffered, unbuffered, double buffered, programmed I/O, DMA

Here are all I/O related concepts. Blocking I/O: process is blocked until all bytes are ready. Non-blocking I/O: the OS only reads or writes as many bytes as is possible without blocking the process. Asynchronous I/O: similar to non-blocking I/O. The I/O call returns immediately, without waiting for the operation to complete. I/O subsystem signals … Read more

Steps Involved in Making a System Call

System call is programming interface to the services provided by the OS. It is typically written in a high-level language such as C or C++. The steps for making a system call: 1) push parameters on stack 2) invoke the system call 3) put code for system call on register 4) trap to the kernel … Read more

Type Checking for Object Oriented Features

Type checking is the activity of ensuring that the operands of an operator are of compatible types. This post is about how object oriented features such as inheritance, overloading and overriding affect type checking. A type error occurs when an argument of an unexpected type is given to an operation. It can be signalled at … Read more

Static Storage vs Heap vs Stack

The following is the summary of compiler storage allocation. 1. Static vs Dynamic Static: Storage can be made by compiler looking only at the text of the program. One reason for statically allocating as many data objects as possible is that the addresses of these objects can be compiled into target code. Dynamic: Storage can … Read more