Adobe Photoshop

Adobe Photoshop, or simply Photoshop, is a graphics editing program developed and published by Adobe Systems. It is the current and primary market leader for commercial bitmap and image manipulation, and is the flagship product of Adobe Systems. It has been described as "an industry standard for graphics professionals" and was one of the early "killer applications" on Macintosh.

Photoshop CS3, the current tenth iteration of the program, was released on 16 April 2007. "CS" reflects its integration with other Creative Suite products, and the number "3" represents it as the third version released since Adobe re-branded its products under the CS umbrella. Photoshop CS3 features additions such as the ability to apply non-destructive filters, as well as new selection tools named Quick Selection and Refine Edge that make selection more streamlined. On April 30th, Adobe released Photoshop CS3 Extended, which includes all the same features of Adobe Photoshop CS3 with the addition of capabilities for scientific imaging, 3D, and high end film and video users. The successor to Photoshop CS3, Photoshop CS4, will be the first 64-bit Photoshop.

Photoshop CS3 is marketed with three main components of improvement over previous versions: "Work more productively, Edit with unrivaled power, and composite with breakthrough tools." New features propagating productivity include streamlined interface, improved Camera Raw, better control over print options, enhanced PDF support, and better management with Adobe Bridge. Editing tools new to CS3 are the Clone Source palette and nondestructive Smart Filters, and other features such as the Brightness/Contrast adjustment and Vanishing Point module were enhanced. The Black and White adjustment option improves users control over manual grayscale conversions with a dialog box similar to that of Channel Mixer. Compositing is assisted with Photoshop's new Quick Selection and Refine Edge tools and improved image stitching technology.

CS3 Extended contains all features of CS3 plus tools for editing and importing some 3D graphics file formats, enhancing video, and comprehensive image analysis tools, utilizing MATLAB integration and DICOM file support.

The logo comprises white letters "Ps" on a gradient blue square.

Interpreted language

In computer programming an interpreted language is a programming language whose implementation often takes the form of an interpreter. Theoretically, any language may be compiled or interpreted, so this designation is applied purely because of common implementation practice and not some underlying property of a language.

Many languages have been implemented using both compilers and interpreters, including Lisp, Pascal, C, BASIC, and Python. While Java is translated to a form that is intended to be interpreted, just-in-time compilation is often used to generate machine code. The Microsoft .Net languages compile to CIL from which is often then compiled into native machine code; however there is a virtual machine capable of interpreting CIL.

In the early days of computing, language design was heavily influenced by the decision to use compilation or interpretation as a mode of execution. For example, some compiled languages require that programs must explicitly state the data-type of a variable at the time it is declared or first used while some interpreted languages take advantage of the dynamic aspects of interpretation to make such declarations unnecessary. For example, Smalltalk—which was designed to be interpreted at run-time—allows generic Objects to dynamically interact with each other.

Initially, interpreted languages were compiled line-by-line; that is, each line was compiled as it was about to be executed, and if a loop or subroutine caused certain lines to be executed multiple times, they would be recompiled every time. This has become much less common. Most so-called interpreted languages use an intermediate representation, which combines both compilation and interpretation. In this case, a compiler may output some form of bytecode or threaded code, which is then executed by a bytecode interpreter. Examples include Python, and Java. Similarly, Ruby uses an abstract syntax tree as intermediate representation. The intermediate representation can be compiled once and for all (as in Java), each time before execution (as in Perl or Ruby), or each time a change in the source is detected before execution (as in Python).