Sunday, August 30, 2015

Intel Develops Programming Language For Multi-Core Computers

The language is an extension of C/C++, which are very familiar to software developers getting applications ready to run on Intel or AMD platforms.

As Intel and rival Advanced Micro Devices increase computer performance by adding cores to microprocessors, software makers are left with the daunting task of writing applications that take full advantage of the complex environment. Intel hopes to lend a hand through a new programming language -- called Ct -- the chipmaker has developed specifically for multi-core computing.
Ct was among the dozens of projects Intel had on display Wednesday at the Computer History Museum, Mountain View, Calif. While most of the technology demonstrated at the open house for Intel labs is years away from being productized, Ct is relatively close.
The language is an extension of C/C++, which are very familiar to software developers getting applications ready to run on Intel or AMD platforms. Where the languages require developers to manually partition code to run on specific cores, Ct does it automatically. "With Ct, it's almost like you're writing to a single-core machine," Mohan Rajagopalan, a senior researcher for Intel, said. "You leave it to the compiler and runtime to parallelize."

The Ct compiler developed by Intel chops up the code to run on separate cores based on the type of data and the operation being performed on the data, Rajagopalan said. Intel also has developed the runtime and an API for the compiler.
Most C/C++ programmers should be able to pick up Ct quickly, since less than 5% of the language will be new, according to Rajagopalan. In addition, programs compiled in Ct can scale to as many cores as are available. "Once the code is compiled, the runtime figures out the platform and adjusts accordingly," Rajagopalan said.
Intel is working with independent software vendors in developing the documentation and support that will be needed to adopt Ct. Intel has yet to decide whether to release the language to the open source community or take another route in distributing it. "We have the technology in place, so it's now about adoption," Rajagopalan said.
Among the developers that would find Ct particularly helpful will be those making financial analytics applications and software that performs lots of image processing or video decoding.

Subview and Superview(IOS 8)

A view (an object whose class is UIView or a subclass of UIView) knows how to draw
itself into a rectangular area of the interface. Your app has a visible interface thanks to
views. Creating and configuring a view can be extremely simple: “Set it and forget it.”
For example, you can drag an interface object, such as a UIButton, into a view in the
nib editor; when the app runs, the button appears, and works properly. But you can also
manipulate views in powerful ways, in real time. Your code can do some or all of the
view’s drawing of itself  it can make the view appear and disappear, move,
resize itself, and display many other physical changes, possibly with animation


Because view objects are the main way your application interacts with the user, they have many responsibilities. Here are just a few:
  • Layout and subview management
    • A view defines its own default resizing behaviors in relation to its parent view.
    • A view can manage a list of subviews.
    • A view can override the size and position of its subviews as needed.
    • A view can convert points in its coordinate system to the coordinate systems of other views or the window.
  • Drawing and animation
    • A view draws content in its rectangular area.
    • Some view properties can be animated to new values.
  • Event handling
    • A view can receive touch events.
    • A view participates in the responder chain.