What is Representational Art? (Explained with Examples)

When you look at an artwork, the first thing that crosses your mind is how attractive or unattractive the art is. While some artwork simply expresses aesthetic beauty, other artworks aim to pass a message or represent real situations. The latter type of art is known as representational art.

Keep reading to learn more about representational art including its history, its importance in the art world, and some of the styles most well-known artists.

Table of Contents

Definition Of Representational Art

(This article may contain affiliate links and I may earn a commission if you make a purchase)

Some representational artworks fuse abstract art with reality, but this doesn’t make it less of representational art. In other words, some representational artworks could depict real objects in a realistic way, but that is not required.

But, provided that it still has the basic elements related to something real, it is still considered a form of representational art.

Note #1 : Sometimes, Representational Art is referred to as Figurative Art even though it doesn’t have to contain figures.

A Brief History Of Representational Art

There are also ancient arts that date back as far as the Stone age. They usually represent real people and scenes and sometimes narrate the setting of their environment.

Over time, painting techniques have continued to develop and have undergone many stylistic changes. Despite the phases it’s gone through, figurative art has maintained the concept of presenting real-life objects as the subject of the painting.

The Importance Of Representational Art

Representational art serves as a guideline for artistic merit.

One of the major roles that representational paintings and other artworks play is that it sets a standard for evaluating the artistic excellence of an art piece . Evaluation of an artist’s work often depends on the authenticity and similarity it shares with the image the artist tried to recreate. With this, it is easier to differentiate outstanding works from average ones, especially in a portrait or still-life drawing. 

Representational Art Serves As A Starting Point For Artworks

As a result, beginners favor representational art as it helps hone basic artistic skills and helps them graduate into more complicated art forms.

Representational Arts Is Easily Accessible

Artists who have created well-known representational works of art.

There have been many works of art that artists have created over the years that depict real-life things and people. Some of them are exceptional examples of representational art. Each artwork depicts a specific subject matter such as a person, a still-life, an animal, or a landscape. 

Let’s take a look at some of these famous Representational artworks and the artists who created them.

Paul Cezanne’s Masterpiece, Four Apples 

Cézanne used this technique to bring out the colors of the subjects he was painting, allowing him to produce works of art that were lifelike in their appearance.

This ability to depict the fruit exactly as he saw it allowed Cézanne to avoid any possibility of his work being misinterpreted by the public at large.

Joaqun Sorolla’s Valencian Fishermen 

Valencian Fishermen is a simple picture that Sorolla painted in 1895 during the period of the Impressionist movement. By giving his painting such a straightforward title, Joaquin Sorolla could convey exactly what his artwork was about.

Stanley Spencer’s Turkeys

Turkeys demonstrated the painters’ ability to accurately portray animal representations in an incredibly realistic and representational manner. In this picture, Sir Stanley Spencer painted turkeys in the backyard of someone’s home. These turkeys were the focal point of the painting. Thus, they were the first things an admirer saw. 

Algernon Newton’s The Surrey Canal, Camberwell 

Because of the incredible attention to detail and realism he used in his artwork, galleries regard this painting as a notable example of Representational art .

Although Newton painted The Surrey Canal, Camberwell with great precision, the artwork’s quality stems from a different fact. The painting gives spectators the sense that they are looking at a photograph of the canal rather than a painting of it.

A Few Final Thoughts About The Representational Style

Representational art continues to make history, and the style often gives artists a starting point for an artwork.

More From Artistry Found

definition of representation in art

Similar Posts

The beginner’s guide to conceptual art: what’s the big deal, street art vs graffiti (how are they different), what is folk art (explained), why is modern art so bad (what you need to know), what is autobiographical art (explained), what kind of art is popular today (styles & mediums).

Fine Art Tutorials

Representational Art: Definition and Guide

Representational art is an artistic style in which the artist attempts to depict a representation of real-life subject matter, that is recognisable to the viewer. This is opposed to non-representational art , which does not depict subjects, objects or scenes from the real world.

Art described as representational can be realistic, or less realistic. As long as the artist is attempting to capture a true-to-life resemblance of their subject, it can be considered representational.

This art form dates back centuries, with some artworks dating back to ancient times. From early cave paintings to Renaissance depictions of Biblical scenes, representational art has been used to express ideas and communicate stories for thousands of years.

Genres of Representational Art

definition of representation in art

Representational art falls into several distinct genres. Landscape painting, for instance, has been popular since the Renaissance and is still widely practised today. Portraiture and figure drawing are other traditional genres and can range from realistic to stylised interpretations depending on the artist’s preference. Still-life paintings are also popular and can depict anything from a simple bowl of fruit to a complex arrangement of objects.

History of Art and Representation

High Renaissance

The history of art is vast and varied. Ancient cultures used representational art to tell stories and document events, while more recent movements such as the Renaissance saw a greater emphasis on realism in painting and sculpture. In the 20th century, it saw a resurgence with the rise of movements such as Realism and Pop Art.

Art Movements: How Representational Art Has Evolved

definition of representation in art

Art has been a tool of expression for humans since antiquity, with each period of history bringing a new evolution in the approach and perception of representational art. The classical era of Greek sculpture is an ideal example of early representational art, where artists sought an idealised, perfect form rather than an exact reflection of reality. The human body was depicted in harmonious proportions, embodying the cultural values of balance, order and beauty.

Renaissance and the Pursuit of Realism

definition of representation in art

The High Renaissance brought a shift in perspective, with artists like Leonardo da Vinci and Michelangelo placing an emphasis on Realism. This was a time of great scientific and cultural advancement, and artists sought to depict the world around them with as much authenticity as possible, meticulously observing and capturing minute details of light, shadow, and anatomy.

Representing Subjective Experience During the Post-Impressionist Movement

definition of representation in art

By the late 19th to early 20th century, the Impressionist and Post-Impressionist movements emerged. Artists like Van Gogh and Gauguin began to move away from faithfully representing the physical world. Instead, they sought to express their inner experiences and emotions through bold colours and distorted forms. Here, art began its journey towards abstraction, and representational art took on a new dimension, serving not just as a mirror to the world but also as a window into the artist’s mind.

Representational vs. Non-Representational Art

Abstract oil painting

The difference between representational and non-representational art lies in the way that it is produced. Art that is representational is based on representations of reality, while abstract or non-representational art does not depict anything from the real world. Abstract artists can use geometric shapes, colour schemes, or any combination of shapes and lines that do not form recognisable objects. While representational art can have an emotional or symbolic purpose, it is still rooted in the world of everyday experience. Non-representational art, on the other hand, abstains from any obvious reference to reality or pictorial representation.

How Artists Represent Subjects in Art

definition of representation in art

Artists create representational, or ‘true to life’ art by observing the forms of the subjects and objects they wish to recreate, by drawing shapes , determining accurate proportions or perspective and using colours that emulate that of the reference. This process is often done slowly, in stages. The artist will begin by sketching the basic outline of their subject, to establish the proportions, then add details such as texture and shade to create the impression of the subject’s form.

Representational art is a rewarding endeavour that requires patience and skill. It takes time to learn how to accurately capture the nuances of light and shadow, but with practice, it can be achieved.

Mediums Used for Representational Art

Representational art can be used in any medium, from painting and drawing to sculpture and even digital media. It can be used to create powerful pieces of artwork or simply as a means of documenting an event or moment in time. While realistic art is often thought of as traditional, it can also be used in a more modern context to create unique and interesting pieces of artwork. It is up to the artist how they choose to interpret and use this style of art.

art in context logo retina

Representational Art – The Development of Representational Artworks

Avatar for Isabella Meyer

Representational art, which is sometimes known as Figurative art, refers to paintings, sculptures, and other art forms that have clearly been copied from real objects. Portraying something that physically exists in reality, such as a landscape, a still life, or a portrait, Representational artworks are instantly recognizable once they are created. As it is one of the most identifiable genres of art, Representational art has proved popular with the masses.

Table of Contents

  • 1 A History of Representational Art
  • 2 What Is Representational Art?
  • 3.1 Non-Representational Art Examples
  • 4.1 Representational Abstract Art
  • 5.1 Paul Cézanne: Four Apples (1881)
  • 5.2 Joaquín Sorolla: Valencian Fishermen (1895)
  • 5.3 Sir Stanley Spencer: Turkeys (1925)
  • 5.4 Algernon Newton: The Surrey Canal, Camberwell (1935)
  • 6.1 A Guideline of Artistic Merit
  • 6.2 A Basis for All Visual Art
  • 6.3 Makes Art More Accessible to the Public

A History of Representational Art

Existing as art that represents something, Representational art is typically made up of subject matters that are easily recognized by viewers. Some of the earliest examples of Representational art were cave paintings, which date back about 40,000 years ago, and the Paleolithic figurine known as The Venus of Willendorf said to be created about 25,000 years ago.

Thus, this form of art is said to be one of the oldest in existence, as a variety of examples can be traced from different genres that existed at separate times.

Most ancient art, which dates back to the Stone Age between 2,000,000 and 10,000 B.C.E., was said to be representational. The sculptures and paintings produced in this era were often modeled off of real people, idealized gods, or scenes from nature until the direction of representation turned to focus mainly on religious subjects during the Middle Ages in Europe.

Famous Representational Artworks

Some of the most beautiful Representational art examples were created during the Renaissance by important artists such as Michelangelo and Leonardo da Vinci, who produced exceptionally realistic paintings and sculptures. At this time of art history, artists were typically commissioned to paint portraits of royalty, meaning that the majority of the artworks in existence displayed depictions of real people.

Throughout history, the majority of the paintings, drawings, and sculptures that have been made are said to be forms of Representational art, as this genre represents one of the largest collections of artworks to ever be created.

Despite going through many phases throughout art history, Representational art has retained the principle of presenting the viewer with distinct and obvious subject matter . This essentially demonstrates that it is one of the most reliable art forms to exist.

What Is Representational Art?

An appropriate Representational art definition would be artworks, in particular paintings and sculptures, that have been created by accurately copying real object sources. In doing so, the artworks that are produced represent something with strong visual references to reality, as they represent something very specific. Even when artworks were symbolic or non-figurative in nature, they were still usually representing something, which made them a form of Representational art.

Representational artworks are normally made up of landscapes, seascapes, portraits, figures, and still lifes, as these works are all comprised of images that represent an identifiable and genuine object. In addition to these categories, other forms of Representational art include depicting everyday scenes, historical and mythological paintings. In terms of Representational statues, the most common type of statue to emerge from the early art periods were equestrian statues.

Representational Art Statue

While Representational art depicts objects as realistically as possible, not all Representational drawing examples are true to life.

For example, a tree can be represented through standard characteristics that we know are used to identify an object as a tree but can be placed within abstract contexts that a tree would never usually be found in. Despite the environment of paintings not always being lifelike, as long as the objects are represented recognizably, the art is automatically considered to form part of Representational art.

Traditional Representational art made use of atmospheric perspective and color in order to create the illusion of three-dimensional reality on paper or canvas. The knowledge and ability to create such realistic depictions slowly grew through the centuries as different artists arrived on the scene and helped further the Representational art definition, with this art genre never fading from popularity.

What Is Representational Art

What makes Representational art so interesting is that an iconic artwork, such as da Vinci’s Mona Lisa (1503), and a simple crayon drawing of it done by an amateur would be seen as equally representational. The preference for one of these versions of the painting over the other depends on one’s aesthetic taste and not on how well the figure has been depicted.

Thus, Representational art was not a genre specifically reserved for professional artists only, as any painting or drawing that depicts a real object is considered to be a part of the style.

What Is Non-Representational Art?

By contrast, non-Representational art is incredibly different from Representational art. While most art is based on imagery and elements taken from the real world, the more extreme forms of art demonstrate an increasingly strained relationship to the visible world and are thus labeled as non-Representational art. In addition, this type of art is frequently used as a synonym to describe abstract art.

The line that separates Representational art from non-Representational art is extremely thin, as some overlapping between these two art forms still occurs. As art tends to be subjective, audiences and critics may disagree on how to classify certain artworks because of their own personal opinions.

Therefore, an appropriate non-Representational art definition describes artworks that display complete abstraction and place more emphasis on the lines, colors, and shapes seen as opposed to any objects.

non representational art

With non-Representational art pieces leaning more towards abstraction, the type of artwork made makes no reference to anything remotely recognizable from the real world. The aim of these artists is to create something that is thought of as more intellectual by definition, as not making reference to any distinguishable objects requires viewers to seriously consider the work in order to form an interpretation.

Essentially, the best way to fully understand the non-Representational art definition is to consider and appreciate the differences that exist between this form of art and traditional Representational art. If you are able to see and understand themes from the viewpoint of the artist, accepting the artwork for what it then becomes a lot easier.

Non-Representational Art Examples

As non-Representational art makes use of abstraction within the artworks produced, a variety of different illustrations exist. However, the most common non-Representational art examples include artworks that do not depict any objects from the real world, such as figures and landscapes. Instead, mere shapes, colors, and lines are used to depict the ideas of the artists, as these elements are said to express elements that are not always visible, such as emotions and feelings.

Representational Abstract Art

20 th Century Representational Art

Towards the end of the 19th century, Representational painting in Europe was dominated by the movement of Impressionism , which began around 1860. While realistic depictions of people, places, and objects were still being made, they were being painted according to the stylistic techniques of Impressionism, which was incredibly free-flowing and loose.

This led to an increase in Representational drawing, as Impressionists expressed an interest in other mediums of art in addition to painting.

This era led to the emergence of some incredibly notable artists, who created some very well-known Representational artworks. Some of these Representational artists included Edgar Degas, John Singer Sargent, Wassily Kandinsky , and even Vincent van Gogh. While all of these artists had a distinctly different style, they all produced artworks that were based on easily recognizable forms and objects, which labeled them Representational artists in addition to the art movement that they were practicing in.

Representational Artworks

At the turn of the 20 th century, the different art movements that were developing began to reject the largely representational approach. A movement that abandoned the academic traditions of Representational art and embraced a more subjective approach was German Expressionism, as the political events of the early 20 th century led to a massive increase in abstract art . As a result of this, non-Representational art was not said to evolve until the beginning of the 20 th century, where form was finally given more dominance over substance.

Representational Abstract Art

In addition to the rise of the German Expressionist movement, the appeal of abstraction grew. True-to-life paintings were facing immense pressure from other artists who were unhappy with these antiquated images as they left very little room for intellectual possibilities. As a result of this, artists turned to Representational Abstract Art as a way to reinterpret and modernize subject matter.

A notable artist whose journey from Representational art into Representational Abstract Art can clearly be seen in his artworks is Pablo Picasso.

Within his Blue and Rose periods, Picasso displayed great concentration on realistic and naturalistic painting, with this interest slowly developing towards abstraction as he entered his revolutionary Cubism period. The artworks created from Picasso’s Cubism period make up some of the most famous examples of non-Representational painting ever seen.

Non-Representational Art Examples

Well-Known Representational Artworks and Their Artists

As many artworks that have been produced throughout the decades portray real-life objects and figures, many of them can be seen as wonderful examples of Representational art. As too many exist to possibly be included on one list, we will be looking at four outstanding Representational artworks that each depict a specific subject matter such as human figures, a still life, animals, and a landscape scene.

Paul Cézanne: Four Apples (1881)

This oil on canvas painted by Paul Cézanne exists as an important still-life artwork, as it demonstrates his rejection of thick brushstrokes and intense contrasts of light and shadow. Cézanne did this in order to fully focus on the colors of the objects that he was painting, which helped him create incredibly naturalistic artworks .

Famous Representational Art

Within Four Apples , no one can mistake the four circles in the middle of the canvas to be anything other than what Cézanne said they were, which was apples. While this is certainly one of his simpler paintings, the intricacy of Four Apples lies in the depiction of its subject matter. Cézanne was able to effortlessly depict the fruit exactly as he saw it, leaving no room for viewers to confuse his work for anything else.

Joaquín Sorolla: Valencian   Fishermen (1895)

Painted during the Impressionist movement , Valencian Fishermen exists as a simple work. In giving the artwork such a straightforward title, Joaquín Sorolla portrayed exactly what his artwork is labeled as, as two men standing at the water’s edge and working with fishing equipment can be seen. Thought to be an incredibly relaxed artwork, Sorolla merely depicted fishermen, assumed to be from Valencia, going about their work in the middle of the day.

Representational Artists

Sir Stanley Spencer: Turkeys (1925)

Created using a Neo-Romanticism style, Turkeys demonstrated the ability of artists to accurately capture depictions of animals in an incredibly realistic and thus representational style. Within this artwork, Sir Stanley Spencer clearly portrayed turkeys in the back of someone’s garden, with these animals becoming the only focal point in the painting. Based on the single word he titled the artwork, the subject matter of Spencer’s work could not be mistaken by viewers, especially after seeing the simplicity of the artwork.

Algernon Newton: The Surrey Canal, Camberwell (1935)

The final example that we have included is Algernon Newton’s The Surrey Canal, Camberwell , in which a representation of the Surrey Canal is seen. Although not explicitly a landscape artwork, as Newton included buildings that overlooked the canal, the great detail and realism with which they have been painted allow this work to be seen as a great example of Representational art. The clarity with which Newton painted The Surrey Canal, Camberwell adds to the quality of this artwork, as viewers feel as if they are looking at a photograph of the canal as opposed to a painting of it.

As Newton depicted something specific that existed in reality, he created an accurate visual reference of the canal, which allowed viewers to understand and appreciate the work immediately.

The Importance of Representational Art

Representational art made up an important period of art history, as its notable style has been represented by some of the earliest sculptures and artworks that have been documented and found. As Representational art is so widely accepted by audiences and critics alike, it still exists as a popular art form today, despite countless developments in different genres taking place.

Representational Art Example

A Guideline of Artistic Merit

Representational art is considered an essential genre of art, as it provided a standard by which the artistic quality of artworks could be judged. Portraits, still life’s, and landscape paintings were judged based on their accuracy and similarity to the person and scene that was being depicted, which allowed exceptional work to be differentiated from mediocre work. However, non-Representational art differed greatly, as by not representing anything real, these abstract artworks were not able to be assessed according to objective criteria.

Due to this, the reputation of non-Representational artists varied greatly from that of Representational artists, especially at the start of the 20th century when abstraction flourished.

A Basis for All Visual Art

Representational art acted as an important starting point for all visual art, as it evaluated artists based on their drawing skills, compositional skills, perspective, use of color, and portrayal of light. While these are not the only features used to judge artists and their artworks today, these characteristics of Representational art provided a crucial foundation for the growth of visual art.

Additionally, having a solid base provided by Representational art helped introduce some of the most iconic artists in all of art history. Through creating a benchmark with which to assess artworks, this went on to educate artists from all movements to improve upon certain skills, which led to the creation of some incredibly notable works that are still spoken about today.

Makes Art More Accessible to the Public

As Representational artworks are generally very easy to recognize, the continuation of this genre helped make art more accessible to the general public as time went on. Certain artworks only received true appreciation and fame years after they were produced, which demonstrated the applicability of Representational art as these artworks were still able to be understood after a significant amount of time had passed.

With the rapid rate that technology has progressed, individuals are demonstrating a greater level of comfort with Representational art. This is because these artworks can easily be recreated using various digital tools and computer programs, which demonstrates the relevance that some Representational art pieces still have if they can be captured and altered in a completely new medium.

Despite decades passing since the first examples of Representational art emerged, this art genre has managed to remain incredibly relevant still. As all art, no matter the movement, can be seen as representational if depicting something that truly exists in reality, it becomes increasingly easy to answer the question: what is Representational art? In a nutshell, this art form simply captures elements of reality and represents them in a naturalistic way, so that viewers are able to easily recognize the subject matter artists are attempting to portray.

isabella meyer

Isabella studied at the University of Cape Town in South Africa and graduated with a Bachelor of Arts majoring in English Literature & Language and Psychology. Throughout her undergraduate years, she took Art History as an additional subject and absolutely loved it. Building on from her art history knowledge that began in high school, art has always been a particular area of fascination for her. From learning about artworks previously unknown to her, or sharpening her existing understanding of specific works, the ability to continue learning within this interesting sphere excites her greatly.

Her focal points of interest in art history encompass profiling specific artists and art movements, as it is these areas where she is able to really dig deep into the rich narrative of the art world. Additionally, she particularly enjoys exploring the different artistic styles of the 20 th century, as well as the important impact that female artists have had on the development of art history.

Learn more about Isabella Meyer and the Art in Context Team .

Cite this Article

Isabella, Meyer, “Representational Art – The Development of Representational Artworks.” Art in Context. July 5, 2021. URL: https://artincontext.org/representational-art/

Meyer, I. (2021, 5 July). Representational Art – The Development of Representational Artworks. Art in Context. https://artincontext.org/representational-art/

Meyer, Isabella. “Representational Art – The Development of Representational Artworks.” Art in Context , July 5, 2021. https://artincontext.org/representational-art/ .

Similar Posts

Kitsch Art

Kitsch Art – A Look at Famous Kitsch Paintings and Artworks

Tutankhamun's Sarcophagus

Tutankhamun’s Sarcophagus – Explore the King Tut Sarcophagus

Afrofuturism

Afrofuturism – Fusing African Heritage and Science Fiction

Harlem Renaissance Art

Harlem Renaissance Art – A Timeline of Art in the Harlem Renaissance

WW2 Nose Art

WW2 Nose Art – The History of Decorating Warplanes

Islamic Art

Islamic Art – A Deep Dive into the Gilded World of Islamic Art

Leave a reply cancel reply.

Your email address will not be published. Required fields are marked *

Save my name, email, and website in this browser for the next time I comment.

The Most Famous Artists and Artworks

Discover the most famous artists, paintings, sculptors…in all of history! 

definition of representation in art

MOST FAMOUS ARTISTS AND ARTWORKS

Discover the most famous artists, paintings, sculptors!

artincontext art history newsletter mobile

Draw Paint Academy

Representational Art

Representational art refers to art that  represents something, whether that be a tree in a landscape, apple in a still life, or figure in a portrait. Or in other words, it is art that is clearly identifiable as something which already exists in life.

Below are some examples of representational art, starting with a watercolor by John Singer Sargent which  represents a white ox:

John Singer Sargent, White Ox at Siena, 1910

The painting below by Joaquín Sorolla represents fisherman in Valencia.

Joaquín Sorolla, Fishermen from Valencia, 1895

The painting below by Paul Cézanne represents apples on a table.

Paul Cézanne, Four Apples, 1881

Representational art does not need to be a completely realistic depiction of the subject; there will often be varying levels of abstraction. For example, the Impressionists painted with loose brushwork and simplified forms, often far from a realistic depiction, but their work can still be identifiable as something which already exists. The painting below by Claude Monet is loose and vague, but it still clearly represents a bridge, boats, and distant buildings in an ambient seascape.

Claude Monet, Waterloo Bridge, Sunlight Effect, 1903

The opposite of representational art is complete abstraction, where the lines, colors, and shapes themselves are the focus of the artwork, rather than any existing thing. This is known as non-representational art.

The painting below by Wassily Kandinsky is a great example. Kandinsky may well have intended for this composition to represent something which already exists, but the abstraction is so extreme that to most people, it is just an assortment of lines, colors, and shapes.

Wassily Kandinsky, On White II, 1923

The painting below is extremely abstract, however, it is still representational of something I will let you guess what (the name of the painting gives it away). It is not what you would typically associate with representational art, but there is an argument for it.

Wassily Kandinsky, The Rider, 1911

The more realistic depiction of the rider below is more typical of representational art. Kandinsky went through many changes in style during his lifetime, as you can see from this painting and the two prior. This provides an interesting study in the levels of abstraction, from complete abstraction (non-representational art) to more representational works.

Wassily Kandinsky, The Blue Rider, 1903

The line which separates representational art from non-representational art is still a gray area (art will always be partly subjective by nature). But this post should give you a general idea of what the term means.

Want to Learn More?

You might be interested in my  Painting Academy  course. I’ll walk you through the time-tested fundamentals of painting. It’s perfect for absolute beginner to intermediate painters.

Thanks for Reading!

I appreciate you taking the time to read this post and I hope you found it helpful. Feel free to share it with friends.

Happy painting!

definition of representation in art

Draw Paint Academy

About  |  Supply List  |  Featured Posts  |  Products

Dan Scott is the founder of Draw Paint Academy. He's a self-taught artist from Australia with a particular interest in landscape painting. Draw Paint Academy is run by Dan and his wife, Chontele, with the aim of helping you get the most out of the art life. You can read more on the About page .

Enjoyed this post? Join over 123,000 artists who subscribe to the Draw Paint Academy newsletter.

3 comments on “Representational Art”

I have been attempting to paint a pic of the old barn on the family farm where i grew up! I just cant seem to come up with a color that resembles old barn wood – some shade of gray – but striated- nothing seems to be quite right!!

It’s fascinating how artists like Kandinsky navigated between representational and abstract art. It got me thinking, how do artists decide when to lean more toward realism or abstraction in their works? Is it a conscious choice or more of an instinctive process?

This was so helpful Dan. I didn’t see it 2019. I was struggling with the definition of representational art!!

Leave a Comment Cancel reply

Dan Scott, New Zealand, Autumn Colors, Progress, 2024, Brush Path

Painting Big, Simple Shapes and Colors

August 4, 2024

Vincent van Gogh, Interior of a Restaurant, 1887

A Closer Look at Interior of a Restaurant by Vincent van Gogh

December 6, 2022

Marie Denise Villers, Marie Joséphine Charlotte du Val d’Ognes, 1801 (Detail 1)

A Closer Look at Marie Joséphine Charlotte du Val D’Ognes by Marie Denise Villers

January 5, 2022

Isaac Levitan, Trail in Deciduous Forest, Ferns, 1895 1200w

Isaac Levitan’s Trail in Deciduous Forest

April 15, 2024

Bernard Dunstan, After Breakfast, Volterra, 1979

Bernard Dunstan and Diana Armfield

August 9, 2024

Ivan Aivazovsky, Ship

Ivan Aivazovsky – “King of the Sea”

March 24, 2022



(1440s),
Perhaps the greatest of
the Renaissance.

consists of images that have no clear identity, and must be interpreted by the viewer.

. Instead, imagine a continuum between (at one extreme) pure abstraction, and (at the opposite extreme) ultra-realism. At some point along this line, abstract imagery becomes sufficiently recognizable for us to characterize it as representational, but defining such a point in advance, is impossible.

include portraits, traditional landscapes, paintings of everyday scenes, historical or , still lifes and of course various types of figurative and .

,
one of the greatest exponents of
as well as various
types of .

.

) may be termed "neo-figurative".

- an approach popularized by 19th century Impressionists - is almost always representational.

by
the Dutch artist .

is representational, and was practised as far back as the (c.2,000,000–10,000 BCE). Examples include sculptures such as the "Venus of Tan-Tan" (Morocco), and the "Venus of Berekhat Ram" (Israel), as well as cave paintings from the Lascaux (France), and Altamira (Spain).

., one of
the most famous painters of the
German Expressionist School.


For a brief survey of the tradition
of drawing from the nude, see:
(Top 20)
(Top 10).

 

(1907).
(Detail) by , illustrating his
move away from realism towards the
disjointed forms that would end in
Cubism.

and (c.650 BCE to c.350 CE), as exemplified by such as "The Marathon Youth" (3rd Century BCE) by Praxiteles; "The Dying Gaul" (c.232 BCE) by Epigonus; Laocoon and His Sons (c.40 BCE) by Hagesandrus, Polydorus and Athenodoru. One of the finest examples of representational is the spiral bas-relief on , from the Julio-Claudian period. These works of Classical Antiquity were the basis for the later Italian Renaissance, which itself had a huge influence on artists up until the 20th century. (Although undiscovered until modern times, the , created during the era of (221-206 BCE), is perhaps the greatest example of representational art.)

promoted an 'ideal' type of representationalism, as typified by the David sculptures of Donatello and . The human nude was seen as the highest form of creative expression, and figures were frequently painted and sculpted in idealized ways. There were very few 'ugly' faces or bodies on display in Renaissance , or . Techniques of were explored and documented.

period (c.1530-1600) beginning with Michelangelo's "The ". Figures became less idealized and more 'real', especially outside Italy, where non-idealistic oil painting dominated, notably in Holland where the realistic traditions of Jan Van Eyck (1390-1441) and (1399-1464) led to the incomparable school of Dutch Realism exemplified by the exquisite interiors of Jan Vermeer (1632-75). However, due to the power of the Church as well as the enduring influence of the Italian Renaissance - as expressed through the great European academies of art - it wasn't until the Industrial Revolution (c.1790-1850) that the Realism movement was born and painters began to represent the true reality of life instead of the idealized variety. (But see also the .) This affected painting methods as well as subject matter. For example, full expression was given to colour, as artists attempted to paint what they saw. Thus if a haystack appeared pink in the dying light, it was painted pink.


For a list of important dates in the
evolution of painting/sculpture,
including movements, schools,
and famous artists, please see:
.


For a list of the world's
top priced works of art and
record auction prices, see:

, whose members nevertheless attached the greatest importance to the traditional skills of , colour and composition.

, was one of the finest draughtsmen in the history of art, while the Impressionist portrait artist (1856-1925) was a master of the "au premier coup" technique (one exact brushstroke, no reworking) and one of the great oil painters of modern times. However, the appearance of (1853-90) in the late 1880s signalled an important change.

brushwork and highly personalized paintings heralded the beginning of an style which was subsequently developed by the Norwegian Edvard Munch (1863-1944) and notably by German groups such as Der Blaue Reiter, Die Brucke, Die Neue Sachlichkeit and by artists like Wassily Kandinsky (1844-1944), Paul Klee (1879-1940), Ernst Ludwig Kirchner (1880-1938), (1891-1969), Alexei von Jawlensky (1864-1941), Egon Schiele (1890-1918), (1886-1980) and Max Beckmann (1884-1950). Although early Expressionism still adhered (largely) to a representational approach, it rejected academic traditions, preferring instead a more subjective approach to art. In time, this led to a weakening of traditional painterly methods, which - in conjunction with political events during the early 20th century - led to the growth of abstract art and the rise of post-Modernism. As a result, by the 1940s, the art world (by then centred in New York) was witnessing the dominance of form over substance. See also .

 

and its underlying subjectivism, true-to-life painting was coming under pressure from other artists who were dissatisfied with its old-fashioned image and its lack of intellectual possibilities. Unfortunately, in their attempt to 'reinterpret' and 'modernize' art, these artists effectively threw out the baby with the bath-water, a phenomenon which is perhaps illustrated by the work of the Spanish artist Pablo Picasso (1881-73) who excelled in both representational and non-representational art. (Note: For an explanation of modern works by artists like Picasso, please see: : 1800-2000.)

style (c.1908-19) whose disjointed forms (eg. "Girl With Mandolin", 1910) are among the most famous examples of non-representational painting. In very simple terms, Picasso thought that naturalistic art had reached its limits under the Impressionists (1870-1900) and (c.1905). As a result, he decided to experiment with more non-representational/abstract art-forms - an approach which he and considered more 'intellectual' - whereupon they duly came up with Cubism. (Picasso's journey from realism to 'abstraction' is best viewed by studying his portfolio of , up to his famous " ", 1937.)

, and despite Picasso's huge creative output during his 92 years of life - an oeuvre which included Expressionism, Cubism, and - he was never really interested in abstraction, and most of his masterpieces were (arguably) representationalist. Note also his use of the classicist idiom - see: (1906-30) - and his contribution to the (c.1900-30).

can be judged according to the likeness it conveys of the sitter; a can be assessed according to its similarity with a particular scene; and a street-scene can be compared with real-life; a painting of a darkened scene can be judged according to how well it depicts light and shadow, so on. But non-representational art does not purport to represent anything in real-life, and therefore cannot be judged by reference to objective criteria. As a result, the reputation of non-representational painters and sculptors may depend entirely upon whims of fashion within the art world, rather than demonstrable skill.

.
• For more about representational painting and sculpture, see: .

All Subjects

study guides for every class

That actually explain what's on your next test, representation, from class:, art history – theories and methods.

Representation refers to the way in which art depicts, symbolizes, or portrays subjects, ideas, or concepts. It plays a crucial role in how we understand and interpret visual culture, influencing perceptions of identity, culture, and power dynamics. The idea of representation is deeply connected to various fields such as politics, sociology, and anthropology, highlighting its importance in interdisciplinary studies and the need to challenge dominant narratives in art history.

congrats on reading the definition of representation . now let's actually learn it.

5 Must Know Facts For Your Next Test

  • Representation shapes how individuals and communities see themselves and each other in society, impacting cultural identity and social relations.
  • Artistic representation can reinforce stereotypes or challenge them, making it a powerful tool for social change and awareness.
  • In the context of decolonizing art history, representation involves critically examining who is included or excluded in the artistic narrative.
  • The rise of digital media has changed the landscape of representation, allowing for more diverse voices but also posing challenges related to authenticity and appropriation.
  • Understanding representation also involves acknowledging historical contexts that influence how certain groups are depicted in art.

Review Questions

  • Representation in art significantly impacts cultural identity as it can affirm or challenge how communities view themselves and their histories. When artworks depict marginalized groups authentically, they can foster pride and solidarity within those communities. Conversely, negative or stereotypical representations can perpetuate harmful narratives and affect social relations by reinforcing biases. Thus, understanding representation helps illuminate the complex dynamics between art, culture, and identity.
  • Critically examining representation is essential in the decolonization process because it uncovers the biases embedded within the traditional art historical canon. This examination allows for a reevaluation of whose stories are told and whose are overlooked. By bringing marginalized voices to the forefront and challenging Eurocentric narratives, we can create a more inclusive understanding of art history that reflects diverse perspectives. This shift not only enriches our knowledge but also acknowledges the historical injustices that have shaped artistic practices.
  • Technological advancements have profoundly altered how representation is created and consumed in contemporary art. The rise of digital media allows artists to reach wider audiences and present diverse perspectives that may have been historically marginalized. However, this also brings challenges like the risk of cultural appropriation and the question of authenticity. Artists must navigate these complexities while utilizing technology to enhance representation creatively. Overall, technology has made representation more accessible but has also intensified discussions around ethical practices in art production.

Related terms

Iconography : The study of symbols and imagery in art, focusing on how these elements convey meaning and represent broader cultural concepts.

Cultural Appropriation : The unacknowledged or inappropriate adoption of elements from one culture by members of another culture, often resulting in a distorted representation.

Authenticity : The quality of being genuine or true to one's origins, often debated in discussions about representation, especially regarding marginalized voices in art.

" Representation " also found in:

Subjects ( 186 ).

  • AP Calculus AB/BC
  • AP European History
  • AP Human Geography
  • AP Spanish Language
  • AP US Government
  • AP US History
  • Advanced Media Writing
  • Advanced Public Speaking
  • Advertising and Society
  • African American History Since 1865
  • African American Literature Before 1900
  • Algebraic Combinatorics
  • Algebraic Geometry
  • Anthropology of Globalization
  • Art Curation and Gallery Management
  • Art Theory and Criticism
  • Art and Colonialism
  • Art and Philosophy
  • Art and Politics
  • Art and Social Justice
  • Art and Technology
  • Art and Trauma Studies
  • Art in the Dutch Golden Age
  • Art of the Interview
  • Art: Renaissance to Modern Times
  • Baroque Art
  • Bioengineering Signals and Systems
  • Body Art and Performance
  • Business Semiotics
  • Children's Television
  • Cities and the Arts
  • City in Film
  • Civil Procedure
  • Classical Poetics
  • Communication and Popular Culture
  • Conservation Biology
  • Contemporary Art
  • Courts and Society
  • Creative Producing I
  • Critical TV Studies
  • Curatorial Studies
  • Disability and Art
  • Documentary Forms
  • Documentary Photography
  • Documentary Production
  • Drawing: Foundations
  • Elementary Algebraic Geometry
  • English Grammar and Usage
  • Ethnomusicology
  • Feminism in Television
  • Feminist Art History
  • Feminist Political Thought
  • Film Criticism
  • Film History & Form
  • Film Industry
  • Film and Media Theory
  • Filmmaking for Journalists
  • Folklore and Visual Culture
  • Fourier Analysis, Wavelets, and Signal Processing
  • Fundamentals of American Government
  • Fundamentals of Stage Directing
  • Global Media
  • Governmental Public Affairs
  • Greek Philosophy
  • History of Art Criticism
  • History of Graphic Design
  • History of Modern Philosophy
  • History of Photography
  • History of Scientific Illustration
  • History of Video Games as Art
  • Immersive and Virtual Reality Art
  • Indigenous Arts
  • Indigenous Issues Across the Americas
  • Installation Art
  • Intermediate Cinematography
  • International Organization
  • Intro to African Arts and Visual Culture
  • Intro to Anthropology
  • Intro to Political Science
  • Introduction to Aristotle
  • Introduction to Art
  • Introduction to Chicanx and Latinx Studies
  • Introduction to Cognitive Science
  • Introduction to Comparative Politics
  • Introduction to Contemporary Literature
  • Introduction to Creative Writing
  • Introduction to Ethnic Studies
  • Introduction to Film Theory
  • Introduction to Gender Studies
  • Introduction to Literary Theory
  • Introduction to Musics of the World
  • Introduction to Native American Studies
  • Introduction to Performance Studies
  • Introduction to Political Sociology
  • Introduction to Women's Studies
  • Language and Popular Culture
  • Latin American Politics
  • Leading Nonprofit and Social Enterprises
  • Lie Algebras and Lie Groups
  • Literary Theory and Criticism
  • Literature of Journalism
  • Literature of the Americas Before 1900
  • Media Criticism
  • Media Effects
  • Media Expression and Communication
  • Media Literacy
  • Media Strategies and Management
  • Modern East Asian Fiction
  • Multimedia Reporting
  • Multimedia Skills
  • Music and Social Protest
  • Musical Theater Performance
  • Narrative Documentary Production
  • Narrative Journalism
  • Narrative Radio
  • Native American Literature
  • News Photography
  • Noncommutative Geometry
  • Origins of Rome
  • Outsider Art
  • People of the Arctic
  • Performance Studies
  • Photojournalism I
  • Photojournalism II
  • Playwriting Workshop
  • Political Campaigns
  • Political Economy of International Relations
  • Pop Art and Mass Culture
  • Postcolonial Art
  • Postwar Art After 1945
  • Principles of Marketing
  • Product Branding and Branded Entertainment
  • Queer Art History
  • Queer Theory
  • Race and Gender in Media
  • Race, Ethnicity, and Politics in the African Diaspora
  • Representation Theory
  • Rescuing Lost Stories
  • Screenwriting II
  • Semiotics in Art
  • Social Media and Journalism
  • Social Problems and Public Policy
  • Sports Reporting and Production
  • Sports Storytelling
  • State Politics and The American Federal System
  • State and Federal Constitutions
  • Storytelling for Film and Television
  • Surrealism and Dada
  • Television Criticism
  • Television Newsroom
  • Television Studies
  • The COMunicator
  • The Congress
  • The Human Storyteller
  • Theater Production
  • Theater for Social Change
  • Theories of International Relations
  • Thinking Like a Mathematician
  • Trademark Law
  • Trauma Journalism
  • UK Constitution and Government
  • Understanding Film
  • Understanding Media
  • Understanding Social Change and Issues of Race and Gender
  • Understanding Television
  • Universal Algebra
  • Visual Cultures of California
  • Visual Storytelling
  • Von Neumann Algebras
  • Women and Politics
  • Women and World History
  • Women in Art History
  • World Literature II
  • World Music
  • Writing the Situation Comedy
  • Writing the Television Pilot

© 2024 Fiveable Inc. All rights reserved.

Ap® and sat® are trademarks registered by the college board, which is not affiliated with, and does not endorse this website..

Representational

Blanket term for art that represents some aspect of reality, in a more or less straightforward way

Algernon Newton The Surrey Canal, Camberwell (1935) Tate

Sir Stanley Spencer Turkeys (1925) Tate

© Estate of Stanley Spencer

John Wonnacott The Norwich School of Art (1982–4) Tate

© John Wonnacott

The term seems to have come into use after the rise of modern art and particularly abstract art as a means of referring to art not substantially touched by modern developments. Not quite the same as figurative art which seems to apply to modern art in which the elements of reality, while recognisable, are nevertheless treated in modern ways, as in expressionism for example. The term figurative also implies a particular focus on the human figure.

The term non-representational is frequently used as a synonym for abstract.

Does this text contain inaccurate information or language that you feel we should improve or change? We would like to hear from you.

  • Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to footer

ArtHearty

Understanding Representational Art with Examples

Art is complex. Art is beauty. Art is varied. Visual art is divided into abstract and figurative. Figurative art is also known as representative art. We shall learn about representational art with examples in this ArtHearty article.

Understanding Representational Art with Examples

The Thin Line of Resemblance Though representational and nonrepresentational art are distinct, and are rather accepted as opposing art forms, there still exists an ambiguous similarity. Representational art contains some traces of abstraction.

Representational Art

The word ‘representational’ originates from the word represent , which means to denote. Likewise, representational art , by definition, represents the art that finds resemblance with the real world. The onlookers of this art form can associate the elements with actuality. And it is this feature of this art form that has garnered appreciation of people from all walks of life. This is the most superior of meanings that could be associated with representational art.

Nonrepresentational art, on the contrary, is that art form bears no elements that has similarity with the real world. It allows room to its viewers to interpret a piece of art in his own way. It is the artist’s way to emote his own experiences, or experiences that he has known in his life. Such works are laden with the artist’s perspective of the object. As far as the nonrepresentational history is concerned, we can infer that in the last part of the 19 th century, emerged a pressing need to have an art form that would stand in total contrast to the stark depiction of reality. Thus, came into the fore, non-representational art, which in itself is a broad terminology, and has within its ambit, a plethora of elements that is beyond the scope of this article.

Having understood these, we can say that most paintings and sculptures can be divided into either representational art or non-representational art. Well, the answer is certainly an affirmation of the question.

Representational art is also known as figurative, and nonrepresentational art is known as abstract. Figurative art is directly influenced by real-life sources, while the abstract art is an embodiment of the artist’s creative waves and the interpretation by the viewers. This phenomenon resulted from artistic independence. Representational art showcases humans, elements in nature such as trees, birds, flowers, etc.

Origin of Representational Art

  • The very first representational art dates back to the prehistoric times, when the prehistoric men carved paintings on the caves.
  • The purpose of it was to represent human or animal form. Venus of Willendorf is one of the living examples of a piece of representational art.
  • Apart from this, there are also opinions that Australian rock art discovered on the caves may also be one of the oldest forms of figurative art attempted by humans.

Let’s recognize some of the characteristics of this art form in the sections given below, and also take a look at some of the marvels of this art form.

Characteristics of Representational Art

Statuettes Portraying Representational Art

Antique Greek Sculpture Depicting

Antique Greek Sculpture Depicting Representational Art

Apollo's Statue

Apollo’s Statue

Figurine Showing Representational Art

Figurine Showing Representational Art

Venus of Willendorf

Venus of Willendorf

Drawings/Paintings Portraying Representational Art

Ancient Cave Paintings

Ancient Cave Paintings

Ancient Stone Painting

Ancient Stone Painting

The Last Supper Painting

The Last Supper Painting

Woman's Painting - Representational Art

Woman’s Painting – Representational Art

Memories of Corfu Painting

Memories of Corfu Painting

Aerial View Of a Bay

Aerial View Of a Bay

A representational artist is an observer. He executes and reflects in his art form, what he sees through his eyes and captures in his mind. But, a room for discretion is always left, wherein he alters with the actual object. Thus, representational art is correlated to observation.

Representational art has within its ambit an imagery, which is brought about with the help of mental process of representation. The minimum requirement for this type of art is a piece of object, which could be replicated.

Figurative art is an important characteristic of representational art. The word in itself is an explanation of the characteristic; i.e., it is influenced by a figure. In fact, this is the most important characteristic because without this, the art would not retain its meaning.

Some of the key features that figurative art has to take account of is the correct usage of elements such as the combination of light and shade, color of the object, and the tone. As it is the replication of the figurines, therefore, the piece must highlight the same to the maximum.

The characteristic feature of representational art is based on the viewpoint of a single focus, unlike representational art which follows no clear distinct focus.

What we mean by a single focus is that the artist tries to view the object from a single viewpoint so that his replication is closest to the original.

Edward Hopper was an enthusiast of representational art. He is considered as one of the best examples of America’s most prominent realistic painters.

A burning example of representational art is Renaissance art. This art form was driven by the principle of humanism. The core belief of humanism was to represent elements that were close to the real life, rather than symbolism. Mona Lisa of the Renaissance period is an example of representational art form.

Fresco and tempera are two great techniques that were highly practiced in representational art. These techniques were used by Florentine artists. Michelangelo was one such Florentine artist.

The influence of industrial revolution on this art form was innate. Depiction of reality, one of the many characteristics of representational art, escalated a peak at that time.

Color in this art form was held at the helm. It was utterly important to depict the object in the same color as seen in reality.

Another noteworthy characteristic of representational art is the impressionist mode of painting. This developed during the period of Impressionism. The point that this method emphasized on is on the use of accurate brush strokes that would define reality in toto.

As far as categorizing representational art is concerned, there isn’t much scope to diversify it into categories and groups. One straight and simple reason for this is that the artist has to cling to his depiction of the object in its true color, form, and texture. There is no room for variation, and hence, varieties would be vague in this context. So, in conclusion, it could be safely said that representational art requires great skills and a strong sense of color, tone, and light, apart from drawing skills.

Like it? Share it!

Get Updates Right to Your Inbox

Further insights.

Tap Into Your Creativity With These DIY Projects

Privacy Overview

Virtual Art Academy

A Guide to Representational Art And How You Can Create Your Own Masterpieces

Joaquin Sorolla

What are the three basic types of art?

Representational art aims to depict real, identifiable objects which can be easily recognized by the viewer.

There are three basic types of art: representational art, abstract art, and non-objective art. All other art styles, such as impressionism, abstract-expressionism, surrealism, and minimalism can be categorized into one of these three types of art.

The word “representational,” when used in art, means that the work represents something that exists in reality; it may be a tree in a landscape, a bird in still life, or a figure in a painting.

definition of representation in art

What is representational art?

If we look back in art history, most of the art that was produced was representational. In fact, representational art has been around since man existed. You can look at cave paintings and immediately recognize animals, birds, flora and fauna, and in some cases you can even identify what kind they are. Before the renaissance, paintings were very flat and one-dimensional, but you could still recognize them as being representational. As painting skills progressed with the development of perspective, shade and light, and the improvements in the quality and availability of oil paints, so paintings became even more realistic.

During the 1800s, artists began to experiment with more impressionistic style art, leaving the viewer’s eye with more work to do to appreciate the subject matter. However, they were still very much representational art works.

Claude Monet Arrival of the Normandy Train, Gare Saint-Lazare

What is abstract art ?

Abstract art was developed from representational art, where the colors, lines, and shapes themselves are the center of the art, and not the subject matter itself. It is not purely representational art, but rather an interpretation of reality.

Abstract art is a recent invention and didn’t appear until the start of the 20th-century. It can be traced back to Impressionism, Post-Impressionism and Cubism. Artists who painted in these styles were the first to realize that you did not need to make a photographic, or realistic, copy of a object or scene.

Abstract painting typically starts with an object that exists in the real world but presents those subjects in a different way. The broad term “abstraction” is defined as the distancing of an idea from its reference. In painting, it means capturing a object without a literal representation of it. One of the best examples of abstract art is Picasso’s “Three Musicians”. When you look at the painting, you can tell the objects are meant to be three individuals with musical instruments, but neither the musicians nor their instruments are depicted in a realistic way.

definition of representation in art

What is non-objective art ?

Non-objective art does not represent any kind of reality at all. Instead, it works with color, texture, and other visual elements. The subject of the painting is not identifiable, as it is far from reality. The best example of a non-objective artist is Jackson Pollock, whose work involved complex splatters of paint.

definition of representation in art

Has representational art disappeared? 

Representational art is the oldest, most well-known, and still the most popular among these three types of painting. Representational art ranges from pure realism, such as the photorealists in the late 1960s, to impressionism in the 1800s, to surrealism in the early 1900s, to fauvism in the turn of the 18th century, and all the way through to cubism, abstraction, and even cave paintings.

Apart from the time that non-objective painting came onto the art scene, all paintings were based on some kind of realism. In the 20th and early 21st century, there were many contemporary artists who delved more into abstraction, expressionism, and other forms of less realistic art. One of the most recognizable expressionist painting is The Scream, by Edvard Munch.

The Scream by Edvard Munch

However in the 1980s there was a big move back to creating more representation art, and current artists are beginning to research the old-master skills that were lost when they stopped teaching them in universities around the world.

Thankfully there were still artists creating representational art who knew how to capture subject matter in the way of the old masters, and luckily we have their paintings, books, students, and other resources to teach us their skills. Also, while the western world were experimenting with new art forms and styles, the Russians and Chinese were still learning old master skills in their universities, and they continued to paint in a representational manner. Now we have their resources to bring those old master skills into current day art.

definition of representation in art

Some Russian and Chinese artists to look at are, Valentin Serov , Isaac Levitan, Konstantin Korovin, Nicolai Fechin, Bato Dugarzhapov , Sergei Bongart, Ovanes Berberian, Jove Wang, Quang Ho, Mian Situ and Huihan Liu.

Flowers, by Bato Dugarzhapov

In the 1900s, there were several groups of artists working in California who were following the representational art traditions. They painted in an impressionistic style, and mostly plein air (the would complete the painting outdoors). When contemporary art came into fashion, the California artists work was no longer popular, and so their paintings weren’t selling. In the 1980s, people realized they were losing a major part of art history, and seeing how inexpensive their paintings were, started snatching them up. Now some of them are worth millions of dollars. Most of these plein air painters came from the East, the Midwest and Europe, where they were influenced by the French Impressionists.

Some of the more prominent artists of the time were: William Wendt (1865–1946), Granville Redmond (1871–1935), Edgar Payne, Armin Hansen (1886–1957), Franz Bischoff (1864–1929), and William Ritschel (1864–1949).

'Monterey Coast' by William Ritschel

Nowadays, representational art has exploded as an art form again, all over the world. In galleries and museums where you once only saw modern art, now you can see paintings that have evolved and created a new modern art genre.

Who can help me to create my own representational art?

painting landscapes using color pairs

Since 2003, the Virtual Art Academy has been helping artists worldwide to build and expand their painting skills. The VAA is built around a framework of nine skill  Building Blocks ™. The information in these Building Blocks was gathered during over 25 years of research by Barry John Raybould: reading out-of-print books written by master artists, attending workshops of artists who were taught the old master traditions, and trawling the internet for any little snippet that he could add to the extensive eLibrary and lessons.

Over the four-year course of our Apprentice Program you will learn all the key skills in every one of these nine Building Blocks.

The proof that this method works is the fact that Barry John has received many awards for his representational art, his paintings are in museums and many homes around the world, and he now has thousands of students who have gone through his online lessons and live workshops and are now achieving their own accolades.

It doesn’t matter which form of representational art you want to follow, the VAA will teach you all the principles so that you can develop your own style, in any medium you wish to use.

Add comment

Cancel reply.

Save my name, email, and website in this browser for the next time I comment.

A University Experience

Learn about my structured and comprehensive online painting classes.

Want More Free Tips?

GET MY FREE TIPS NOW

Subscribe YouTube

  • Barry’s Paintings
  • Artist Magazine
  • Alumni Paintings

HELP & SUPPORT

  • Members Login
  • Privacy & Security
  • Pochade Box Reviews
  • Plein Air Easel Reviews
  • Best Online Painting Classes: Virtual Art Academy Reviews
  • Oil Paints for Beginners
  • Plein Air Painting
  • Pochade Boxes
  • Plein Air Easels
  • Painting Landscapes
  • Atmospheric Perspective
  • Critiquing Art

jerwoodvisualarts.org

Symbolic Representation in Art – Definition, Examples, History & More – Art Education and Methodologies Glossary

Table of Contents

What is Symbolic Representation in Art?

Symbolic representation in art refers to the use of symbols, images, or objects to convey deeper meanings or ideas within a work of art. These symbols can be cultural, religious, political, or personal in nature, and are often open to interpretation by the viewer.

Symbolic representation allows artists to communicate complex concepts or emotions in a visual language that transcends words. It adds layers of meaning to a piece of art, inviting viewers to engage with the work on a deeper level and uncover hidden messages or themes.

History of Symbolic Representation in Art

The use of symbolic representation in art dates back to ancient civilizations, where symbols were used to communicate ideas, beliefs, and stories. In Egyptian art, for example, the Ankh symbolized life, while the Eye of Horus represented protection and healing.

During the Renaissance, artists like Leonardo da Vinci and Michelangelo incorporated symbolic elements into their works to convey religious or philosophical ideas. The use of symbols continued to evolve in the Baroque and Romantic periods, with artists like Caravaggio and William Blake using symbolism to express emotion and spirituality.

Techniques of Symbolic Representation in Art

There are various techniques artists use to incorporate symbolic representation into their work. One common technique is the use of allegory, where objects or figures represent abstract concepts or moral qualities. For example, a dove may symbolize peace, while a snake could represent evil.

Another technique is the use of color symbolism, where certain colors are used to evoke specific emotions or ideas. In Western art, for example, red is often associated with passion or danger, while blue is linked to tranquility or spirituality.

Examples of Symbolic Representation in Art

One famous example of symbolic representation in art is Leonardo da Vinci’s “The Last Supper,” where the placement of figures and objects conveys the betrayal of Jesus by Judas. The use of light and shadow in Caravaggio’s paintings also adds symbolic depth to his work, highlighting themes of redemption and salvation.

In more contemporary art, artists like Frida Kahlo and Salvador Dali used symbolism to explore personal struggles and political issues. Kahlo’s self-portraits, for example, often feature symbolic elements like monkeys or thorns to convey her emotions and experiences.

Importance of Symbolic Representation in Art

Symbolic representation plays a crucial role in art by adding layers of meaning and depth to a work. It allows artists to communicate complex ideas or emotions in a visual language that is accessible to a wide audience. Symbolism also invites viewers to engage with a piece of art on a deeper level, encouraging them to think critically and interpret the work in their own unique way.

By using symbols, artists can create universal connections with viewers, transcending language and cultural barriers. Symbolic representation in art helps to bridge the gap between the artist’s intentions and the viewer’s understanding, fostering a deeper appreciation and connection to the work.

Contemporary Use of Symbolic Representation in Art

In contemporary art, symbolic representation continues to be a powerful tool for artists to explore complex themes and ideas. Artists like Ai Weiwei and Kara Walker use symbolism to address social and political issues, sparking conversations and raising awareness about important topics.

Symbolic representation is also used in multimedia art forms, such as video installations and performance art, where artists combine visual, auditory, and tactile symbols to create immersive experiences for viewers. This multidimensional approach to symbolism allows artists to engage with audiences in new and innovative ways, pushing the boundaries of traditional art forms.

JerwoodVisualArts

Hundreds of articles, guides and free resources

Email: [email protected]

Follow Us !

Copyright © 2024 All Rights Reserved

Privacy policy

Cookie Policy

Encyclopedia Britannica

  • History & Society
  • Science & Tech
  • Biographies
  • Animals & Nature
  • Geography & Travel
  • Arts & Culture
  • Games & Quizzes
  • On This Day
  • One Good Fact
  • New Articles
  • Lifestyles & Social Issues
  • Philosophy & Religion
  • Politics, Law & Government
  • World History
  • Health & Medicine
  • Browse Biographies
  • Birds, Reptiles & Other Vertebrates
  • Bugs, Mollusks & Other Invertebrates
  • Environment
  • Fossils & Geologic Time
  • Entertainment & Pop Culture
  • Sports & Recreation
  • Visual Arts
  • Demystified
  • Image Galleries
  • Infographics
  • Top Questions
  • Britannica Kids
  • Saving Earth
  • Space Next 50
  • Student Center

Adolf Hitler (Nazi, nazism, German leader).

representation

Learn about this topic in these articles:.

Edmund Burke

…word about , is sometimes called representation—a term that owes its currency in aesthetics to Croce and Collingwood, who used it to draw the familiar contrast between representation and expression.

Chinese visual arts

ceremonial hu

…was the emergence of a representational art form, a departure from the ritualized depiction of fanciful and usually isolated creatures of the Shang and early to middle Zhou that is evident in the bronzes of this period. In decorating ceremonial objects, artists began to depict the ceremonies themselves, such as…

Kara Walker: A Subtlety, or the Marvelous Sugar Baby

…most important of these is representation. Before the 20th century, sculpture was considered a representational art, one that imitated forms in life, most often human figures but also inanimate objects, such as game, utensils, and books. Since the turn of the 20th century, however, sculpture has also included nonrepresentational forms.…

Modes of Representation - Art Exhibition

Exhibit dates:.

September 8, 2015 - October 2, 2015

About the Exhibit

An Introduction by H. Michael Sanders

The term "representation" suggests a type of description or portrayal of someone or something. In the visual arts this implies that the art object depicts something other than or outside itself. In some cases the mode of representation is iconic and relies on ideas or symbols. Other modes of representation include the spectrum of "realism" ranging from photorealism to expressionistic realism, all of which attempt to portray subjects from real life in both physical and metaphysical ways (sensory and affective). Then, there is the mode of abstract representation that is derived from formal considerations, and often seeks to depict subjects that are not purely physical (non-objective, ephemeral, fleeting, spiritual and pataphysical), often relying on aspects of symbolism and theory. Overlaying these three main modes of representation are hosts of "-isms" after which many movements in the art world derive their names: realism, naturalism, illusionism, idealism, romanticism, surrealism and countless others.

In this exhibition, artists Jeremy Long, Nicole Trimble and Elijah Van Benschoten explore a wide range of representational strategies, all of which revolve around creating visceral, intimate worlds that reach far beyond mere reproduction of subjects in the physical world. While they differ in style, media and inspiration, all three of these artists are engaged in active investigations of the fertile intersection between concrete reality and eternal flux, from whence a surprising, instinctive sense of poetry emerges into compelling visual form.

Jeremy Long's work, deeply involved in exploration of the human figure, simultaneously evokes both the quiet tensions of external, familial relationships and the constant, introspective pull of private, personal experience that bristles at the root of our everyday lives. Nicole Trimble explores her own introspective tensions in the existential synapse bridging objective reality and subjective, personal experience in works that are simultaneously fluid and static, and which function as amorphous looking glasses reflecting thought and idea onto physical form and sensation. The intense technique and work ethic evident in Elijah Van Benschoten's drawings contrasts curiously with the wacky pop culture references and Dadaistic humor of their titles. This contrast underscores and helps to fuel the persistent tension between interior experience and exterior reality running freely through the work.

By bringing these various approaches to visual representation together, and allowing them to interact with one another within the confines of the gallery, it is hoped that the viewer will be able to discern how a wide range of techniques and artistic interests can converge on the same poetic well-spring to illuminate, and perhaps entertain, as well as depict both the objective and subjective worlds that we concurrently inhabit.

About The Artists

Jeremy long.

Jeremy Long is an American painter who is an exponent of the Figurative movement in painting, specifically Post Abstract Figuration. He was born in Chicago, Illinois and studied with a number of leading American painters, including Gabriel Laderman, Stanley Lewis and Wilbur Niewald at The Kansas City Art Institute.

After graduation from The Kansas City Art Institute, he returned to Chicago where he co-founded the Streeterville Gallery, at 864 N. Wabash, with fellow alumni. Following six months in Rome to paint landscapes, Long was accepted into the Painting program at American University in Washington, D.C. where he earned his MFA working closely with Stanley Lewis and visiting artist Richard Ryan. Long has exhibited in NYC, Chicago IL, Washington DC, and St. Louis MO.

Long has taught at Knox College, Assumption College, Ithaca College and is currently an Associate Professor at Wright State University in Dayton, Ohio.

Study for Ithaca Summer (2013), Jeremy Long

Artist's Statements

Tackling the problems of creating paintings as spatial worlds rather then mere images is of interest to me. This can also be thought of as advocating thoughtfulness over excitement, or poetic meaning over novelty. The quality of light, the visceral geometry of space in depth and as a pattern on the surface in the paintings reinforces these concerns. Painting that is based on conviction and perpetual doubt is also of interest to me. The goal, as I see it, is to create an ordered, harmonious vision and on the other hand to understand that everything seen is relative.

2. Study for Ithaca Summer, oil on paper, 18” x 26” (2013)

Work in Exhibition

  • Ithaca Summer, oil on canvas, 72” x 96” (2013)
  • Study for Ithaca Summer, oil on paper, 18” x 26” (2013)
  • Study for Ithaca Summer, oil on paper, 10” x 14” (2013)

View a more extensive collection of Jeremy Long's artwork.  If you would like to know more about any of his work, you may contact him at  [email protected] .

Nicole Trimble

Nicole Trimble is an Ohio-based artist and educator with a studio practice grounded in painting and observation of the human figure. Her work has been exhibited in galleries throughout the United States and in publications such as Studio Visit and Professional Artist Magazine. She holds a BFA in painting and printmaking from Miami University, and an MFA from the University of Cincinnati's College of DAAP. She currently lives and works in Cincinnati, Ohio.

I am focused on capturing the flux, rifts, and shifts between interior mental spaces and exterior physicality. Within these paintings I'm exploring routes to expose this intermediary space and my meanderings through it, making it material and tactile for the viewer. I attempt to create work that capture sensations more than rendering likenesses, using the human body and its artifacts as sites of common sensual and affective occurrences to engage viewers in this shared experience.

Central to the creation of these works are my own experiences with anxiety and feelings of cerebral discord - including causation and effect, potential triggers and eventual outcomes. I choose images that speak to my psychological quirks and impulses; that pictorialize a state of dissettlement or unease. By aggregating acutely rendered imagery with passages of more impulsive and visceral paint handling, I seek to make visible the spectrum of sensations at play, from manic and frenzied energy, to quiet and stillness, ultimately collapsing the spaces between.

Elements of self-examination and introspection lie at the core of my work, but it is not my intent for the imagery to be viewed directly as self-portraiture or as solely personal. Rather, I want viewers to be active in their perceptual responses to the imagery, and to draw connections between it and their own experiences. These paintings are my attempt to outline the sometimes tenuous and turbulent connection between one's interior and exterior environments - acknowledging both the unique experience of the individual and universality of the sensation.

1. The Catch, oil on canvas, 48” x 36” (2013)

  • The Catch, oil on canvas, 48” x 36” (2013)
  • Muddled 1, oil on canvas, 34” x 40” (2012)
  • Muddled 5, oil on panel, 32” x 42” (2013)
  • Muddled 4, oil on canvas, 20” x 16” (2013)
  • Shift, oil on canvas, 40” x 36” (2013)
  • Clutter, oil on canvas, 20” x 32” (two parts) (2014)
  • Clutter 2, oil on canvas, 18” x 24” (2015)
  • Clutter 3, oil on canvas, 12” x 24” (2015)
  • Garbage Heap, acrylic & oil on polyester canvas, 36” x 48” (2015)
  • The Pile, oil on canvas, 36” x 48” (2015)
  • Two, oil on canvas, 20” x 32” (two parts) (2015)
  • The Fold, oil on canvas, 16” x 20” (2015)

View a more extensive collection of Nicole Trimble's artwork.  If you would like to know more about any of her work, you may contact her at  [email protected] .

Elijah Van Benschoten

As a painter, drawer, printmaker, and photographer, Elijah Van Benschoten maintains a vigorous multidisciplinary studio practice as well as an active college teaching career. Elijah recently completed 1,000 consecutive days of producing at least one drawing per day and 1,000 consecutive days of color study works. Currently, he is over 500 days into a new challenge of 1,000 days of figure study. His work has been shown in galleries and museums across fifteen states and on two continents. In 2003, Elijah earned a BFA in Painting from Siena Heights University and an MFA in painting from Syracuse University in 2006. Originally a Michigan native, Elijah has taught at various schools in New York, South Dakota, Nebraska, Kentucky, Michigan, and Ohio. He currently resides in Cincinnati where he teaches at Miami University and online with South Dakota State University.

Artist's Statement

For the general public, art is a lot like vegetables. We know that we're supposed to have them in our diet, but few actually do or know why they should. Often, we'll eat a loaded baked potato, such as Thomas Kinkade, and feel good about it. But that usually ends up doing more harm than good. With my work, I lure you in with a chocolate-chip cookie title, and then spoon-feed you broccoli.

Everybody needs a hook, right? So my recent titles are inspired by Buzzfeedesque headlines, with a little Dada influence. Some of my recent work incorporates a mix of pop culture homage to the greats of art history, such as a meme face in place of the lone figure in Caspar David Friedrich's Monk by the Sea.

Visually, my work is very much rooted in love of traditional paint and materials. Landscapes are a source of great inspiration for me as they have the potential for so much symbolism. I've also dedicated myself to daily art practice since August 12, 2008. The first thousand days were spent producing at least one drawing a day, then a thousand more of color study, and now I'm on to the human figure. I've reached a point in my life where I choose to make art that pleases me and maybe also makes me laugh. This feels a lot more meaningful than anything else I could be doing right now.

1. Adair, charcoal on paper, 7" x 11" (2011)

  • Adair, charcoal on paper, 7" x 11" (2011)
  • Carpenter, charcoal on paper, 7" x 6.5" (2010)
  • Fears II, charcoal on paper, 6" x 8" (2009)
  • Grand Army of the Republic: Homecoming,  charcoal on paper, 12.5" x 14" (2012)
  • Grand Army of the Republic: Liberation,  color pencil on paper, 8" x 10" (2012)
  • Grand Army of the Republic: Separation,  color pencil on paper, 10" x 8" (2012)
  • Grand Army of the Republic: Tides,  color pencil on paper, 5" x 9" (2012)
  • Lebanon II, charcoal on paper, 3" x 7" (2010)
  • Saint Andrew IV, charcoal on paper, 4" x 9" (2010)
  • Which Muppet Baby is your soulmate? I , charcoal on paper, 5.5" x 5.5" (2015)
  • Which Muppet Baby is your soulmate? II , charcoal on paper, 6" x 5" (2015)
  • Which Muppet Baby is your soulmate? III , charcoal on paper, 5" x 6.Elijah Van5" (2015)
  • The worst 11 food to get stuck in your teeth,  charcoal on paper, 10" x 12" (2015)
  • 12 restaurants in Georgia to try before you die,  charcoal on paper, 9.5" x 15" (2015)
  • 19 things only teenagers in the Paleolithic era will remember, charcoal on paper, 11" x 7" (2015)

View a more extensive collection of Elijah Van Benschoten's artwork.  If you would like to know more about any of his work, daily artwork updates are available on Facebook, Twitter, Tumblr and Instagram  @evanbens.

Acknowledgements

The UC Blue Ash Art Gallery is supported by the Office of the Dean and the departments of Art & Visual Communication and Electronic Media Communications. This exhibition and publication is also supported, in part, by the University of Cincinnati Research Council. Gallery publications are edited by H. Michael Sanders and designed by Michael Ziepfel.

  • Getting Around UC Blue Ash

Contact Information

Phone: 513-936-1712 Email: [email protected]

Ways of Defining Art

ThoughtCo / Kaley McKean

  • Art History
  • Architecture

definition of representation in art

  • MLA, Harvard Graduate School of Design

There's no universal definition of visual art, though a consensus has emerged that art is the conscious creation of something beautiful or meaningful using skill and imagination. The definition and perceived value of works of art have changed throughout history and in different cultures. For example, The Jean Basquiat painting that sold for $110.5 million at Sotheby’s auction in May 2017 would, no doubt, have had trouble finding an audience in Renaissance Italy .  

The term “art” is related to the Latin word “ars” meaning, art, skill, or craft. The first known use of the word art is revealed in 13th-century manuscripts. However, the word and its many variants ( artem , eart , etc.) have probably existed since the founding of Rome.

Philosophy of Art

The definition of art has been debated for centuries among philosophers. "What is art?” is the most basic question in the philosophy of aesthetics, which essentially means, “How do we determine what is defined as art?” This implies two subtexts: the essential nature of art and its social importance (or lack thereof). Art's definition generally falls into three categories: representation, expression, and form .

  • Art as Representation or Mimesis.  Plato  first developed the idea of art as “mimesis,” which, in Greek, means copying or imitation. For this reason, the primary meaning of art was, for centuries, defined as the representation or replication of something beautiful or meaningful. Until roughly the end of the eighteenth century, a work of art was valued based on how faithfully it replicated its subject. This definition of "good art" has had a profound impact on modern and contemporary artists; as Gordon Graham writes, “It leads people to place a high value on very lifelike portraits such as those by the great masters— Michelangelo , Rubens, Velásquez, and so on—and to raise questions about the value of ‘modern’ art—the cubist distortions of Picasso , the surrealist figures of Jan Miro, the abstracts of Kandinsky  or the ‘action’ paintings of Jackson Pollock.” While representational art still exists today, it's no longer the only measure of value.
  • Art as Expression of Emotional Content.  Expression became important during the Romantic movement with artwork expressing a definite feeling, as in the sublime or dramatic. Audience response was important—the artwork was intended to evoke an emotional response. This definition holds true today, as artists look to connect with and evoke responses from their viewers.
  • Art as Form .    Immanuel Kant (1724–1804) was one of the most influential early art theorists toward the end of the 18th century. He believed that art shouldn't have a concept but instead find merit only in its formal qualities because the content of a work of art isn't of aesthetic interest. Formal qualities became particularly important when art moved into abstraction in the 20th century, and the principles of art and design (balance, rhythm, harmony, unity) were used to define and assess art.

Today, all three categories come into play in determining art's definition and value, depending on the artwork.

History of How Art Is Defined

According to H.W Janson, author of the classic art textbook, The History of Art , “...we cannot escape viewing works of art in the context of time and circumstance, whether past or present. How indeed could it be otherwise, so long as art is still being created all around us, opening our eyes almost daily to new experiences and thus forcing us to adjust our sights?”

Throughout the centuries in Western culture—from the 11th century through the end of the 17th century—people defined art as anything done with skill as the result of knowledge and practice. This meant that artists honed their craft, learning to replicate their subjects skillfully. The epitome of this occurred during the Dutch Golden Age when artists were free to paint in all sorts of genres and made a living off their art in the robust economic and cultural climate of 17th-century Netherlands.

During the Romantic period of the 18th century, as a reaction to the Enlightenment and its emphasis on science, empirical evidence, and rational thought, art began to be described as not just being something done with skill, but something also created in the pursuit of beauty and to express the artist’s emotions. Nature was glorified, and spirituality and free expression were celebrated. Artists achieved a level of notoriety and were often guests of the aristocracy.

The Avant-garde art movement began in the 1850s with the realism of Gustave Courbet. Avante-garde was followed by other modern art movements such as cubism , futurism, and surrealism , in which the artist pushed the boundaries of ideas and creativity. These represented innovative approaches to art-making and the definition expanded to include the idea of the originality of vision.

The idea of originality in art persists, leading to more genres and manifestations of art, such as digital art, performance art, conceptual art, environmental art, electronic art, etc.

Art-Related Quotes

There are as many ways to define art as there are people in the universe, and each definition is influenced by the unique perspective of that person, as well as by their personality and character.

For example: 

"Art evokes the mystery without which the world would not exist." - Rene Magritte

"Art is a discovery and development of elementary principles of nature into beautiful forms suitable for human use." - Frank Lloyd Wright

"Art enables us to find ourselves and lose ourselves at the same time." - Thomas Merton

"The purpose of art is washing the dust of daily life off our souls." - Pablo Picasso

"All art is but imitation of nature." Lucius Annaeus Seneca

"Art is not what you see, but what you make others see." - Edgar Degas

"Art is the signature of civilizations." - Jean Sibelius

"Art is a human activity consisting in this, that one man consciously, by means of certain external signs, hands-on to others feelings he has lived through, and that others are infected by these feelings and also experience them." - Leo Tolstoy

Today we consider the earliest symbolic scribblings of mankind to be art. As Chip Walter, of National Geographic , writes about these ancient paintings, “Their beauty whipsaws your sense of time. One moment you are anchored in the present, observing coolly. The next you are seeing the paintings as if all other art—all civilization—has yet to exist...creating a simple shape that stands for something else—a symbol, made by one mind, that can be shared with others—is obvious only after the fact. Even more than the cave art, these first concrete expressions of consciousness represent a leap from our animal past toward what we are today—a species awash in symbols, from the signs that guide your progress down the highway to the wedding ring on your finger and the icons on your iPhone.”

Archaeologist Nicholas Conard posited that the people who created these images “possessed minds as fully modern as ours and, like us, sought in ritual and myth answers to life’s mysteries, especially in the face of an uncertain world. Who governs the migration of the herds, grows the trees, shapes the moon, turns on the stars? Why must we die, and where do we go afterward? They wanted answers but they didn’t have any science-based explanations for the world around them.”

We can think of art as a symbol of what it means to be human, manifested physically for others to see and interpret. Art can serve as a symbol for something tangible, or for a thought, an emotion, a feeling, or a concept. Through peaceful means, art can convey the full spectrum of the human experience. Perhaps that's why it's so important.

  • Graham, Gordon, Philosophy of the Arts, An Introduction to Aesthetics, Third Edition,Routledge, Taylor and Francis Group, New York. 
  • Janson, H. W., History of Art, Harry Abrams, Inc. New York, 1974.
  • Walter, Chip, First artists, National Geographic . January 2015.

Dwyer, Colin. " At $110.5 Million, Basquiat Painting Becomes Priciest Work Ever Sold by a U.S. Artist ." National Public Radio , 19 May 2017.

  • What Is the Definition of 'Medium' in Art?
  • What Is the Definition of Color in Art?
  • The Definition of Shape in Art
  • What Is Texture in Art?
  • What Is the Definition of Non-Objective Art?
  • What Are the Visual Arts?
  • What is the Definition of Contrast in Art?
  • What Is Meant by "Emphasis" in Art?
  • What Is Tone in Art?
  • What Is Appropriation Art?
  • What Is Meant by Impasto in Art?
  • The Element of Space in Artistic Media
  • How the Golden Ratio Relates to Art
  • How Value Is Defined in Art
  • How Is Collage Used in Art?

The ART of Sharing Points-to Analysis (Extended Abstract)

Data-flow analyses like points-to analysis can vastly improve the precision of other analyses, and enable powerful code optimizations. However, whole-program points-to analysis of large Java programs tends to be expensive – both in terms of time and memory. Consequently, many compilers (both static and JIT) and program-analysis tools tend to employ faster – but more conservative – points-to analyses to improve usability. As an alternative to such trading of precision for performance, various techniques have been proposed to perform precise yet expensive fixed-point points-to analyses ahead of time in a static analyzer, store the results, and then transmit them to independent compilation/program-analysis stages that may need them. However, an underlying concern of safety affects all such techniques – can a compiler (or program analysis tool) trust the points-to analysis results generated by another compiler/tool?

In this work, we address this issue of trust in the context of Java, while accounting for the issue of performance. We propose ART : Analysis-results Representation Template – a novel scheme to efficiently and concisely encode results of flow-sensitive, context-insensitive points-to analysis computed by a static analyzer for use in any independent system that may benefit from such a precise points-to analysis. ART also allows for fast regeneration of the encoded sound analysis results in such systems. Our scheme has two components: (i) a producer that can statically perform expensive points-to analysis and encode the same concisely, (ii) a consumer that, on receiving such encoded results (called art work ), can regenerate the points-to analysis results encoded by the art work if it is deemed “safe”. The regeneration scheme completely avoids fixed-point computations and thus can help consumers like static analyzers and JIT compilers to obtain precise points-to information without paying a prohibitively high cost. We demonstrate the usage of ART by implementing a producer (in Soot) and two consumers (in Soot and the Eclipse OpenJ9 JIT compiler). We have evaluated our implementation over various benchmarks from the DaCapo and SPECjvm2008 suites. Our results demonstrate that using ART, a consumer can obtain precise flow-sensitive, context-insensitive points-to analysis results in less than (average) 1% of the time taken by a static analyzer to perform the same analysis, with the storage overhead of ART representing a small fraction of the program size (average around 4%).

1. Introduction

One of the salient features of Java is portability. Programs written in Java are compiled once by their respective static compilers to a platform-independent intermediate language (bytecode). Once statically compiled, these programs may then be analyzed by independent program analysis tools, or executed on platform-specific Java Virtual Machines (JVMs) that use just-in-time (JIT) compilers to generate optimized native code specific to the target platform. Such two-step compilation processes bring in unique opportunities and interesting challenges.

For example, the time spent in JIT compilation is considered a part of the execution time of the program as a whole, as the JIT compilation is performed at runtime. Thus, it is essential that the time spent in JIT compilation is not prohibitively high as this could render such JIT compilers unusable in practice. A direct impact of such a restriction is that all the JIT compilers in popular Java virtual machines (like Eclipse OpenJ9  (IBM, 2017 ) , the HotSpot JVM  (Paleczny et al . , 2001 ) , Jikes RVM  (Alpern et al . , 2005 ) , among others) avoid complex fixed-point-based iterative data-flow analyses (for example, inter-procedural points-to analysis) and instead utilize imprecise analyses in the form of approximations and heuristics. Any optimizations performed by the JIT compilers based on such imprecise points-to analysis results tend to be less effective. In summary, these JIT compilers end up sacrificing analysis precision for execution efficiency.

There have been prior works that make precise points-to analyses results available to the JIT compiler without negatively impacting its performance, by using various staged analysis  (Ali, 2014 ; Serrano et al . , 2000 ; Sharma et al . , 1998 ; Thakur and Nandivada, 2019b ) . In most such techniques, a producer (static compilation) stage bears the cost of expensive points-to analysis and makes the results of the analysis available to the consumer (JIT compiler); this information may even be transmitted over the wire. The consumer, in turn, simply reads the obtained results, and uses them when needed after making any necessary (non-expensive) adaptations. However, owing to the remote and independent nature of the consumer, two important challenges exist: 1. Ensuring safety – given that the virtual machine is an independent (and possibly remote) system, how does it ensure that the results of an obtained expensive points-to analysis are safe to use? Note that the analysis results may have been tampered by a malicious producer. Since the requirement of sound analysis results is non-negotiable for JIT compilers, production JVMs cannot “just trust” the static analysis results as they are. Since there is no existing way for such a consumer to trust the analysis results, at this time, it is not common in practice for a production JIT compiler to consume static analysis results from outside. Further, if such a JIT compiler wants to consume externally-sourced static analysis results, then having some sort of inexpensive verification scheme is essential.

2. Ensuring transmission efficiency – for a large program (where an expensive points-to analysis has the most benefit), the artifacts of an analysis can potentially be huge. Since any such artifacts have to be transmitted to the JVM along with the bytecode, it effectively increases the size of the executable and is thus considered an overhead that impacts portability. Further, reading large-sized artifacts may impact the performance of the JIT compiler negatively.

Similar to the impact on JIT compilers, the precision of many useful static analyses and optimizations (for example, Function Inlining  (Dean et al . , 1995 ) , Stack Allocation  (Whaley and Rinard, 1999a ) , Common Sub-expression Elimination  (Muchnick, 1997 ) , and so on) can be directly improved by employing more precise points-to analyses. In a typical static analysis workflow, points-to analysis may need to be run on a program as a pre-pass. Attempting to use a precise fixed-point-based points-to analysis in each of these analyses may result in an unacceptable analysis-time overhead. Inspired by the staged compilation discussion above, one can envisage a scenario where a producer performs an expensive analysis once and stores the results in a persistent store. These results may be read by later consumers (independent static analysis/compiler tools) to obtain/use the analysis results efficiently. However, the same concerns of safety and transmission efficiency hold in this scenario as well.

Refer to caption

We now use an example to illustrate these challenges by using an optimizing compiler as a consumer. Consider the Java program snippet shown in Fig.  2 . Analyzing the code manually, we can see that after the loop body is executed, at Line  11 , the field c.f may point-to one of the three different objects (of two different types – F1 or F2 ). Determining this fact precisely requires precise points-to analysis results, which in turn requires expensive fixed-point computations. To avoid such performance overheads in the consumer, say we use staged analysis: we can use a static analyzer to perform expensive points-to analysis (for example, flow-sensitive) and transmit the results to the consumer. Such a flow-sensitive analysis would rightly indicate that at Line  11 , c.f may point to objects of two types. Say, these analysis results were tampered with to indicate that at Line  11 , c.f points to a single object. If the consumer uses this tampered information, then it may lead to optimizations or analysis-results that are not semantics-preserving. For example, if there is a call statement c.f.bar() after Line  11 , then the call may be erroneously inlined by the function inliner of the optimizing compiler.

We can also see the challenges related to transmission efficiency: a naive scheme that supports flow-sensitive points-to analysis, and transmits the flow-sensitive information at each program-point, will lead to potentially high space and time overheads. These issues of safety and transmission efficiency can also be observed in programs with function calls and recursion.

In the context of inter-procedural analysis, considering the scalability (space and time) issues arising in context-sensitive analysis  (Smaragdakis and Balatsouras, 2015 ) , context-insensitive analysis provides a middle ground, compared to a fully intra-procedural analysis. In this article, we propose a scheme to encode context-insensitive points-to analysis results for Java programs to enable inter-stage transmission in a manner that addresses both the issues discussed above. We add flow-sensitivity to maintain increased precision  (Thakur and Nandivada, 2019b ; Anand et al . , 2024 ) without much performance trade-offs. We term our proposed scheme ART ( Analysis-results Representation Template ).

At its core, given a flow-sensitive, context-insensitive points-to analysis result generated by a producer (say, a static analyzer), ART prescribes a small subset of representative information that is enough to encode the results of the whole analysis for efficient transmission to a consumer. We call this encoded information the art work for the given analysis and program. In addition, the information selected for encoding by ART is such that it allows the consumer to not only establish the safety of the received art work , but also very efficiently regenerate the complete points-to analysis results encoded by this received art work , if found safe.

There have been works that augment code in ways that enable verification of the code’s safety during execution. TAL (Typed Assembly Language  (Morrisett et al . , 1999 ) ) is one such example where assembly code is type-checked to certify the code, which can be used in systems where code must be checked (before execution) for untrusted and potentially malicious behavior. Similarly, PCC (Proof-carrying code  (Necula, 1997 ) ) is a novel mechanism where a host system can ascertain whether it is safe to execute a program provided by an untrusted source. In PCC, the producer of the untrusted code must supply – along with the code – a safety proof that attests to the code’s adherence to a previously agreed upon safety policy. These works have led to further research targeting different languages and domains  (Dickerson et al . , 2019 ; Schwaab et al . , 2019 ; Beyer et al . , 2022 ) . Starting from Java 6, the JVMs support StackMapTable  (Lindholm et al . , 2014 ) attributes, using which the static compiler can communicate type information to JVMs, which can be modularly verified and used to perform type checking of Java applications. Our technique of ART is similar in spirit, wherein ART uses a fundamental property of the underlying (points-to) analysis to establish its safety at the consumer end, but novel in that it applies the safety reasoning to points-to analysis results. To the best of our knowledge there is no prior work that caters to sharing of points-to analysis results in a safe and efficient manner.

The design of ART is based on the underlying properties of fixed-point computations. Given an art work , for an analysis A 𝐴 A italic_A and program P 𝑃 P italic_P , the consumer makes exactly one pass over the statements of the whole-program and regenerates the complete points-to analysis results at each program-point by using the information present in the art work , thereby avoiding any fixed-point computation. In the process, it establishes the safety of the art work , by checking that the received art work is consistent with the results regenerated by the consumer. We define the notion of safety for any art work and give a guarantee that for a given program P 𝑃 P italic_P and a points-to analysis A 𝐴 A italic_A , the results regenerated from a safe art work matches the underlying fixed-point results.

To summarize the different approaches discussed above: compared to the performance-centric systems (that avoid expensive fixed-point computation based analyses) and precision-centric systems (that perform expensive fixed-point computations to ensure high precision), the staged analysis supported systems discussed before  (Ali, 2014 ; Serrano et al . , 2000 ; Sharma et al . , 1998 ; Thakur and Nandivada, 2019b ) provide both precision and efficiency, but at the cost of soundness. In contrast, ART helps us obtain highly precise points-to results, without performing any fixed-point computation, while guaranteeing the soundness of the obtained results.

In this paper, we describe ART for flow-sensitive, context-insensitive points-to analysis of Java programs. However, we believe that the discussed concepts can be extended to flow-sensitive, context-sensitive points-to analysis, as well as, any flow-sensitive, context-(in)sensitive iterative data-flow analysis, for any Java-like languages.

Contributions   ∙ ∙ \bullet ∙ We propose ART, an efficient scheme for a producer to concisely encode the results of whole program flow-sensitive, context-insensitive points-to analysis, for Java programs; this encoded result is termed art work . ∙ ∙ \bullet ∙ We propose a scheme that a consumer may employ to efficiently regenerate the originally encoded whole-program points-to analysis results from the given art work , while ensuring safety. Our scheme is accompanied by a correctness argument. ∙ ∙ \bullet ∙ We demonstrate the usage of ART by instantiating two consumers (one in the Soot framework, and one in the Eclipse OpenJ9 JIT compiler) that share a common producer (implemented in Soot). ∙ ∙ \bullet ∙ We evaluate our implementation over various benchmarks from the DaCapo and SPECjvm2008 suites. The evaluation shows that ART enables a consumer to obtain and gainfully use previously unattainable precise flow-sensitive points-to analysis results without making the consumer’s execution time prohibitively high, while addressing the issues of safety, and transmission efficiency.

2. Background

In this section, we provide a brief description of some background material relevant to this paper.

Recursive call-site . Consider a call-graph with cycles (due to recursion). A call-site that corresponds to an edge in the cycle of a call-graph, is a recursive call-site. For example, if main calls foo , foo calls bar , and bar calls foo . The call-sites of the latter two calls are considered recursive call-sites.

Points-to Analysis. Points-to analysis is a program-analysis technique that can establish which storage locations (or objects) are pointed to by which pointers (or reference variables). We use a points-to graph (similar to Thakur and Nandivada ( 2019b ) ) to represent the points to information. A points-to graph G ⁢ ( V , E ) 𝐺 𝑉 𝐸 G(V,E) italic_G ( italic_V , italic_E ) consists of (i) a set V 𝑉 V italic_V of nodes representing the variables and abstract objects in the program; and (ii) a set E ⊆ ( V × V ) ∪ ( V × 𝙵𝚒𝚎𝚕𝚍𝚜 × V ) 𝐸 𝑉 𝑉 𝑉 𝙵𝚒𝚎𝚕𝚍𝚜 𝑉 E\subseteq(V\times V)\cup(V\times{\tt Fields}\times V) italic_E ⊆ ( italic_V × italic_V ) ∪ ( italic_V × typewriter_Fields × italic_V ) of edges representing the points-to relationships among the nodes in the program. An edge ( a , O x ) 𝑎 subscript 𝑂 𝑥 (a,O_{x}) ( italic_a , italic_O start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT ) from a reference variable a 𝑎 a italic_a to a node O x subscript 𝑂 𝑥 O_{x} italic_O start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT in a points-to graph implies that the variable a 𝑎 a italic_a may point to the object O x subscript 𝑂 𝑥 O_{x} italic_O start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT . Similarly, an edge  ( O x , f , O y ) subscript 𝑂 𝑥 𝑓 subscript 𝑂 𝑦 (O_{x},f,O_{y}) ( italic_O start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_f , italic_O start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT ) from node O x subscript 𝑂 𝑥 O_{x} italic_O start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT to O y subscript 𝑂 𝑦 O_{y} italic_O start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT with a label f 𝑓 f italic_f implies that O x . f formulae-sequence subscript 𝑂 𝑥 𝑓 O_{x}.f italic_O start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT . italic_f may point to O y subscript 𝑂 𝑦 O_{y} italic_O start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT . Statically, we represent an object on the heap by an abstract-object O l subscript 𝑂 𝑙 O_{l} italic_O start_POSTSUBSCRIPT italic_l end_POSTSUBSCRIPT where l 𝑙 l italic_l is a label indicating the line number of the program where the object is allocated.

In this paper, we use a pictorial representation of points-to graphs to illustrate points-to information at various program statements. In a points-to graph, we use dotted lines to represent edges between a reference variable and a heap object, and solid lines to represent edges between heap objects. For example, Fig.  2 shows the points-to graph at Line  8 of the program-snippet shown in Fig.  2 , after completing the fixed-point points-to analysis.

Iterative Data Flow Analysis (IDFA). An iterative data-flow analysis is defined over lattice ℒ ℒ \mathcal{L} caligraphic_L , and a set of flow-equations (or, transfer functions) that establishes the relationship between data-flow values. Flow-sensitive context-insensitive points-to analysis is typically encoded as an IDFA, where the goal is to compute the points-to graph after each statement. At each iteration of analysis, the information flowing in to a node (called the IN-value of that node) is transformed, by applying the flow-equation of the node, into information flowing out of it (called the OUT-value of that node). This evaluation of flow-equations continues in an iterative manner until the points-to information at each node stabilizes (that is, reaches a fixed-point ). For a program P 𝑃 P italic_P , we say that the result R 𝑅 R italic_R of a points-to analysis A 𝐴 A italic_A is the fixed-point result for A 𝐴 A italic_A , if R 𝑅 R italic_R satisfies all the flow-equations of A 𝐴 A italic_A . Naturally, given an analysis A 𝐴 A italic_A and a program P 𝑃 P italic_P , there may be many fixed-point results for P 𝑃 P italic_P that individually satisfy all the flow-equations of A 𝐴 A italic_A . However, P 𝑃 P italic_P will have a single least fixed-point result for A 𝐴 A italic_A . In the context of points-to analysis in this paper, the lattice is the power-set of abstract objects, the ⊥ bottom \bot ⊥ element is represented by the set of all the abstract objects, ⊤ top \top ⊤ is represented by the empty set, and the meet operator is given by the set union operator.

In context-insensitive analysis, the summary of points-to information flowing into a procedure is known as the IN-flow (or IN-summary) of the procedure; and upon completion of analysis of a procedure, the summary of the information flowing out of it back to the call-site is called its OUT-flow (or OUT-summary). At a call-site, computing the information flowing in to a callee varies based on the underlying analysis. In general, it involves taking a projection of the IN-value of the call-site with respect to the portion of heap reachable from the actual arguments of the function call. We encode this process by a macro project-in . Similarly, we use a macro project-out to propagate the points-to information from the Exit node of any procedure back to the call-site. We note that the specific mechanism of doing this does not weigh in on our technique, and so we do not delve into it in this paper.

Comparison of points-to information. Given two instances of points-to information I 1 subscript 𝐼 1 I_{1} italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and I 2 subscript 𝐼 2 I_{2} italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT represented by points-to graphs G 1 subscript 𝐺 1 G_{1} italic_G start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and G 2 subscript 𝐺 2 G_{2} italic_G start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT respectively, we say: that I 1 subscript 𝐼 1 I_{1} italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is “equal to” or “matches” I 2 subscript 𝐼 2 I_{2} italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT if G 1 subscript 𝐺 1 G_{1} italic_G start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = G 2 subscript 𝐺 2 G_{2} italic_G start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT . Similarly, we say that I 1 subscript 𝐼 1 I_{1} italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT “subsumes” I 2 subscript 𝐼 2 I_{2} italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT (represented as I 1 ≽ I 2 succeeds-or-equals subscript 𝐼 1 subscript 𝐼 2 I_{1}\succcurlyeq I_{2} italic_I start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≽ italic_I start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) if G 2 subscript 𝐺 2 G_{2} italic_G start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is a subgraph of G 1 subscript 𝐺 1 G_{1} italic_G start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT .

3. ART: Analysis-results Representation Template for Java Programs

As discussed in Section  1 , since the producer and the consumer of points-to analysis results can be independent systems, the consumer needs a way to check that the obtained analysis results are sound with respect to the program under consideration. In this section, we discuss an encoding scheme called ART to (i) efficiently encode a summary of the points-to analysis computed by a producer, and (ii) quickly regenerate the sound analysis results represented by the encoding (if the encoding is found to be safe) in a consumer. In this scheme, the encoding is efficient in that it avoids sending the complete analysis results, but includes minimal information that can be used by the consumer to regenerate the analysis results (termed as the efficiency-goal of the producer ). Similarly, at the consumer site, the analysis results are generated quickly in the sense that it does not require any fixed-point computation (called the efficiency-goal of the consumer ). We term any given instance of ART for a program P 𝑃 P italic_P and analysis A 𝐴 A italic_A as the art work for P 𝑃 P italic_P and A 𝐴 A italic_A .

Before we present our proposed scheme, we first state our basic assumptions about the producer and the consumer: For a given program P 𝑃 P italic_P and a fixed-point computation based points-to analysis A 𝐴 A italic_A , (i) the consumer needs the results for A 𝐴 A italic_A , but cannot afford to compute it from scratch, (ii) the producer makes available an art work purported to be that for P 𝑃 P italic_P and A 𝐴 A italic_A , and (iii) the consumer can access that art work . In Section  5 , we discuss a relaxation of this assumption, where the producer and consumer may not refer to the same points-to analysis. Further, the consumer expects the following two soundness and completeness guarantees: (i) unsound analysis results will never be marked as sound, and (ii) sound analysis results will always be marked as sound.

For ease of exposition, we will first discuss ART in the context of intra-procedural flow-sensitive points-to analysis and then extend it to handle inter-procedural points-to analysis (in Section  3.4 ). In this paper, we will use a notion of safety given by the following definition.

Definition 3.1.

Given an intra (inter) procedural iterative-data-flow points-to analysis A 𝐴 A italic_A , and a program P 𝑃 P italic_P , we say that an intra (inter) procedural art work is safe for P 𝑃 P italic_P , with respect to A 𝐴 A italic_A , if it encodes a sound intra (inter) procedural points-to analysis result of P 𝑃 P italic_P satisfying the transfer functions of A 𝐴 A italic_A .

3.1. Design of Intra-procedural ART

During intra-procedural flow-sensitive points-to analysis, it is well understood that computing the points-to information for statements inside loops involve fixed-point computation and hence is more expensive (compared to statements outside the loops). On the other hand, for a statement that is not inside a loop, its OUT can be computed, without needing any fixed-point computation, if we have the OUT of its topologically sorted predecessors. We use this understanding to design ART.

The intuition behind the design of ART is that it should only carry information that would otherwise be expensive to compute, and the consumer must be able to use this information to regenerate the encoded analysis. To understand the minimal information that needs to be included in ART, consider the results realized at the end of a flow-sensitive points-to analysis for a procedure. These results include the OUT for each statement. Say we have the control-flow graph (CFG)  (Muchnick, 1997 ) of the procedure and the OUT of the Entry node of the procedure is also given. The first instruction of a basic-block is termed a leader  (Muchnick, 1997 ) . Consider a basic-block, whose leader is a loop-header. We can avoid storing the point-to information of all the statements in the basic-block and recompute them without needing any fixed-point computations, if we have the fixed-point OUT of the loop-header. We term such a basic-block whose leader is an Entry node or a loop-header as a key basic-block. For the non-key basic-blocks the IN points-to information of their leaders can be computed simply by taking the meet of the OUTs of their respective predecessors. This IN information can be used to compute the OUT values of the leaders of these non-key basic-blocks; thus the OUT values for such leaders or the statements in their corresponding basic-blocks need not be stored.

To summarize, the OUT information of the leaders of the key basic-blocks can be used to generate the points-to information for all the statements, without needing any fixed-point computation (the exact scheme of regeneration will be discussed in Section  3.2 ).

Since OUT of the Entry node is equal to its IN, which in intra-procedural analysis is initialized to ⊥ bottom \bot ⊥ (see Section  2 ) it need not be stored. In Section  3.4 , we will revisit this point when we discuss how ART deals with inter-procedural analysis.

We use the discussion above to identify the single type of points-to information that ART needs to carry in order to encode intra-procedural points-to analysis:

∙ ∙ \bullet ∙ Loop-Invariants: A loop-invariant encodes the fixed-point OUT of a loop-header. We denote the collection of all such loop-invariants using a map ℐ l ⁢ o ⁢ o ⁢ p : L → G : subscript ℐ 𝑙 𝑜 𝑜 𝑝 → 𝐿 𝐺 \mathcal{I}_{loop}:L\rightarrow G caligraphic_I start_POSTSUBSCRIPT italic_l italic_o italic_o italic_p end_POSTSUBSCRIPT : italic_L → italic_G , where L 𝐿 L italic_L is the set of labels of all the loop-headers and G 𝐺 G italic_G is the set of all possible OUTs.

Example. For the program snippet shown in Fig.  2 , ART would need to encode only the OUT values corresponding to the loop-header s 8 subscript 𝑠 8 s_{\ref{ln:moti-ex-loop-start}} italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT . For each program P 𝑃 P italic_P , the list of such encodings (program-points and the corresponding OUT values) is called an instance of ART, represented as A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ . We use A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ l ⁢ o ⁢ o ⁢ p formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑙 𝑜 𝑜 𝑝 ART\langle P\rangle.\mathcal{I}_{loop} italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_l italic_o italic_o italic_p end_POSTSUBSCRIPT to refer to the loop-invariant map of A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ . The contents of A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ l ⁢ o ⁢ o ⁢ p ⁢ [ s 8 ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑙 𝑜 𝑜 𝑝 delimited-[] subscript 𝑠 8 ART\langle P\rangle.\mathcal{I}_{loop}[s_{\ref{ln:moti-ex-loop-start}}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_l italic_o italic_o italic_p end_POSTSUBSCRIPT [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] for the program snippet in Fig.  2 are shown in Fig.  2 .

We would like to highlight that while the traditional data-flow analyses  (Muchnick, 1997 ) generate the most precise fixed-point result, in general, there can be many fixed-point results (and hence loop-invariants) for a given loop. And each of them can be a valid instance of ART encoding for that loop. Thus a program can have many valid instances of ART, each of which encodes/corresponds to a sound point-to analysis result for that program.

3.2. Regeneration Of Sound Intra-procedural Analysis

We will now present a technique to regenerate the sound intra-procedural points-to analysis for a program P 𝑃 P italic_P , using the given instance A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ , such that the generated points-to results match the points-to results encoded by A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ . For ease of understanding, in this section, we assume that the A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ is safe (Definition  3.1 ). In Section  3.3 , we discuss how to verify the safety of the given A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ .

Our scheme ensures that the consumer analyzes each statement of M 𝑀 M italic_M exactly once. For an iterative data-flow analysis like points-to analysis, a statement needs to be reanalyzed only when its IN-value changes during the course of the analysis (which happens only if the OUT of at least one of its predecessors changes). We avoid the reanalysis by ensuring that the fixed-point OUTs of all the predecessors of each statement are obtained before the statement is analyzed. This required ordering can be ensured by visiting each basic-block and each statement within the basic-block in order by ignoring the back-edges (Loops starting at Lines  1 and  1 , Fig.  1 ). As discussed in Section  3.1 for the Entry node of M 𝑀 M italic_M , the OUT-value is set to ⊥ bottom \bot ⊥ . The fixed-point OUTs of the leaders of the key basic-blocks are obtained from ART (Line  1 ). For each such statement s 𝑠 s italic_s , OUT ⁢ [ s ] OUT delimited-[] 𝑠 \text{\rm OUT}[s] OUT [ italic_s ] can be computed given the OUTs of all its predecessors and the relevant transfer function f s subscript 𝑓 𝑠 f_{s} italic_f start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT (Line  1 ). Note that since there is an agreement between the producer and the consumer on the specific points-to analysis to use, both of them use the same transfer function f s subscript 𝑓 𝑠 f_{s} italic_f start_POSTSUBSCRIPT italic_s end_POSTSUBSCRIPT , for each statement s 𝑠 s italic_s . The method call checkForIntraSafety will be used to check the safety of the obtained ART and is discussed in Section  3.3 .

Complexity. In our proposed scheme, we process each statement exactly once, that is O ⁢ ( N ) 𝑂 𝑁 O(N) italic_O ( italic_N ) , where N 𝑁 N italic_N is size of the program. If the cost of any transfer function is O ⁢ ( g ⁢ ( N ) ) 𝑂 𝑔 𝑁 O(g(N)) italic_O ( italic_g ( italic_N ) ) , then the complexity of our regeneration scheme is O ⁢ ( N × g ⁢ ( N ) ) 𝑂 𝑁 𝑔 𝑁 O(N\times g(N)) italic_O ( italic_N × italic_g ( italic_N ) ) . In contrast, a typical flow-sensitive, context-insensitive points-to analysis may process the statements up to O ⁢ ( N 3 ) 𝑂 superscript 𝑁 3 O(N^{3}) italic_O ( italic_N start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ) times and incurs a cost of O ⁢ ( N 3 × g ⁢ ( N ) ) 𝑂 superscript 𝑁 3 𝑔 𝑁 O(N^{3}\times g(N)) italic_O ( italic_N start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT × italic_g ( italic_N ) ) .

Example. Consider the snippet shown in Fig.  2 . We use s i subscript 𝑠 𝑖 s_{i} italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT to refer to the CFG node for line i 𝑖 i italic_i and f i subscript 𝑓 𝑖 f_{i} italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT to denote the transfer function used by the producer to perform flow-sensitive intra-procedural points-to analysis, for s i subscript 𝑠 𝑖 s_{i} italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT . The transfer functions used by the producer can be classified into three categories based on the type of the node: (i) the Entry node: OUT [ 𝙴𝚗𝚝𝚛𝚢 ] = ⊥ delimited-[] 𝙴𝚗𝚝𝚛𝚢 bottom [{\tt Entry}]=\bot [ typewriter_Entry ] = ⊥ . (ii) a node s i subscript 𝑠 𝑖 s_{i} italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT with a single predecessor p i subscript 𝑝 𝑖 p_{i} italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT : OUT [ s i ] = f i ⁢ ( OUT ⁢ [ p i ] ) delimited-[] subscript 𝑠 𝑖 subscript 𝑓 𝑖 OUT delimited-[] subscript 𝑝 𝑖 [s_{i}]=f_{i}(\mbox{OUT}[p_{i}]) [ italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ] = italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( OUT [ italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ] ) . (iii) a node s i subscript 𝑠 𝑖 s_{i} italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT with multiple predecessors 𝒫 𝒫 \mathcal{P} caligraphic_P : OUT [ s i ] = f i ⁢ ( ⊓ p ∈ 𝒫 OUT ⁢ [ p ] ) delimited-[] subscript 𝑠 𝑖 subscript 𝑓 𝑖 subscript square-intersection 𝑝 𝒫 OUT delimited-[] 𝑝 [s_{i}]=f_{i}(\sqcap_{p\in\mathcal{P}}\mbox{OUT}[p]) [ italic_s start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ] = italic_f start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( ⊓ start_POSTSUBSCRIPT italic_p ∈ caligraphic_P end_POSTSUBSCRIPT OUT [ italic_p ] ) . For example, for the snippet in Fig.  2 , we use the constraint, OUT ⁢ [ s 8 ] ← f 8 ⁢ ( OUT ⁢ [ s 7 ] ⁢ ⨅ OUT ⁢ [ s 10 ] ) ← OUT delimited-[] subscript 𝑠 8 subscript 𝑓 8 OUT delimited-[] subscript 𝑠 7 ⨅ OUT delimited-[] subscript 𝑠 10 \text{\rm OUT}[s_{8}]\leftarrow f_{8}(\text{\rm OUT}[s_{7}]\bigsqcap\text{\rm OUT% }[s_{10}]) OUT [ italic_s start_POSTSUBSCRIPT 8 end_POSTSUBSCRIPT ] ← italic_f start_POSTSUBSCRIPT 8 end_POSTSUBSCRIPT ( OUT [ italic_s start_POSTSUBSCRIPT 7 end_POSTSUBSCRIPT ] ⨅ OUT [ italic_s start_POSTSUBSCRIPT 10 end_POSTSUBSCRIPT ] ) . Note that the constraints to generate OUTs for the statements at Lines  8 - 10 require a fixed-point computation to obtain a solution.

The consumer first initializes OUT ⁢ [ entry ] OUT delimited-[] entry \text{\rm OUT}[\texttt{entry}] OUT [ entry ] to ⊥ bottom \bot ⊥ . Except for OUT ⁢ [ s 8 ] OUT delimited-[] subscript 𝑠 8 \text{OUT}[s_{\ref{ln:moti-ex-loop-start}}] OUT [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] , the constraints to compute the remaining OUTs are exactly the same as that used by the producer. For s 8 subscript 𝑠 8 s_{\ref{ln:moti-ex-loop-start}} italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT , the consumer simply uses the constraint: OUT ⁢ [ s 8 ] ← f 8 ⁢ ( ℐ l ⁢ o ⁢ o ⁢ p ⁢ [ s 8 ] ) ← OUT delimited-[] subscript 𝑠 8 subscript 𝑓 8 subscript ℐ 𝑙 𝑜 𝑜 𝑝 delimited-[] subscript 𝑠 8 \text{OUT}[s_{\ref{ln:moti-ex-loop-start}}]\leftarrow f_{\ref{ln:moti-ex-loop-% start}}(\mathcal{I}_{loop}[s_{\ref{ln:moti-ex-loop-start}}]) OUT [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] ← italic_f start_POSTSUBSCRIPT end_POSTSUBSCRIPT ( caligraphic_I start_POSTSUBSCRIPT italic_l italic_o italic_o italic_p end_POSTSUBSCRIPT [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] ) . It can be seen that none of the constraints used by the consumer have cyclic dependencies and hence need no further fixed-point computation.

Thus, with the assistance of ART, the consumer has regenerated intra-procedural points-to analysis results for the whole procedure without needing any fixed-point computations; this matches the results generated by the producer.

3.3. Safety of Intra-procedural ART

𝑖 𝑘 i+k italic_i + italic_k ( k ≥ 1 𝑘 1 k\geq 1 italic_k ≥ 1 ) times will not alter the computed points-to information for any statement in that loop.

Refer to caption

Example. Let the art work in Fig.  2 be non-conservatively tampered by removing the edge ( O 6 , O 3 ) subscript 𝑂 6 subscript 𝑂 3 (O_{6},O_{3}) ( italic_O start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) . Fig.  3 shows the steps taken by regenIntra (Fig.  1 ) for the loop-header and the loop-body in Fig.  2 : The algorithm sets OUT ⁢ [ s 8 ] OUT delimited-[] subscript 𝑠 8 \text{\rm OUT}[s_{\ref{ln:moti-ex-loop-start}}] OUT [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] to the tampered ART (Fig.  3(a) ). Fig.  3(b) shows the OUT computed for statement s 9 subscript 𝑠 9 s_{9} italic_s start_POSTSUBSCRIPT 9 end_POSTSUBSCRIPT (and s 10 subscript 𝑠 10 s_{10} italic_s start_POSTSUBSCRIPT 10 end_POSTSUBSCRIPT ). After computing OUT ⁢ [ s 10 ] OUT delimited-[] subscript 𝑠 10 \text{\rm OUT}[s_{10}] OUT [ italic_s start_POSTSUBSCRIPT 10 end_POSTSUBSCRIPT ] , checkForIntraSafety () (Fig.  2 ) processes the back-edge ( s 10 , s 8 ) subscript 𝑠 10 subscript 𝑠 8 (s_{10},s_{8}) ( italic_s start_POSTSUBSCRIPT 10 end_POSTSUBSCRIPT , italic_s start_POSTSUBSCRIPT 8 end_POSTSUBSCRIPT ) and finds that the value of n ⁢ e ⁢ w ⁢ O ⁢ u ⁢ t 𝑛 𝑒 𝑤 𝑂 𝑢 𝑡 newOut italic_n italic_e italic_w italic_O italic_u italic_t (Fig.  3(c) ) does not match p ⁢ r ⁢ e ⁢ v ⁢ O ⁢ u ⁢ t 𝑝 𝑟 𝑒 𝑣 𝑂 𝑢 𝑡 prevOut italic_p italic_r italic_e italic_v italic_O italic_u italic_t (Fig.  3(a) ). This leads to the assertion failure at Line  2 , and establishes that the given art work has been non-conservatively tampered with and is thus unsafe to use.

Note: It is simply a coincidence in the above example that n ⁢ e ⁢ w ⁢ O ⁢ u ⁢ t 𝑛 𝑒 𝑤 𝑂 𝑢 𝑡 newOut italic_n italic_e italic_w italic_O italic_u italic_t matches the non-tampered art work (Fig.  2 ). In general, this may not hold. For example, say the tampering removed ( O 4 , O 3 ) subscript 𝑂 4 subscript 𝑂 3 (O_{4},O_{3}) ( italic_O start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) and ( O 6 , O 5 ) subscript 𝑂 6 subscript 𝑂 5 (O_{6},O_{5}) ( italic_O start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT ) edges in addition to ( O 6 , O 3 ) subscript 𝑂 6 subscript 𝑂 3 (O_{6},O_{3}) ( italic_O start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) , then n ⁢ e ⁢ w ⁢ O ⁢ u ⁢ t 𝑛 𝑒 𝑤 𝑂 𝑢 𝑡 newOut italic_n italic_e italic_w italic_O italic_u italic_t will contain ( O 4 , O 3 ) subscript 𝑂 4 subscript 𝑂 3 (O_{4},O_{3}) ( italic_O start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) and ( O 6 , O 5 ) subscript 𝑂 6 subscript 𝑂 5 (O_{6},O_{5}) ( italic_O start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT ) , but not ( O 6 , O 3 ) subscript 𝑂 6 subscript 𝑂 3 (O_{6},O_{3}) ( italic_O start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) .

3.4. Design of Inter-procedural ART

We will now extend the intra-procedural ART introduced in Section  3.1 to handle inter-procedural (context-insensitive) points-to analysis. As discussed in Section  2 , during context-insensitive points-to analysis, a procedure M 𝑀 M italic_M may be analyzed more than once till it reaches fixed-point. Recall that our efficiency-goals (Section  3 ) require that we process each statement exactly once during the regeneration of the points-to results by the consumer. By extension, this also requires that we analyze any given method exactly once, while ensuring that the computed/generated point-to information at each program-point in that method is valid across all the calls to that method. Hereafter, we use points-to IN/OUT information to indicate the context-insensitive points-to IN/OUT information.

We first present the intuition behind our proposed approach: Assuming that there is no recursion, using the intra-procedural ART scheme discussed before, given the IN-summary of a procedure M 𝑀 M italic_M , we can regenerate the OUT information for each statement in M 𝑀 M italic_M (without needing any fixed-point computation), provided we have the OUT information for each call-site in M 𝑀 M italic_M . Thus, if we have the IN-summary of every method in the program and we process the methods of the program, in the bottom-up order of the call-graph (leaves first), then we can meet our efficiency-goal of the consumer: for each method M 𝑀 M italic_M , the OUT information at each program-point in M 𝑀 M italic_M (along with the OUT summary of M 𝑀 M italic_M ) can be computed by processing the statements in M 𝑀 M italic_M exactly once. But considering the fact that computing the IN-summary for any method M 𝑀 M italic_M in a context-insensitive analysis involves fixed-point computation, we propose to encode the IN-summary of each non-recursive method in ART.

The above discussed scheme to efficiently compute the OUT for each statement of a function given its IN-summary, encounters a challenge in the case of recursive functions. This is because the OUT of the recursive call-sites (see Section  2 ) in the recursive methods won’t be available even if we process the call-graph nodes in the bottom-up order. This challenge can be addressed if the context-insensitive OUT-summary of each recursive method can be stored (along with the context-insensitive IN-summary) and made available to the consumer to compute the OUT of the corresponding recursive call-site.

We use these two intuitions (for recursive and non-recursive procedures) to propose the addition of the following two types of points-to information to ART, to support context-insensitive inter-procedural points-to analysis of any program P 𝑃 P italic_P .

∙ ∙ \bullet ∙ M in -Invariants : An M in -Invariant encodes the context-insensitive IN-summary of a procedure. We denote the collection of all such in-invariants using a map ℐ i ⁢ n : ℳ → G : subscript ℐ 𝑖 𝑛 → ℳ 𝐺 \mathcal{I}_{in}:\mathcal{M}\rightarrow G caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT : caligraphic_M → italic_G , where ℳ ℳ \mathcal{M} caligraphic_M is the set of all the procedures in P 𝑃 P italic_P and G 𝐺 G italic_G is the set of all possible context-insensitive IN-summaries.

∙ ∙ \bullet ∙ M out -Invariants : An M out -Invariant encodes the context-insensitive fixed-point OUT-summary of a recursive procedure. We denote the collection of all such out-invariants using a map ℐ o ⁢ u ⁢ t : ℳ r ⁢ e ⁢ c → G : subscript ℐ 𝑜 𝑢 𝑡 → subscript ℳ 𝑟 𝑒 𝑐 𝐺 \mathcal{I}_{out}:\mathcal{M}_{rec}\rightarrow G caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT : caligraphic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT → italic_G , where ℳ r ⁢ e ⁢ c subscript ℳ 𝑟 𝑒 𝑐 \mathcal{M}_{rec} caligraphic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT is the set of all recursive procedures (direct and indirect) and G is the set of all possible context-insensitive OUT-summaries.

Note that even though both the IN and OUT-summaries of the recursive procedures are present in the ART of any program P 𝑃 P italic_P , a consumer cannot skip processing these recursive procedures during the regeneration process, since it still needs to (i) compute the OUT for each statement in those methods, and (ii) verify the given IN and OUT-summaries.

Summary of the design of ART. In order to support flow-sensitive, context-insensitive inter-procedural points-to analysis, ART needs to carry three types of points-to information: (a) loop-invariants, (b) in-invariants, (c) out-invariants

Refer to caption

Example. Fig.  5 shows a program snippet with function calls and recursion. The contents of A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ for this program snippet are shown in Fig.  5 . For this program, inter-procedural ART will encode the context-insensitive IN-summary of foo . In addition, since foo is recursive, it will also encode the context-insensitive fixed-point OUT-summary of foo .

3.5. Regeneration Of Sound Inter-procedural Analysis

We will now extend the analysis regeneration scheme discussed in Section  3.2 , to regenerate the sound inter-procedural points-to analysis for a program P 𝑃 P italic_P , using the given instance A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ , such that the generated points-to results match the inter-procedural points-to analysis encoded by A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ . For ease of understanding – similar to the discussion of intra-procedural regeneration in Section  3.2 , we assume that A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ is safe (Definition  3.1 ). In Section  3.6 , we discuss how to verify the safety of the given inter-procedural A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ .

Fig.  3 presents the algorithm for regeneration of sound context-insensitive inter-procedural points-to analysis for the whole program P 𝑃 P italic_P starting from an entry procedure M 𝑀 M italic_M , given A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ . The presented algorithm builds upon the intra-procedural regeneration algorithm presented in Fig.  1 by addressing regeneration in the presence of method calls. We now discuss some of the main differences between the inter-procedural regeneration scheme and the intra-procedural one.

Handling the Entry nodes. Since we are now regenerating inter-procedural points-to analysis, IN of the Entry node will not be ⊥ bottom \bot ⊥ ; it is instead initialized with A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ M ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 ART\langle P\rangle.\mathcal{I}_{in}[M] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] (Line  3 ).

Handling the call-sites. If the statement s 𝑠 s italic_s is a call-site, we resolve the targets of the invocation (Line  3 ). For each such target t 𝑡 t italic_t , if t 𝑡 t italic_t has already been analyzed, we do not re-analyze it. Otherwise, we need to obtain its OUT-summary so we can compute the OUT information for s 𝑠 s italic_s . If s 𝑠 s italic_s is a non-recursive call-site, we recursively invoke regenInter on t 𝑡 t italic_t to analyze it and obtain the OUT-summary. On the other hand, if s 𝑠 s italic_s is a recursive call-site, computing the OUT-value for s 𝑠 s italic_s will involve a fixed-point computation. The consumer avoids this by using the information encoded in A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ , assuming it is safe (Line  3 ). After we have obtained the OUT for each target, we compute OUT ⁢ [ s ] OUT delimited-[] 𝑠 \text{\rm OUT}[s] OUT [ italic_s ] by taking the meet of the OUT-summary of each of the targets (Line  3 ). For the rest of the statements, regenInter follows the same steps as regenIntra . The method calls checkForInSafety and checkForOutSafety will be used to check the safety of the obtained inter-procedural art work and are discussed in Section  3.6 .

Complexity. The complexity of regeneration of sound inter-procedural analysis is exactly the same as that of the intra-procedural analysis (Section  3.2 ).

Refer to caption

For the program snippet shown in Fig.  5 , given the art work shown in Fig.  5 , in Fig.  6 we show some of the important steps taken by regenInter to regenerate the points-to analysis results; we mainly focus on how we compute the points-to information in the presence of function calls. The regeneration process begins at the main procedure, and processes each statement. Fig.  6(a) shows the value of IN ⁢ [ s 7 ] ( = OUT ⁢ [ s 6 ] ) annotated IN delimited-[] subscript 𝑠 7 absent OUT delimited-[] subscript 𝑠 6 \text{IN}[s_{\ref{ln:moti-ex-foo-main}}](=\text{OUT}[s_{\ref{ln:moti-ex-foo-% main-pred}}]) IN [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] ( = OUT [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] ) . To compute OUT ⁢ [ s 7 ] OUT delimited-[] subscript 𝑠 7 \text{OUT}[s_{\ref{ln:moti-ex-foo-main}}] OUT [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] , regenInter needs to process the function foo and obtain its OUT-summary. To do so, regenInter first sets the OUT of the Entry node of foo to ℐ i ⁢ n ⁢ [ 𝚏𝚘𝚘 ] subscript ℐ 𝑖 𝑛 delimited-[] 𝚏𝚘𝚘 \mathcal{I}_{in}[{\tt foo}] caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ typewriter_foo ] (Fig.  6(b) ), obtained from the given ART instance (Fig.  5(a) ) and then processes the statements of foo . At statement s 13 subscript 𝑠 13 s_{\ref{ln:moti-ex-foo-rec}} italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT , which is a recursive call, regenInter uses ℐ o ⁢ u ⁢ t ⁢ [ 𝚏𝚘𝚘 ] subscript ℐ 𝑜 𝑢 𝑡 delimited-[] 𝚏𝚘𝚘 \mathcal{I}_{out}[{\tt foo}] caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ typewriter_foo ] to obtain the OUT-summary of 𝚏𝚘𝚘 𝚏𝚘𝚘 {\tt foo} typewriter_foo and uses it to compute OUT ⁢ [ s 13 ] OUT delimited-[] subscript 𝑠 13 \text{OUT}[s_{\ref{ln:moti-ex-foo-rec}}] OUT [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] (shown in Fig.  6(c) ). On reaching the Exit node of foo , regenInter will return the OUT -summary of foo (Fig.  6(d) ) and use it to compute the OUT ⁢ [ s 7 ] OUT delimited-[] subscript 𝑠 7 \text{OUT}[s_{\ref{ln:moti-ex-foo-main}}] OUT [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] (Fig.  6(e) ) in the main function.

3.6. Safety of Inter-procedural ART

The process of regeneration presented in Section  3.5 assumed that A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ obtained by the consumer is safe. We will now discuss the scenarios where A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ may have been tampered with and how we can establish the safety of A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ . Since the two additional points-to information carried by inter-procedural ART (M in -Invariants and M out -Invariants) are fixed-point values, the discussion on conservative and non-conservative tampering from Section  3.3 also holds here. To recall, any non-conservatively tampered art work is unsafe.

We note that of the two types of points-to information carried in inter-procedural ART, one of them (M in -Invariant) is an IN-value and the other (M out -Invariant) is an OUT-value. As a result, the technique for establishing the safety of each of them has subtle differences – while still using the property of fixed-point values discussed in Section  3.3 . We will now discuss our techniques for establishing the safety of inter-procedural ART.

Refer to caption

Establishing Safety of M in -Invariants . We start with an intuition. Recall from Section  3.4 that an M in -Invariant encodes the context-insensitive IN-summary of a procedure M 𝑀 M italic_M . This means that for a procedure M 𝑀 M italic_M , ℐ i ⁢ n ⁢ [ M ] subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 \mathcal{I}_{in}[M] caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] reflects ( subsumes ) the IN-summary of M 𝑀 M italic_M at each and every one of its call-sites. As a result, processing M 𝑀 M italic_M by setting the IN of M 𝑀 M italic_M ’s Entry node to ℐ i ⁢ n ⁢ [ M ] subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 \mathcal{I}_{in}[M] caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] will result in the regeneration of points-to information that is valid at each and every one of M 𝑀 M italic_M ’s call-sites. In contrast, consider a non-conservatively tampered (see Section  3.3 ) A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ , where the tampering is performed with respect to the ℐ i ⁢ n ⁢ [ M ] subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 \mathcal{I}_{in}[M] caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] entry. In such a case, using A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ M ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 ART\langle P\rangle.\mathcal{I}_{in}[M] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] (at Line  3 , Fig.  3 ) will result in the generation of points-to information (of M 𝑀 M italic_M ) that does not correspond to the fixed-point context-insensitive points-to information of M 𝑀 M italic_M . To establish the safety of A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ M ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 ART\langle P\rangle.\mathcal{I}_{in}[M] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] , we make use of the property of fixed-point values discussed in Section  3.3 . In the producer, if A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ M ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 ART\langle P\rangle.\mathcal{I}_{in}[M] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] reached a fixed-point after analyzing M 𝑀 M italic_M at all of its call-sites, then processing any of those call-sites again in the consumer should not result in any change to the IN-summary of M 𝑀 M italic_M . We use this intuition to define the checkForInSafety method shown in Fig.  4 . On encountering a call-site  s 𝑠 s italic_s invoking a target procedure T 𝑇 T italic_T , checkForInSafety first computes i ⁢ n T 𝑖 subscript 𝑛 𝑇 in_{T} italic_i italic_n start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT by invoking project-in (see Section  2 ) on IN ⁢ [ s ] IN delimited-[] 𝑠 \text{IN}[s] IN [ italic_s ] (Line  4 ). It then asserts that the information carried in A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ M ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 ART\langle P\rangle.\mathcal{I}_{in}[M] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] subsumes i ⁢ n M 𝑖 subscript 𝑛 𝑀 in_{M} italic_i italic_n start_POSTSUBSCRIPT italic_M end_POSTSUBSCRIPT (Line  4 ). This subsumption check is natural (in contrast to an equals check) because A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ M ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 ART\langle P\rangle.\mathcal{I}_{in}[M] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] is supposed to be the meet of the incoming relevant points-to information from all the call-sites (not just the call-site s 𝑠 s italic_s ). If the assertion succeeds, it means that processing M 𝑀 M italic_M by using A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ M ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 ART\langle P\rangle.\mathcal{I}_{in}[M] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] in regenInter will result in the regeneration of points-to information that is valid at call-site s 𝑠 s italic_s . If the assertion fails, it means that A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ M ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 ART\langle P\rangle.\mathcal{I}_{in}[M] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] does not reflect the context-insensitive IN-summary of M 𝑀 M italic_M .

The discussion so far assumed that for any procedure M 𝑀 M italic_M of program P 𝑃 P italic_P , the ℐ i ⁢ n ⁢ [ M ] subscript ℐ 𝑖 𝑛 delimited-[] 𝑀 \mathcal{I}_{in}[M] caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M ] entry exists. But in case the tampering involves the deletion of this entry, then the consumer would not find such an entry in the art work . In such a scenario, on encountering a call-site s 𝑠 s italic_s invoking M 𝑀 M italic_M , regenInter sets a default value for A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ M formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 𝑀 ART\langle P\rangle.\mathcal{I}_{in}{M} italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT italic_M (= project-in (IN[ s 𝑠 s italic_s ], M 𝑀 M italic_M )), before the assertion at Line  4 , in Fig.  4 ; not explicitly shown. Thus, in case the fixed-point context-insensitive OUT-summary of M 𝑀 M italic_M differs from this default value then our above discussed procedure will detect the tampering. And in case they do not differ, then it implies that despite the omission, the ART instance is safe to use; in Section  4 , we will use this observation to optimize the encoding of ART.

Example. Consider the art work shown in Fig.  5 for the program P 𝑃 P italic_P shown in Fig.  5 . As an instance of non-conservative tampering, Fig.  7(a) shows A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ 𝚏𝚘𝚘 ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝚏𝚘𝚘 ART\langle P\rangle.\mathcal{I}_{in}[{\tt foo}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ typewriter_foo ] with edges ( p , O 4 ) 𝑝 subscript 𝑂 4 (p,O_{4}) ( italic_p , italic_O start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ) and ( O 4 , O N ) subscript 𝑂 4 subscript 𝑂 𝑁 (O_{4},O_{N}) ( italic_O start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT ) removed from Fig.  5(a) . When regenInter uses such a tampered ART to analyze foo and reaches the call-site s 13 subscript 𝑠 13 s_{\ref{ln:moti-ex-foo-rec}} italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT , it computes i ⁢ n 𝚏𝚘𝚘 𝑖 subscript 𝑛 𝚏𝚘𝚘 in_{\tt foo} italic_i italic_n start_POSTSUBSCRIPT typewriter_foo end_POSTSUBSCRIPT at Line  4 of checkForInSafety as shown in Fig.  7(b) ; we rediscover the previously removed edge ( p , O 4 ) 𝑝 subscript 𝑂 4 (p,O_{4}) ( italic_p , italic_O start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ) . This causes the assertion on Line  4 to fail, since A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ 𝚏𝚘𝚘 ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝚏𝚘𝚘 ART\langle P\rangle.\mathcal{I}_{in}[{\tt foo}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ typewriter_foo ] does not encode this information. In other words, the tampered A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ 𝚏𝚘𝚘 ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] 𝚏𝚘𝚘 ART\langle P\rangle.\mathcal{I}_{in}[{\tt foo}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ typewriter_foo ] does not reflect the IN-summary of foo , at this call-site, hence unsafe to use.

Establishing Safety of M out -Invariants . We start with an intuition. Recall from Section  3.4 that an M out -Invariant encodes the fixed-point context-insensitive OUT-summary of a recursive procedure M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT . This means that for a recursive procedure M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT , ℐ o ⁢ u ⁢ t ⁢ [ M r ⁢ e ⁢ c ] subscript ℐ 𝑜 𝑢 𝑡 delimited-[] subscript 𝑀 𝑟 𝑒 𝑐 \mathcal{I}_{out}[M_{rec}] caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT ] can be used to compute sound fixed-point OUT values of any of its call-sites. In contrast, consider a non-conservatively tampered (see Section  3.3 ) A ⁢ R ⁢ T ⁢ ⟨ P ⟩ 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 ART\langle P\rangle italic_A italic_R italic_T ⟨ italic_P ⟩ , where the tampering is performed with respect to the ℐ o ⁢ u ⁢ t ⁢ [ M r ⁢ e ⁢ c ] subscript ℐ 𝑜 𝑢 𝑡 delimited-[] subscript 𝑀 𝑟 𝑒 𝑐 \mathcal{I}_{out}[M_{rec}] caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT ] entry. In such a case, using A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ [ M r ⁢ e ⁢ c ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 delimited-[] subscript 𝑀 𝑟 𝑒 𝑐 ART\langle P\rangle.\mathcal{I}_{out}[M_{rec}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT ] (at Line  3 , Fig.  3 ) to compute the OUT value of a recursive call-site s 𝑠 s italic_s (in a procedure M 𝑀 M italic_M ) will result in the generation of points-to information that does not correspond to the fixed-point context-insensitive points-to information of M 𝑀 M italic_M . The technique to establish the safety of A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ [ M r ⁢ e ⁢ c ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 delimited-[] subscript 𝑀 𝑟 𝑒 𝑐 ART\langle P\rangle.\mathcal{I}_{out}[M_{rec}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT ] also makes use of the property of fixed-point values discussed in Section  3.3 . Thus, if A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ [ M r ⁢ e ⁢ c ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 delimited-[] subscript 𝑀 𝑟 𝑒 𝑐 ART\langle P\rangle.\mathcal{I}_{out}[M_{rec}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT ] represents the fixed-point OUT-summary of M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT obtained after analyzing M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT using its context-insensitive IN-summary in the producer, then processing M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT using the same IN-summary ( A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ [ M r ⁢ e ⁢ c ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 delimited-[] subscript 𝑀 𝑟 𝑒 𝑐 ART\langle P\rangle.\mathcal{I}_{in}[M_{rec}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT [ italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT ] ) again in the consumer should not change the OUT-summary of M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT . We use this intuition to define the checkForOutSafety method shown in Fig.  4 .

For each recursive procedure t 𝑡 t italic_t , when the OUT-summary is regenerated by regenInter (when the Exit node of t 𝑡 t italic_t is analyzed by regenInter ), checkForOutSafety asserts that the regenerated OUT-summary of t 𝑡 t italic_t matches A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ [ t ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 delimited-[] 𝑡 ART\langle P\rangle.\mathcal{I}_{out}[t] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ italic_t ] (Line  4 ). This assertion is important as for any recursive procedure t 𝑡 t italic_t , a recursive call-site (see Section  2 ) invoking t 𝑡 t italic_t must have been processed by regenInter before processing the Exit node of t 𝑡 t italic_t , and regenInter must have used A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ [ t ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 delimited-[] 𝑡 ART\langle P\rangle.\mathcal{I}_{out}[t] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ italic_t ] as the required OUT-summary of t 𝑡 t italic_t (at Line  3 , Fig.  3 ), at that call-site.

If the assertion succeeds, it means that the OUT-summary of t 𝑡 t italic_t regenerated by regenInter matches the fixed-point context-insensitive OUT-summary of t 𝑡 t italic_t . Further, this OUT-summary of the procedure t 𝑡 t italic_t can be used to compute the fixed-point OUT points-to information at all of its call-sites. If the assertion fails, it means that A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ [ t ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 delimited-[] 𝑡 ART\langle P\rangle.\mathcal{I}_{out}[t] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ italic_t ] does not reflect the context-insensitive OUT-summary of t 𝑡 t italic_t .

Similar to the discussion about tampering via deletion of an ART entry for the IN-summary, consider the case where the OUT-summary of a recursive procedure M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT has been deleted as part of tampering. In such a scenario, on encountering a recursive call-site s 𝑠 s italic_s invoking M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT , regenInter sets a default value for A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ M r ⁢ e ⁢ c formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 subscript 𝑀 𝑟 𝑒 𝑐 ART\langle P\rangle.\mathcal{I}_{out}{M_{rec}} italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT (= A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ i ⁢ n ⁢ M r ⁢ e ⁢ c formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑖 𝑛 subscript 𝑀 𝑟 𝑒 𝑐 ART\langle P\rangle.\mathcal{I}_{in}{M_{rec}} italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_i italic_n end_POSTSUBSCRIPT italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT ), at Line  3 in Fig.  3 ; not explicitly shown. Thus, in case the fixed-point context-insensitive IN-summary of M 𝑀 M italic_M differs from this default value then our above discussed procedure will detect the tampering. And in case they do not differ, then it implies that despite the tampering, the ART instance is safe to use; in Section  4 , we will use this observation to optimize the encoding of ART.

Refer to caption

Example. Consider the ART instance shown in Fig.  5 for the program P 𝑃 P italic_P shown in Fig.  5 . As an instance of non-conservative tampering, Fig.  8(a) shows A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ [ 𝚏𝚘𝚘 ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 delimited-[] 𝚏𝚘𝚘 ART\langle P\rangle.\mathcal{I}_{out}[{\tt foo}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ typewriter_foo ] with the edge ( O 5 , O 4 ) subscript 𝑂 5 subscript 𝑂 4 (O_{5},O_{4}) ( italic_O start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ) removed from Fig.  5(b) . When regenInter uses such a tampered ART at the call-site s 13 subscript 𝑠 13 s_{\ref{ln:moti-ex-foo-rec}} italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT (that recursively invokes foo ), the computed OUT[ s 13 subscript 𝑠 13 s_{\ref{ln:moti-ex-foo-rec}} italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] is shown in Fig.  8(b) . When the Exit node of foo is eventually processed by regenInter and the OUT-summary of foo is computed (shown in Fig.  8(c) ), we observe that the edge ( O 5 , O 4 ) subscript 𝑂 5 subscript 𝑂 4 (O_{5},O_{4}) ( italic_O start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ) is rediscovered. This causes the assertion at Line  4 (Fig.  4 ) to fail, since A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ [ 𝚏𝚘𝚘 ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 delimited-[] 𝚏𝚘𝚘 ART\langle P\rangle.\mathcal{I}_{out}[{\tt foo}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ typewriter_foo ] does not encode this information. In other words, the tampered A ⁢ R ⁢ T ⁢ ⟨ P ⟩ . ℐ o ⁢ u ⁢ t ⁢ [ 𝚏𝚘𝚘 ] formulae-sequence 𝐴 𝑅 𝑇 delimited-⟨⟩ 𝑃 subscript ℐ 𝑜 𝑢 𝑡 delimited-[] 𝚏𝚘𝚘 ART\langle P\rangle.\mathcal{I}_{out}[{\tt foo}] italic_A italic_R italic_T ⟨ italic_P ⟩ . caligraphic_I start_POSTSUBSCRIPT italic_o italic_u italic_t end_POSTSUBSCRIPT [ typewriter_foo ] does not reflect the fixed-point context-insensitive OUT-summary of foo , and is hence unsafe to use. It is interesting to note that the edge ( O 5 , O 4 ) subscript 𝑂 5 subscript 𝑂 4 (O_{5},O_{4}) ( italic_O start_POSTSUBSCRIPT 5 end_POSTSUBSCRIPT , italic_O start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT ) is missing in OUT [ s 13 ] delimited-[] subscript 𝑠 13 [s_{\ref{ln:moti-ex-foo-rec}}] [ italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT ] , which means that it does not correspond to fixed-point points-to information at s 13 subscript 𝑠 13 s_{\ref{ln:moti-ex-foo-rec}} italic_s start_POSTSUBSCRIPT end_POSTSUBSCRIPT .

3.7. Correctness

We now present a correctness argument of ART in the following context: the consumer has been given an art work , from which the consumer has to either regenerate sound points-to analysis results, or report a safety violation. The consumer uses the algorithm in Fig.  3 to regenerate the points-to analysis results from a given art work . Without the loss of generality, we also assume that the transfer functions used by the consumer are monotonic in nature (monotonically increases).

Informally, the correctness argument can be summarized in three points: (i) if there is no tampering then consumer will regenerate results of same precision as the producer, (ii) if the tampering is non-conservative then the consumer will detect the tampering, and (iii) if the tampering is conservative, then the consumer will regenerate a sound, yet an over-approximation of the non-tampered result. The following two lemmas and corollary formalize the same.

Given a sound iterative-data-flow points-to analysis A 𝐴 A italic_A , if R p ⁢ r ⁢ o ⁢ d subscript 𝑅 𝑝 𝑟 𝑜 𝑑 R_{prod} italic_R start_POSTSUBSCRIPT italic_p italic_r italic_o italic_d end_POSTSUBSCRIPT represents the sound points-to analysis results (for A 𝐴 A italic_A ) encoded by the producer in the art work Ψ Ψ \Psi roman_Ψ , then given Ψ Ψ \Psi roman_Ψ , the consumer will (i) successfully regenerate points-to analysis results (no safety violation error) (ii) and these results will match R p ⁢ r ⁢ o ⁢ d subscript 𝑅 𝑝 𝑟 𝑜 𝑑 R_{prod} italic_R start_POSTSUBSCRIPT italic_p italic_r italic_o italic_d end_POSTSUBSCRIPT , if the consumer uses the same lattice and transfer functions as the producer.

(Proof Sketch.) Since Ψ Ψ \Psi roman_Ψ encodes the results of R p ⁢ r ⁢ o ⁢ d subscript 𝑅 𝑝 𝑟 𝑜 𝑑 R_{prod} italic_R start_POSTSUBSCRIPT italic_p italic_r italic_o italic_d end_POSTSUBSCRIPT (which is given to be sound), the entries in Ψ Ψ \Psi roman_Ψ encode the sound fixed point points-to results of all the critical elements: loop-invariants, in-summaries of all the functions, and out-summaries of recursive functions. We will prove the lemma by contradiction.

Say the consumer either reported a safety violation error, or generated results R ′ superscript 𝑅 ′ R^{\prime} italic_R start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT that does not match R p ⁢ r ⁢ o ⁢ d subscript 𝑅 𝑝 𝑟 𝑜 𝑑 R_{prod} italic_R start_POSTSUBSCRIPT italic_p italic_r italic_o italic_d end_POSTSUBSCRIPT . We will proceed by doing a case analysis.

Consumer reported a safety violation error. It implies that the consumer encountered a violation at the loop-header (loop-invariant violation), or at the function call (in-summary violation), or at the exit point of the function (out-summary violation). This implies that the consumer has discovered some additional information that was not part of the fixed-point solution - a contradiction.

Consumer generated results R ′ ≠ R p ⁢ r ⁢ o ⁢ d superscript 𝑅 ′ subscript 𝑅 𝑝 𝑟 𝑜 𝑑 R^{\prime}\not=R_{prod} italic_R start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ≠ italic_R start_POSTSUBSCRIPT italic_p italic_r italic_o italic_d end_POSTSUBSCRIPT . Note: we (re)generate R ′ superscript 𝑅 ′ R^{\prime} italic_R start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT from Ψ Ψ \Psi roman_Ψ , and the process of regeneration exactly matches that of the original points-to analysis generation scheme (in the producer), except at the three critical elements. Further, the information at the critical elements is directly taken from the that of R p ⁢ r ⁢ o ⁢ d subscript 𝑅 𝑝 𝑟 𝑜 𝑑 R_{prod} italic_R start_POSTSUBSCRIPT italic_p italic_r italic_o italic_d end_POSTSUBSCRIPT . This implies that the R ′ superscript 𝑅 ′ R^{\prime} italic_R start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT must match R p ⁢ r ⁢ o ⁢ d subscript 𝑅 𝑝 𝑟 𝑜 𝑑 R_{prod} italic_R start_POSTSUBSCRIPT italic_p italic_r italic_o italic_d end_POSTSUBSCRIPT . A contradiction.

Hence proved.

Note that the precision of the results obtained by a consumer of ART will naturally depend on the analysis used by the producer.

Given a sound iterative-data-flow points-to analysis A 𝐴 A italic_A , and a program P 𝑃 P italic_P , if Ψ Ψ \Psi roman_Ψ is a non-conservatively tampered points-to analysis results (for the analysis A 𝐴 A italic_A and program P 𝑃 P italic_P ), then the consumer will detect the violation of the safety.

(Proof Sketch.)

Proof by contradiction: say Ψ Ψ \Psi roman_Ψ is a non-conservatively tampered points-to analysis results (for the analysis A 𝐴 A italic_A and program P 𝑃 P italic_P ), and the consumer did not detect the violation of the safety.

By definition of non-conservative tampering, there exist entries (one ore more) in Ψ Ψ \Psi roman_Ψ that do not match the fixed-point values for those entries. It implies that the consumer must find new entries (otherwise, Ψ Ψ \Psi roman_Ψ corresponds to a fixed-point result and does not correspond to a non-conservatively tampered art work ) at one of the critical entries (could be in the tampered entries or untampered ones). It implies that the consumer will find a new value and thus flag a violation of safety - A contradiction.

Corollary 3.4.

Given a sound iterative-data-flow points-to analysis A 𝐴 A italic_A , an art work Ψ Ψ \Psi roman_Ψ , and a program P 𝑃 P italic_P , our proposed scheme will infer a fixed-point solution for the transfer functions in A 𝐴 A italic_A , if Ψ Ψ \Psi roman_Ψ is safe for P 𝑃 P italic_P with respect to A 𝐴 A italic_A , and declare Ψ Ψ \Psi roman_Ψ to be unsafe, otherwise.

Proof follows from Lemmas  3.2 and  3.3 . ∎

4. Optimizations

While the techniques discussed in Section  3 ensure that ART carries only information that is necessary and sufficient for efficient regeneration of the original sounds points-to analysis, we have identified four opportunities to improve the efficacy of ART (in terms of reducing the storage size without compromising on the precision). We discuss these optimizations below. ∙ ∙ \bullet ∙ Encoding of Loop-Invariants. For loops whose body does not contain any statements that affect the heap (for example, in the case of arithmetic loops), the fixed-point OUT-value of the loop-header (and all statements in the loop-body) will be equal to the IN-value of the loop-header. Thus, the emitted ART instance may be optimized to not carry loop-invariants for such loop-headers. During the regeneration phase, if any loop-header i 𝑖 i italic_i has no entry for ℐ l ⁢ o ⁢ o ⁢ p ⁢ [ i ] subscript ℐ 𝑙 𝑜 𝑜 𝑝 delimited-[] 𝑖 \mathcal{I}_{loop}[i] caligraphic_I start_POSTSUBSCRIPT italic_l italic_o italic_o italic_p end_POSTSUBSCRIPT [ italic_i ] in the given ART instance, the consumer will simply use the IN-value of the loop-header as ℐ l ⁢ o ⁢ o ⁢ p ⁢ [ i ] subscript ℐ 𝑙 𝑜 𝑜 𝑝 delimited-[] 𝑖 \mathcal{I}_{loop}[i] caligraphic_I start_POSTSUBSCRIPT italic_l italic_o italic_o italic_p end_POSTSUBSCRIPT [ italic_i ] . We can easily identify such loops by iterating over the loop-body and checking for the absence of reference type instructions. ∙ ∙ \bullet ∙ Encoding of M in -Invariants. Consider a procedure M 𝑀 M italic_M , called from a set 𝒮 𝒮 \mathcal{S} caligraphic_S of call-sites in a program P 𝑃 P italic_P . Say, for each s ∈ 𝒮 𝑠 𝒮 s\in\mathcal{S} italic_s ∈ caligraphic_S , project-in (IN[ s 𝑠 s italic_s ], M 𝑀 M italic_M ) is identical, where IN[ s 𝑠 s italic_s ] represents the fixed-point IN value for s 𝑠 s italic_s . That is, project-in (IN[ s 𝑠 s italic_s ], M 𝑀 M italic_M ) is equal to the context-insensitive IN-summary of M 𝑀 M italic_M . Some of the common scenarios where we encounter such procedures include, procedures invoked only once in a program, static procedures with no arguments, and so on. For such procedures, ART can be optimized by avoiding the overhead of carrying the respective M in -Invariants, and the consumer will use the default value as discussed in Section  3.6 , where we discussed how we handle tampering by deletion of M in -Invariant entries. ∙ ∙ \bullet ∙ Encoding of M out -Invariants. Consider a recursive procedure M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT , in a program P 𝑃 P italic_P . If the context-insensitive OUT-summary of M r ⁢ e ⁢ c subscript 𝑀 𝑟 𝑒 𝑐 M_{rec} italic_M start_POSTSUBSCRIPT italic_r italic_e italic_c end_POSTSUBSCRIPT does not differ from its context-insensitive IN-summary, then for all such procedures, ART can be optimized by avoiding the overhead of carrying the M out -Invariants, and the consumer will use the default value as discussed in Section  3.6 , where we discussed how we handle tampering by deletion of M out -Invariant entries. ∙ ∙ \bullet ∙ Avoiding Duplicate Information. When two ART entries refer to the same points-to information, we can avoid transmitting duplicate information by transmitting just the unique value and using references to the unique entry, wherever required.

5. Discussion

In this section, we discuss some interesting features and observations in the context of ART.

Handling Tampered art work . The producer (the static java compiler like javac , which can have a static analyzer component, or a static analyzer like Soot  (Vallée-Rai et al . , 1999 ) ), will take a Java application as input and emit the art work generated by the static analyzer, along with the bytecode. In case the consumer deduces that the input art work is tampered with (and hence unsafe to use, see Sections  3.3 and  3.6 ) then there are two possible paths it can take: (i) it can throw an error and abort the JIT compilation or analysis being performed by the consumer, or (ii) give a warning, discard all the regenerated points-to analysis results and continue the JIT compilation or analysis like it would in the absence of our technique. For simplicity, we stick to the option (ii). One can also envisage some more strategies between the two paths; such an exploration is beyond the scope of our current manuscript, and we leave it as an interesting future work. Note that a consumer may deduce the art work to be tampered because of an actual tampered art work , or the consumer using a points-to analysis whose flow functions do not “match” that of the producer. art work may also be conservatively tampered in a way that it now encodes overly imprecise results. As discussed in Section  3.3 , ART will admit such results, as they are still sound. A consumer may decide to use some heuristics to ignore such possible highly imprecise results. For example, one such heuristic can be a tunable parameter that sets a “usability threshold”, in the form of the size of any points-to set, or an upper limit on the maximum size of the encoded art work . We leave the exploration of such heuristics as a future work.

No art work transmitted to the consumer. A consumer (JIT compiler) capable of using art work may get a program, without any art work accompanying it. In such a scenario, the consumer can easily recognize the complete absence of art work and not attempt the regeneration process at all. Instead, the consumer continues as it would in the absence of our technique.

Dynamic features of Java and ART. Java allows the programs to change during program execution using features like dynamic class loading (DCL) and hot code replace (HCR). In such a scenario, we have to analyze the art work accompanying the newly loaded code, obtain the points-to information for the newly loaded code, and establish the overall safety of the art work of the whole program. Efficiently maintaining points-to results in the presence of such dynamic features is an interesting future work.

Consumer and producer using a different analysis. The regeneration techniques proposed in Sections  3.2 and  3.5 assumed that the consumer and the producer use the same analysis (that is, the transfer functions and lattice). In the event that the consumer does not know the details about the analysis used by the producer and instead uses an arbitrary points-to analysis, we make the following two observations on the outcome (i) if the constraints used by the consumer during regeneration are more precise than the constraints used by the producer to generate art work , then our technique will regenerate sound points-to analysis for the program; (ii) if the constraints used by the consumer are less precise (that is, more conservative) than the constraints used by the producer, then our technique may identify it as a case of tampering, since the assertions in Figures  2 and  4 may fail. This is expected, as the art work generated by the producer may not include the additional information introduced by the more conservative analysis performed by the consumer.

Threat model. Given a program P 𝑃 P italic_P and an art work X 𝑋 X italic_X , there are two activities that can lead to X 𝑋 X italic_X being considered tampered with: X 𝑋 X italic_X has been tampered with, or P 𝑃 P italic_P has been tampered with. This leads to three scenarios that we consider as part of the threat model: (i) X 𝑋 X italic_X is tampered with, but P 𝑃 P italic_P is not. (ii) P 𝑃 P italic_P is tampered with, but X 𝑋 X italic_X is not. (iii) Both X 𝑋 X italic_X and P 𝑃 P italic_P are tampered with. All these scenarios can be represented by a single scenario that X 𝑋 X italic_X is tampered with respect to P 𝑃 P italic_P , which is the scenario addressed in this manuscript.

Encoding of art work . We use a simple scheme to encode the art work . For each type of information (as discussed in Section  3.4 ) encoded in art work , we emit the corresponding points-to graph (structure discussed in Section  2 ). We represent local variables by using stack slot indices. We represent each abstract object as a tuple containing the method and the program location where the object was allocated.

Handling Composability. Analysis of large real world Java applications with libraries presents two interesting directions of work related to composability. (1) Owing to the large sizes and resulting scalability issues with analysing real world Java applications with libraries, researchers have proposed analyzing them separately in a modular way  (Cousot and Cousot, 2002 ) , and these modular results have been composed (Madhavan et al . , 2015 ; Calcagno et al . , 2011 ; Lattner et al . , 2007 ; Sălcianu and Rinard, 2005 ; Choi et al . , 1999 ; Whaley and Rinard, 1999b ) to realize the analysis results for the whole program. Note that this composition may involve expensive computation. Our proposed scheme can be extended in a way the producer sends the ARTworks for the modular results and the consumer first composes them and then uses the proposed scheme to validate the composed results. The ARTwork for the modular results would have to be extended to maintain the summary information of all the arguments (including the receiver) at all the call-sites, for all the possible calls to the unavailable methods. An important challenge that needs to be addressed in this space is that the composition at the consumer may involve expensive computations and hence may not be suitable where the consumer cannot afford to pay a high cost for obtaining+verifying the analysis results. (2) The runtime libraries may not be available (and different than the libraries present) during static analysis: Thakur and Nandivada ( 2019b ) present a scheme in which the application and the runtime libraries are analyzed independently to produce partial analysis results (without being conservative). These two partial analysis results can be combined during the runtime, without losing precision. Extending the idea of our proposed ART framework to partial analysis results and combining them safely would be quite interesting, but beyond the scope of this paper.

6. Implementation and Evaluation

We have implemented our proposed scheme of ART for Java programs in three parts: (i) the producer component as an extension to the Soot bytecode optimization framework  (Vallée-Rai et al . , 1999 ) , and (ii) a consumer component (termed RegenPTA ) in the form of a Soot-based static analysis that attempts to obtain points-to analysis results for a Java program without paying the cost of fixed-point computations, and (iii) a second consumer component in the Eclipse OpenJ9 JIT compiler  (IBM, 2017 ) , which currently neither performs nor can afford to perform precise, fixed-point based, points-to analysis due to the performance considerations. The producer uses an extension to VASCO  (Padhye and Khedker, 2013 ) to obtain flow-sensitive, context-insensitive points-to information and generate the art work for each input application.

As is the common practice, we use the popular TamiFlex  (Bodden et al . , 2011 ) tool for resolving reflective calls. However, note that our proposed scheme is not restricted by the presence of reflection: given any points-to analysis approach (augmented by Tamiflex or not), our scheme can be used to generate the corresponding art work (by the producer) and regenerate the matching points-to information (by the consumer).

Benchmark .class size (MB) #analyzed methods Artifact Size (KB) Overhead (%)
naive ART naive ART
1. sunflow 1.2 908 275 78 22.38 6.34
2. lusearch 1.6 975 396 88 24.17 5.37
3. luindex 1.3 1280 252 64 18.9 4.81
4. avrora 1.5 2022 489 108 31.8 7.03
5. antlr 1.2 1324 1119 241 91.06 19.61
6. fop 1.9 377 66 14 3.39 0.71
7. pmd 2.0 2103 381 96 18.60 4.68
8. compress 0.47 466 98 19 20.40 3.96
9. sparse 0.47 480 93 18 19.32 3.74
10. sor 0.47 480 94 18 19.53 3.74
11. fft 0.47 485 94 18 19.40 3.72
12. montecarlo 0.47 485 93 17 19.40 3.54
13. lu 0.47 487 95 18 19.66 3.72
geomean 0.85 728 157.89 33.72 18.02 4.22

To experimentally evaluate the proposed ART scheme, similar to the many prior works  (Thakur and Nandivada, 2019b ; Anand et al . , 2024 ; Islam et al . , 2023 ) , we used DaCapo and SPECjvm suites. We chose 13 benchmarks: (i) sunflow, lusearch, luindex and avrora from the DaCapo 9.12-MR1-bach suite  (Blackburn et al . , 2006 ) ; (ii) antlr, fop and pmd from the DaCapo 2006-10-MR2 suite; and (iii) compress, sparse, sor, fft, montecarlo, and lu from SPECjvm2008  (SPECjvm, 2008 ) . The rest of the excluded benchmarks could not be statically analyzed – either by Soot or by TamiFlex 1 1 1 Our prototype implementation makes use of Soot, along with the play-in and play-out agents of Tamiflex, the combination of which has documented issues with large applications  (Github, 2015 , 2018 , 2021 ; Misc, 2019 , 2015 ) . To compensate, where possible, we have instead used corresponding benchmarks from an older version of the benchmark suite. . Our evaluation was performed on a Dell Precision 7920 server, which is a 2.3GHz Intel(R) Xeon(R) Gold 5218 CPU system with 64GB of main memory, running Ubuntu 20.04.1 LTS. Fig.  9 shows some of the static characteristics about the benchmarks used for evaluation; Column 3 shows the size of the portion of each benchmark analyzed by Soot (varied between 0.47 to 2.0 MB) and Column 4 shows the number of statically analyzed methods (varied between 466 to 2103) in each benchmark.

We present an evaluation to empirically establish the following six research questions: (RQ1) How does the regeneration technique compare to the complete analysis in terms of time and precision? (RQ2) Is the proposed scheme able to detect tampering of the generated art work ? (RQ3) What is the cost of regenerating flow-sensitive, context-insensitive analysis during JIT compilation? (RQ4) What is the storage overhead of art work ? (RQ5) What is the effect of the optimizations proposed in Section  4 on the size of art work ? (RQ6) What performance benefits can be realized by regenerating analysis results using art work ?

6.1. Evaluation of the Consumer Components

Refer to caption

We study the consumer components of our technique with respect to efficiency and safety of the regeneration process.

RQ1. How does the regeneration technique compare to complete analysis in terms of time and precision? To answer this question, we compare our regeneration scheme in the consumers against the complete analysis of the producer. Figures  10(a) and  10(b) show the time taken to regenerate the flow-sensitive, context-insensitive points-to analysis results by our regeneration technique in RegenPTA and OpenJ9, respectively, as a percentage of the time taken by the producer to perform the complete analysis. The figure shows that our technique regenerates points-to analysis results by paying an extremely small fraction of the time taken to perform the complete analysis by the producer (0.06% to 2.06%, geomean 0.70% for RegenPTA ; and 0.05% to 1.76%, geomean 0.56% for OpenJ9). Note: since the base compilation times are different, the percentage overheads across the two consumers differs.

As an addition, to show that the points-to analysis results regenerated by the consumer is of equal precision as the results encoded by ART, we compared the OUT-summary regenerated by the consumers for each procedure with the OUT-summary of the same procedure as computed by the producer. These OUT-summaries were found to match for all the procedures analyzed for each program, thus showing that the regenerated points-to analysis results are of equal precision to the complete analysis.

RQ2. Is the proposed scheme able to detect tampering of the generated art work ? To empirically study the safety of the regenerated results, we tested the ability of our consumer component to identify art work that is unsafe to use (that is, non-conservatively tampered). To do this, we randomly identified 10 different elements of art work for each benchmark, and non-conservatively tampered them manually. This process consisted of two steps (1) randomly picking a non-trivial element of art work (i.e., one that isn’t solely composed of summary points-to information), and (2) non-conservatively tampering it. Examples of the performed non-conservative tampering include replacing an object O i subscript 𝑂 𝑖 O_{i} italic_O start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT in the points-to set of a variable or a field, with another object O j subscript 𝑂 𝑗 O_{j} italic_O start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ( i ≠ j 𝑖 𝑗 i\neq j italic_i ≠ italic_j ), reducing the cardinality of a points-to set, and removing a variable or field from a points-to map. We found that for all such tampered art work , the consumer successfully identified the tampering.

RQ3. What is the cost of regenerating flow-sensitive, context-insensitive analysis during JIT compilation? We have found the regeneration scheme is extremely fast (owing to the underlying linear-time algorithm). For example, on average, it takes a couple of milliseconds per procedure across all the benchmarks. To understand its performance relative to the existing JIT compilation time, Fig.  12 shows the per-method average time taken by the regeneration process (includes the time to read the art work from disk and parse it) as a percentage of the on-average per-method JIT compilation time. We see that we are able to obtain precise points-to information (typically a very expensive analysis) as a small fraction (15-35%) of the JIT compilation time. We believe that this is reasonable, considering the fact that JIT compilation itself takes a very small fraction of the total execution time and the possible utility of the regenerated precise points-to analysis results. We believe that our proposed technique clearly overcomes the drawbacks of both the alternatives (of using fast, but highly imprecise heuristics, or precise, but unacceptably slow analysis, as discussed in Section  1 ), while ensuring the analysis is safe to use.

Refer to caption

6.2. Evaluation of the Producer Components

RQ4. What is the storage overhead of art work ? To study the efficiency of our proposed encoding of art work , we define a naive encoding as a dump of the OUT values at each program-point for the whole program, and consider this encoding as a baseline for storage overhead. Fig.  12 shows the size of the art work of each benchmark, as a percentage of the size of this naive encoding. The figure shows that the size of art work , on average, is less than 21% of the size of the naive encoding; with the maximum size of art work being 28.36% of the naive encoding for any benchmark.

Note. The comparison between the sizes of art work and naive encoding was performed after compressing the artifacts of each encoding. Uncompressed, this comparison is observed to favor ART even more. For example, in the case of avrora , uncompressed ART was 1.7MB in size – which is only 10% of the uncompressed naive encoding at 17MB. Compression tends to make this comparison less dramatic due to the presence of similar points-to information at different program-points in the naive encoding, which gets compressed better. However, using such a naive scheme will naturally lead to higher file I/O time because of the handling of larger files.

Refer to caption

We also studied the overhead of our encoding of art work with respect to the size of the .class files analyzed. Fig.  14 shows the overhead of art work as a percentage of the .class file size. We find that the overhead is around 4% of .class files size, on average.

RQ5. What is the effect of the optimizations proposed in Section  4 on the size of art work ? Fig.  14 shows the storage size of the (optimized) art work as a percentage of the size of the art work obtained without applying the optimizations discussed in Section  4 . We observe that the optimized art work is on average, approximately 70% of the size of the unoptimized version (leading to 30% reduction, on average, in the size of the art work ).

We have also observed that the regeneration time using the optimized art work is, on average, approximately 92% of the regeneration time using unoptimized art work (leading to on average 8% reduction in time taken for regeneration); we skipped the graph for brevity. We find the proposed optimizations are effective in reducing the size of the art work and reducing the regeneration time.

6.3. Evaluation of the usability of regenerated analysis results

Refer to caption

RQ6. What performance benefits can be realized by regenerating analysis results using art work ? As discussed in the answer to RQ1, our first consumer RegenPTA is able to very efficiently regenerate the points-to analysis results encoded by art work provided to it after establishing its safety. Due to its high efficiency and the modular nature of Soot analyses, RegenPTA can be used by any Soot pass (analysis/optimization) that needs precise points-to analysis results, without paying the cost of fixed-point computations; Fig.  10(a) gives an indication of the benefits that can be accrued.

Next, to study the impact of efficiently realizing precise points-to analysis results in the Eclipse OpenJ9 JIT compiler, our second consumer, we have used its function inliner as a client and studied the effect. Since fixed-point based points-to analysis is considered expensive, OpenJ9 currently uses the following technique to perform function inlining (i) it first uses the information from a runtime profiler to identify the probabilities of invocation of each potential target of a virtual call, and then (ii) if the probability associated with invoking a particular target is sufficiently high, OpenJ9 inlines that particular target guarded by a runtime check on the type of the receiver of the virtual call. If the type of the receiver at runtime does not match the type that defined the inlined target, then OpenJ9 falls back to the original virtual call. Therefore, in OpenJ9, each inlined call-site takes the form of a conditional statement – with the inlined method forming the body of ‘then-branch’, and the original virtual call the body of the ‘else-branch’. In case of monomorphic calls, as there will always be a singular invocation target, the evaluation of the associated guards is redundant. Removing the corresponding condition-checking code and the else-branch of the conditional-statement can improve the program performance. We leverage this intuition to answer RQ6: we used the points-to analysis results regenerated using our technique to identify such monomorphic calls, inlined those call-sites without any guards, and then studied the impact of such an optimization on the overall execution time. For this experiment, we found that SPECjvm offered very few opportunities for applying this optimization and the gains/overheads were negligible. Thus, we only show the details for the DaCapo benchmarks.

Fig.  15 plots the execution times of the benchmarks using the default OpenJ9, and the OpenJ9 with the enhanced function inliner. With each benchmark we also mention (in the caption) the number of monomorphic calls identified and the number of inlining guards avoided by the enhanced inliner. We see that we were able to use the points-to analysis results regenerated by our technique to identify a large number of monomorphic calls across the benchmarks evaluated. Note that for any given program, the number of inlining guards avoided due to this optimization can be less than the total number of monomorphic calls identified. This is because OpenJ9 may not find all the monomorphic calls profitable to be inlined (decided by OpenJ9 based on factors like caller size, callee size, and so on), and hence inlining is not even attempted for such non-profitable calls.

Since the performance of Java applications varies significantly  (Georges et al . , 2007 ) , across different JVM invocations and iterations, to obtain steady-state performance for Fig.  15 , we used the following evaluation methodology: for each benchmark, we conducted 30 runs, where each run consisted of 99 warmup iterations, and the following iteration was used to measure the execution time. The runs for each benchmark were interleaved to account for systemic bias and impact due to different JVM invocations. As can be seen, the enhanced OpenJ9 is able to reduce execution times for all benchmarks where a non-zero number of inlining guards were avoided. Considering that this improvement is on top of the plethora of other optimizations that OpenJ9 already has, we argue that the gains are significant.

In case of fop , we found that though the enhanced inliner did not reduce any guards, we did not observe much degradation. This attests to the extremely low overheads of regeneration as discussed in the context of RQ3.

Overall summary. Our study shows that the points-to analysis results regenerated using art work are not only usable in practice, but can also result in measurable performance improvements.

7. Related Work

Staged Analysis. There have been prior works that have attempted to reduce JIT compilation overheads due to expensive analyses by leveraging the multi-stage nature of Java compilation. For example  Ali ( 2014 ); Serrano et al . ( 2000 ); Sharma et al . ( 1998 ) have proposed schemes to perform expensive whole-program analyses/optimizations statically for Java, which are then leveraged at runtime to obtain complete analysis/optimized code. Similarly, the PYE framework  (Thakur and Nandivada, 2019b ) performs points-to analysis in a static analyzer and sends along partial summaries representing the analysis to the JIT compiler, where it is augmented with information available at runtime to make it more precise. We note that all these schemes are affected by the same challenges safety and transmission costs discussed in Section  1 , thereby severely impacting their practical usage. Our proposed technique of ART addresses both these issues and can be the first step towards making staged analysis practical.

Points-to Analysis. There have been many papers on points-to/alias analysis, depicting various dimensions of analysis such as flow-sensitivity, context-sensitivity, path-sensitivity, and so on  (Thakur and Nandivada, 2019b ; Dietrich et al . , 2015 ; Sălcianu and Rinard, 2005 ; Tan et al . , 2017 ; Whaley and Rinard, 1999b ) , various avenues for speeding up (Thakur and Nandivada, 2019a , 2020 ; Rama et al . , 2018 ) , and performing optimization specific analysis  (Thakur and Nandivada, 2019b ; Nanda and Sinha, 2009 ; Loginov et al . , 2008 ) , and so on. For our implementation, we have extended the analysis implemented in VASCO  (Padhye and Khedker, 2013 ) to build our static analyzer. Many recent static analysis tools  (Farooq et al . , 2020 ; Lu et al . , 2021 ; He et al . , 2023 ; Ferles et al . , 2022 ; Li et al . , 2018 ) employ SPARK  (Lhoták and Hendren, 2003 ) (which is flow- and context-insensitive, to ensure scalability) as their points-to analysis solution. Deploying ART in these tools can improve their precision by offering flow-sensitive points-to analysis, with little additional cost. Over the years, there has been a rich body of work championing flow-sensitive, context-insensitive points-to analyses  (Whaley and Rinard, 1999b ; De and D’Souza, 2012 ; Toussi and Rasoolzadegan, 2014 ; Woo et al . , 2001 ) . Rather than serve as a replacement for these techniques, ART in fact promotes their adoption by ameliorating the concern of scalability in tools that wish to employ them.

Declarative points-to analyses. Datalog-based points-to analyses (like Doop  (Bravenboer and Smaragdakis, 2009 ) ) are convenient due to the declarative nature of their analysis rules. While this paper discusses ART in the context of IDFA-based points-to analysis, ART isn’t restricted by an IDFA-based producer. We believe that ART can be deployed even in systems where the producer employs a declarative points-to analysis (see prior work  (Grech et al . , 2018 ; Kastrinis and Smaragdakis, 2013 ; Smaragdakis et al . , 2011 ) ) provided the consumer possesses an equivalent set of transfer functions to apply during the regeneration process.

Interactive Proof Systems. A keen reader will note that ART is similar, in spirit, to interactive proof systems like zero-knowledge protocols  (Goldwasser et al . , 1985 ) (ZKPs). While an interesting parallel, we note that they differ fundamentally in both domain and purpose of application. ZKPs are employed in cryptography to convey an awareness (i.e., a proof) of knowledge without actually giving away the knowledge, an interaction motivated by privacy. In contrast, ART is not motivated by privacy, but with efficiently sharing points-to information, along with a proof of its correctness.

8. Conclusion and Future work

This article proposes a scheme called ART that helps Java compilers (both static and JIT) and program analysis tools – termed consumers – obtain highly precise (flow-sensitive, context-insensitive) points-to analysis results in an efficient and safe manner; where such analysis results were hitherto difficult to attain due to performance and safety concerns. Using ART, a consumer can obtain very precise points-to analysis results without prohibitively impacting compilation (or analysis) time or compromising on the safety of the analysis results. We show, via a detailed evaluation, that ART enables the generation of precise and trusted analysis results in consumer systems in a minute fraction of the time (¡1%, on average) required to perform the complete analysis, while adding a very small space-overhead (around 4%, on average) to the bytecode. It would be interesting to extend the proposed ideas to support other dimensions of analyses (for example, call-site-based context-sensitivity, object-sensitivity, path-sensitivity, and so on) and the nuances of other non-Java like languages. For example, supporting context-sensitivity necessitates an efficient encoding in ART to uniquely identify each calling context; and languages like C and C++ may need interesting augmentations to ART to support features like pointer arithmetic, casting and function pointers. We leave such explorations as future work.

Acknowledgements.

  • Ali (2014) Karim Ali. 2014. The Separate Compilation Assumption . Ph. D. Dissertation. University of Waterloo, Waterloo, Canada. https://plg.uwaterloo.ca/~olhotak/pubs/thesis-karim-phd.pdf
  • Alpern et al . (2005) B. Alpern, S. Augart, S. M. Blackburn, M. Butrico, A. Cocchi, P. Cheng, J. Dolby, S. Fink, D. Grove, M. Hind, K. S. McKinley, M. Mergen, J. E. B. Moss, T. Ngo, V. Sarkar, and M. Trapp. 2005. The Jikes Research Virtual Machine project: Building an open-source research community. IBM Systems Journal 44, 2 (2005), 399–417. https://doi.org/10.1147/sj.442.0399
  • Anand et al . (2024) Aditya Anand, Solai Adithya, Swapnil Rustagi, Priyam Seth, Vijay Sundaresan, Daryl Maier, V. Krishna Nandivada, and Manas Thakur. 2024. Optimistic Stack Allocation and Dynamic Heapification for Managed Runtimes. Proc. ACM Program. Lang. 8, PLDI, Article 159 (Jun 2024), 24 pages. https://doi.org/10.1145/3656389
  • Beyer et al . (2022) Dirk Beyer, Matthias Dangl, Daniel Dietsch, Matthias Heizmann, Thomas Lemberger, and Michael Tautschnig. 2022. Verification Witnesses. ACM Trans. Softw. Eng. Methodol. 31, 4, Article 57 (sep 2022), 69 pages. https://doi.org/10.1145/3477579
  • Blackburn et al . (2006) S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. 2006. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In OOPSLA ’06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-Oriented Programing, Systems, Languages, and Applications (Portland, OR, USA). ACM Press, New York, NY, USA, 169–190. https://doi.org/10.1145/1167473.1167488
  • Bodden et al . (2011) Eric Bodden, Andreas Sewe, Jan Sinschek, Hela Oueslati, and Mira Mezini. 2011. Taming Reflection: Aiding Static Analysis in the Presence of Reflection and Custom Class Loaders. In Proceedings of the 33rd International Conference on Software Engineering (Waikiki, Honolulu, HI, USA) (ICSE ’11) . Association for Computing Machinery, New York, NY, USA, 241–250. https://doi.org/10.1145/1985793.1985827
  • Bravenboer and Smaragdakis (2009) Martin Bravenboer and Yannis Smaragdakis. 2009. Strictly Declarative Specification of Sophisticated Points-to Analyses. In Proceedings of the 24th ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications (Orlando, Florida, USA) (OOPSLA ’09) . Association for Computing Machinery, New York, NY, USA, 243–262. https://doi.org/10.1145/1640089.1640108
  • Calcagno et al . (2011) Cristiano Calcagno, Dino Distefano, Peter W. O’Hearn, and Hongseok Yang. 2011. Compositional Shape Analysis by Means of Bi-Abduction. J. ACM 58, 6, Article 26 (Dec. 2011), 66 pages. https://doi.org/10.1145/2049697.2049700
  • Choi et al . (1999) Jong-Deok Choi, Manish Gupta, Mauricio Serrano, Vugranam C. Sreedhar, and Sam Midkiff. 1999. Escape Analysis for Java. In Proceedings of the 14th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (Denver, Colorado, USA) (OOPSLA ’99) . ACM, New York, NY, USA, 1–19. https://doi.org/10.1145/320384.320386
  • Cousot and Cousot (2002) Patrick Cousot and Radhia Cousot. 2002. Modular Static Program Analysis. In Proceedings of the 11th International Conference on Compiler Construction (CC ’02) . Springer-Verlag, London, UK, UK, 159–178. http://dl.acm.org/citation.cfm?id=647478.727794
  • De and D’Souza (2012) Arnab De and Deepak D’Souza. 2012. Scalable Flow-Sensitive Pointer Analysis for Java with Strong Updates. In ECOOP 2012 – Object-Oriented Programming , James Noble (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 665–687.
  • Dean et al . (1995) Jeffrey Dean, David Grove, and Craig Chambers. 1995. Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis. In Proceedings of the 9th European Conference on Object-Oriented Programming (ECOOP ’95) . Springer-Verlag, Berlin, Heidelberg, 77–101.
  • Dickerson et al . (2019) Thomas Dickerson, Paul Gazzillo, Maurice Herlihy, Vikram Saraph, and Eric Koskinen. 2019. Proof-Carrying Smart Contracts. In Financial Cryptography and Data Security , Aviv Zohar, Ittay Eyal, Vanessa Teague, Jeremy Clark, Andrea Bracciali, Federico Pintore, and Massimiliano Sala (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg, 325–338.
  • Dietrich et al . (2015) Jens Dietrich, Nicholas Hollingum, and Bernhard Scholz. 2015. Giga-Scale Exhaustive Points-to Analysis for Java in under a Minute. In Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (Pittsburgh, PA, USA) (OOPSLA 2015) . Association for Computing Machinery, New York, NY, USA, 535–551. https://doi.org/10.1145/2814270.2814307
  • Farooq et al . (2020) Umar Farooq, Zhijia Zhao, Manu Sridharan, and Iulian Neamtiu. 2020. LiveDroid: Identifying and Preserving Mobile App State in Volatile Runtime Environments. Proc. ACM Program. Lang. 4, OOPSLA, Article 160 (nov 2020), 30 pages. https://doi.org/10.1145/3428228
  • Ferles et al . (2022) Kostas Ferles, Benjamin Sepanski, Rahul Krishnan, James Bornholt, and Işil Dillig. 2022. Synthesizing Fine-grained Synchronization Protocols for Implicit Monitors. Proc. ACM Program. Lang. 6, OOPSLA1, Article 67 (apr 2022), 26 pages. https://doi.org/10.1145/3527311
  • Georges et al . (2007) Andy Georges, Dries Buytaert, and Lieven Eeckhout. 2007. Statistically Rigorous Java Performance Evaluation. In Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA ’07) . Association for Computing Machinery, New York, NY, USA, 57–76.
  • Github (2015) Github. 2015. Problem using Booster and the play-out agent . Github. https://github.com/secure-software-engineering/tamiflex/issues/1
  • Github (2018) Github. 2018. FATAL ERROR while using Play In Agent Tamiflex Issue #940 . Github. https://github.com/soot-oss/soot/issues/940
  • Github (2021) Github. 2021. PlayOutAgent fails with OpenJ9 JDK · Issue #11 · secure-software-engineering/tamiflex . Github. https://github.com/secure-software-engineering/tamiflex/issues/11
  • Goldwasser et al . (1985) S Goldwasser, S Micali, and C Rackoff. 1985. The Knowledge Complexity of Interactive Proof-systems. In Proceedings of the Seventeenth Annual ACM Symposium on Theory of Computing (Providence, Rhode Island, USA) (STOC ’85) . Association for Computing Machinery, New York, NY, USA, 291–304. https://doi.org/10.1145/22145.22178
  • Grech et al . (2018) Neville Grech, George Fourtounis, Adrian Francalanza, and Yannis Smaragdakis. 2018. Shooting from the Heap: Ultra-scalable Static Analysis with Heap Snapshots. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (Amsterdam, Netherlands) (ISSTA 2018) . Association for Computing Machinery, New York, NY, USA, 198–208. https://doi.org/10.1145/3213846.3213860
  • He et al . (2023) Dongjie He, Yujiang Gui, Wei Li, Yonggang Tao, Changwei Zou, Yulei Sui, and Jingling Xue. 2023. A Container-Usage-Pattern-Based Context Debloating Approach for Object-Sensitive Pointer Analysis. Proc. ACM Program. Lang. 7, OOPSLA2, Article 256 (oct 2023), 30 pages. https://doi.org/10.1145/3622832
  • IBM (2017) IBM. 2017. Eclipse OpenJ9 . IBM. https://github.com/eclipse/openj9
  • Islam et al . (2023) Md. Jahidul Islam, A.T.M Mizanur Rahman, and Sohel Rana. 2023. Performance Analysis of Modern Garbage Collectors using Big Data Benchmarks in the JDK 20 Environment. In 5th International Conference on Sustainable Technologies for Industry 5.0 (STI) . IEEE, 1–6. https://doi.org/10.1109/STI59863.2023.10464900
  • Kastrinis and Smaragdakis (2013) George Kastrinis and Yannis Smaragdakis. 2013. Hybrid Context-sensitivity for Points-to Analysis. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (Seattle, Washington, USA) (PLDI ’13) . Association for Computing Machinery, New York, NY, USA, 423–434. https://doi.org/10.1145/2491956.2462191
  • Lattner et al . (2007) Chris Lattner, Andrew Lenharth, and Vikram Adve. 2007. Making Context-sensitive Points-to analysis with Heap Cloning Practical for the Real World. In Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation (San Diego, California, USA) (PLDI ’07) . Association for Computing Machinery, New York, NY, USA, 278–289. https://doi.org/10.1145/1250734.1250766
  • Lhoták and Hendren (2003) Ondřej Lhoták and Laurie Hendren. 2003. Scaling Java Points-to Analysis Using Spark. In Compiler Construction , Görel Hedin (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 153–169.
  • Li et al . (2018) Yue Li, Tian Tan, Anders Møller, and Yannis Smaragdakis. 2018. Precision-guided context sensitivity for pointer analysis. Proc. ACM Program. Lang. 2, OOPSLA, Article 141 (oct 2018), 29 pages. https://doi.org/10.1145/3276511
  • Lindholm et al . (2014) Tim Lindholm, Frank Yellin, Gilad Bracha, and Alex Buckley. 2014. The Java Virtual Machine Specification, Java SE 8 Edition (1st ed.). Addison-Wesley Professional, USA.
  • Loginov et al . (2008) Alexey Loginov, Eran Yahav, Satish Chandra, Stephen Fink, Noam Rinetzky, and Mangala Nanda. 2008. Verifying Dereference Safety via Expanding-Scope Analysis. In Proceedings of the 2008 International Symposium on Software Testing and Analysis (ISSTA ’08) . Association for Computing Machinery, New York, NY, USA, 213–224.
  • Lu et al . (2021) Jingbo Lu, Dongjie He, and Jingling Xue. 2021. Eagle: CFL-Reachability-Based Precision-Preserving Acceleration of Object-Sensitive Pointer Analysis with Partial Context Sensitivity. ACM Trans. Softw. Eng. Methodol. 30, 4, Article 46 (jul 2021), 46 pages. https://doi.org/10.1145/3450492
  • Madhavan et al . (2015) Ravichandhran Madhavan, G. Ramalingam, and Kapil Vaswani. 2015. A Framework For Efficient Modular Heap Analysis. Found. Trends Program. Lang. 1, 4 (Jan. 2015), 269–381. https://doi.org/10.1561/2500000020
  • Misc (2015) Misc. 2015. Problem using Booster and the play-out agent . https://groups.google.com/g/tamiflex-discuss/c/ZQIagfvlOsI
  • Misc (2019) Misc. 2019. Soot-list Soot Dacapo Issue . https://mailman.cs.mcgill.ca/pipermail/soot-list/2019-February/009071.html
  • Morrisett et al . (1999) Greg Morrisett, David Walker, Karl Crary, and Neal Glew. 1999. From System F to Typed Assembly Language. ACM Trans. Program. Lang. Syst. 21, 3 (may 1999), 527–568. https://doi.org/10.1145/319301.319345
  • Muchnick (1997) Steven S. Muchnick. 1997. Advanced compiler design and implementation . Morgan Kaufmann Publishers an imprint of Elsevier, Amsterdam.
  • Nanda and Sinha (2009) Mangala Gowri Nanda and Saurabh Sinha. 2009. Accurate Interprocedural Null-Dereference Analysis for Java. In 31st International Conference on Software Engineering . IEEE, Canada, 133–143. https://doi.org/10.1109/ICSE.2009.5070515
  • Necula (1997) George C. Necula. 1997. Proof-Carrying Code. In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Paris, France) (POPL ’97) . Association for Computing Machinery, New York, NY, USA, 106–119. https://doi.org/10.1145/263699.263712
  • Padhye and Khedker (2013) Rohan Padhye and Uday P. Khedker. 2013. Interprocedural Data Flow Analysis in Soot Using Value Contexts. In Proceedings of the 2nd ACM SIGPLAN International Workshop on State Of the Art in Java Program Analysis (Seattle, Washington) (SOAP ’13) . Association for Computing Machinery, New York, NY, USA, 31–36. https://doi.org/10.1145/2487568.2487569
  • Paleczny et al . (2001) Michael Paleczny, Christopher Vick, and Cliff Click. 2001. The Java HotspotTM Server Compiler. In Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1 (Monterey, California) (JVM’01) . USENIX Association, USA, 1.
  • Rama et al . (2018) Girish Maskeri Rama, Raghavan Komondoor, and Himanshu Sharma. 2018. Refinement in object-sensitivity points-to analysis via slicing. Proc. ACM Program. Lang. 2, OOPSLA (2018), 142:1–142:27.
  • Sălcianu and Rinard (2005) Alexandru Sălcianu and Martin Rinard. 2005. Purity and Side Effect Analysis for Java Programs. In Verification, Model Checking, and Abstract Interpretation , Radhia Cousot (Ed.). Springer Berlin Heidelberg, Berlin, Heidelberg, 199–215.
  • Schwaab et al . (2019) Christopher Schwaab, Ekaterina Komendantskaya, Alasdair Hill, František Farka, Ronald P. A. Petrick, Joe Wells, and Kevin Hammond. 2019. Proof-Carrying Plans. In Practical Aspects of Declarative Languages , José Júlio Alferes and Moa Johansson (Eds.). Springer International Publishing, Cham, 204–220.
  • Serrano et al . (2000) Mauricio Serrano, Rajesh Bordawekar, Sam Midkiff, and Manish Gupta. 2000. Quicksilver: A Quasi-Static Compiler for Java. SIGPLAN Not. 35, 10 (oct 2000), 66–82. https://doi.org/10.1145/354222.353176
  • Sharma et al . (1998) Shamik Sharma, Anurag Acharya, and Joel Saltz. 1998. Deferred Data-Flow Analysis . Technical Report. University of California at Santa Barbara, USA.
  • Smaragdakis and Balatsouras (2015) Yannis Smaragdakis and George Balatsouras. 2015. Pointer Analysis. Found. Trends Program. Lang. 2, 1 (apr 2015), 1–69. https://doi.org/10.1561/2500000014
  • Smaragdakis et al . (2011) Yannis Smaragdakis, Martin Bravenboer, and Ondrej Lhoták. 2011. Pick Your Contexts Well: Understanding Object-sensitivity. In Proceedings of the 38th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (Austin, Texas, USA) (POPL ’11) . Association for Computing Machinery, New York, NY, USA, 17–30. https://doi.org/10.1145/1926385.1926390
  • SPECjvm (2008) SPECjvm. 2008. SPECJVM2008 . SPEC. https://www.spec.org/jvm2008/
  • Tan et al . (2017) Tian Tan, Yue Li, and Jingling Xue. 2017. Efficient and Precise Points-to Analysis: Modeling the Heap by Merging Equivalent Automata. In Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation (Barcelona, Spain) (PLDI 2017) . Association for Computing Machinery, New York, NY, USA, 278–291. https://doi.org/10.1145/3062341.3062360
  • Thakur and Nandivada (2019a) Manas Thakur and V. Krishna Nandivada. 2019a. Compare Less, Defer More: Scaling Value-contexts Based Whole-program Heap Analyses. In Proceedings of the 28th International Conference on Compiler Construction (CC) . ACM, Washington, DC, USA, 135–146.
  • Thakur and Nandivada (2019b) Manas Thakur and V. Krishna Nandivada. 2019b. PYE: A Framework for Precise-Yet-Efficient Just-In-Time Analyses for Java Programs. ACM Trans. Program. Lang. Syst. 41, 3, Article 16 (jul 2019), 37 pages. https://doi.org/10.1145/3337794
  • Thakur and Nandivada (2020) Manas Thakur and V. Krishna Nandivada. 2020. Mix Your Contexts Well: Opportunities Unleashed by Recent Advances in Scaling Context-Sensitivity. In Proceedings of the 29th International Conference on Compiler Construction (CC 2020) . Association for Computing Machinery, New York, NY, USA, 27–38.
  • Toussi and Rasoolzadegan (2014) Hamid A. Toussi and Abbas Rasoolzadegan. 2014. Flow-sensitive points-to analysis for Java programs using BDDs. In 2014 4th International Conference on Computer and Knowledge Engineering (ICCKE) . IEEE, 380–386. https://doi.org/10.1109/ICCKE.2014.6993367
  • Vallée-Rai et al . (1999) Raja Vallée-Rai, Phong Co, Etienne Gagnon, Laurie Hendren, Patrick Lam, and Vijay Sundaresan. 1999. Soot - a Java Bytecode Optimization Framework. In Proceedings of the 1999 Conference of the Centre for Advanced Studies on Collaborative Research (Mississauga, Ontario, Canada) (CASCON ’99) . IBM Press, 13.
  • Whaley and Rinard (1999a) John Whaley and Martin Rinard. 1999a. Compositional Pointer and Escape Analysis for Java Programs. SIGPLAN Not. 34, 10 (oct 1999), 187–206. https://doi.org/10.1145/320385.320400
  • Whaley and Rinard (1999b) John Whaley and Martin Rinard. 1999b. Compositional Pointer and Escape Analysis for Java Programs. In Proceedings of the 14th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (Denver, Colorado, USA) (OOPSLA ’99) . Association for Computing Machinery, New York, NY, USA, 187–206. https://doi.org/10.1145/320384.320400
  • Woo et al . (2001) Jongwook Woo, Jehak Woo, I. Attali, D. Caromel, J.-L. Gaudiot, and A.L. Wendelborn. 2001. Alias Analysis for Java with Reference-set Representation. In Proceedings. Eighth International Conference on Parallel and Distributed Systems. ICPADS 2001 . IEEE, 459–466. https://doi.org/10.1109/ICPADS.2001.934854

IMAGES

  1. Representational Art

    definition of representation in art

  2. Representational Art

    definition of representation in art

  3. Representational Art

    definition of representation in art

  4. What is Representational Art?

    definition of representation in art

  5. Representational Art

    definition of representation in art

  6. Philosophy of art

    definition of representation in art

VIDEO

  1. VECTOR 1 -(Definition, Representation and Unit Vector)#physics #excellentlinkacademy(WELL EXPLAINED)

  2. @matrix definition & representation#youtubeshorts #education #viralvideo #tricks #quickmath #music

  3. Introducing Human Anatomy for Artists

  4. FUNCTION PART -4 USEFUL FOR RPSC ,DSSSB,KVS PGT AND TGT ,NDA, AIRFORCE AND OTHER EXAMS

  5. Time Period vs Frequency clear concept explained with diagram

  6. FUNCTION PART -5 USEFUL FOR RPSC ,DSSSB,KVS PGT AND TGT ,NDA, AIRFORCE AND OTHER EXAMS

COMMENTS

  1. What is Representational Art? (Explained with Examples)

    The latter type of art is known as representational art. Representational arts are artworks that depict real situations. The sources of inspiration for a representational work are generally real objects, people, or scenes. For instance, the painting of a cat is considered to be representational art because it describes a real-world subject.

  2. Representational Art: Definition and Guide

    Representational art is an artistic style in which the artist attempts to depict a representation of real-life subject matter, that is recognisable to the viewer. This is opposed to non-representational art, which does not depict subjects, objects or scenes from the real world. Art described as representational can be realistic, or less ...

  3. Representational Art

    Representational art, which is sometimes known as Figurative art, refers to paintings, sculptures, and other art forms that have clearly been copied from real objects. Portraying something that physically exists in reality, such as a landscape, a still life, or a portrait, Representational artworks are instantly recognizable once they are created.

  4. Representation in Art

    Representation can take many forms, including paintings, sculptures, drawings, photographs, and more. It is a way for artists to communicate their thoughts, emotions, and perspectives to the viewer. II. Historical Perspectives on Representation in Art. Throughout history, representation in art has evolved and changed in response to cultural ...

  5. Representation (arts)

    Representation has been associated with aesthetics (art) and semiotics (signs). Mitchell says "representation is an extremely elastic notion, which extends all the way from a stone representing a man to a novel representing the day in the life of several Dubliners". [1] The term 'representation' carries a range of meanings and interpretations.

  6. Representational Art

    Modern representational artwork is heavily influenced by Greco-Roman art, as demonstrated by the Greek Sculptures produced by representational artists such as Praxiteles, Hagesandrus, Athenodoru, and Polydorus. The bas-relief on Trajan's Column (c.106-113 CE) in Rome from the Julio-Claudian era is one of the best examples of representational ...

  7. Representation

    Representation in art refers to the depiction or portrayal of objects, people, or ideas in a visual or tangible form. It is the act of presenting something in a way that conveys its essence or meaning to an audience. Representation can take many forms, including realistic, abstract, symbolic, or conceptual.

  8. An Introduction to Representational Art

    Updated on March 19, 2018. The word "representational," when used to describe a work of art, means that the work depicts something easily recognized by most people. Throughout our history as art-creating humans, most art has been representational. Even when art was symbolic, or non-figurative, it was usually representative of something.

  9. What is Representational Art?

    Representational Art. Representational art refers to art that represents something, whether that be a tree in a landscape, apple in a still life, or figure in a portrait. Or in other words, it is art that is clearly identifiable as something which already exists in life. Below are some examples of representational art, starting with a ...

  10. 1.5: Representational, Abstract, and Nonrepresentational Art

    Even art that aims for verisimilitude (accuracy and truthfulness) of the highest degree can be said to be abstract, at least theoretically, since perfect representation is likely to be exceedingly elusive. Artwork which takes liberties, altering for instance color and form in ways that are conspicuous, can be said to be partially abstract.

  11. Philosophy of art

    Philosophy of art - Representation, Aesthetics, Criticism: Representation always involves a certain degree of abstraction—that is, the taking away of one characteristic or more of the original. Even a fairly realistic painting of a person, for example, lacks some features that characterize actual persons: a painting is two-dimensional, whereas every actual person is three-dimensional; the ...

  12. What is Representational Art?

    In painting and sculpture, the term "representational art" usually refers to images that are clearly recognizable for what they purport to be, such as a human figure, a banana, a tree, and so on. Such images need not be true to life. So a tree does not have to be green, or even upright, but it must clearly represent or be recognizable as a tree ...

  13. Representation

    Representation refers to the way in which art depicts, symbolizes, or portrays subjects, ideas, or concepts. It plays a crucial role in how we understand and interpret visual culture, influencing perceptions of identity, culture, and power dynamics. The idea of representation is deeply connected to various fields such as politics, sociology, and anthropology, highlighting its importance in ...

  14. Representational Art

    Representational art refers to any type of artistic expression that depicts, or represents, anything from the real world. Based on the representational theory, art is defined by its relationship ...

  15. Representational

    Representational. The term seems to have come into use after the rise of modern art and particularly abstract art as a means of referring to art not substantially touched by modern developments. Not quite the same as figurative art which seems to apply to modern art in which the elements of reality, while recognisable, are nevertheless treated ...

  16. Understanding Representational Art with Examples

    A burning example of representational art is Renaissance art. This art form was driven by the principle of humanism. The core belief of humanism was to represent elements that were close to the real life, rather than symbolism. Mona Lisa of the Renaissance period is an example of representational art form.

  17. 1.5.1: Types of Representation in Art

    Non-Representational or Non-Objective. Non-representational or Non-objective art defines a type of abstract art that is usually, but not always, geometric and aims to convey a sense of simplicity and purity. Non-representational art and non-objective art that has no derivation from figures or objects. Stories abound about the era in art and the ...

  18. Guide to Representational Art

    Abstract art was developed from representational art, where the colors, lines, and shapes themselves are the center of the art, and not the subject matter itself. It is not purely representational art, but rather an interpretation of reality. Abstract art is a recent invention and didn't appear until the start of the 20th-century.

  19. Symbolic Representation in Art

    Symbolic representation in art refers to the use of symbols, images, or objects to convey deeper meanings or ideas within a work of art. These symbols can be cultural, religious, political, or personal in nature, and are often open to interpretation by the viewer.

  20. Representation in Art

    Abstract. Of all the long-standing debates that raise doubts about progress in philosophy, that concerning the nature of representation in the arts stands out. For Plato's analysis, charitably interpreted and amplified, holds up remarkably well in the face of strong criticism earlier in this century and yet more recent revisions.

  21. Representation

    In sculpture. …most important of these is representation. Before the 20th century, sculpture was considered a representational art, one that imitated forms in life, most often human figures but also inanimate objects, such as game, utensils, and books. Since the turn of the 20th century, however, sculpture has also included ...

  22. Modes of Representation

    The term "representation" suggests a type of description or portrayal of someone or something. In the visual arts this implies that the art object depicts something other than or outside itself. In some cases the mode of representation is iconic and relies on ideas or symbols.

  23. What Is the Definition of Art?

    Art as Representation or Mimesis. Plato first developed the idea of art as "mimesis," which, in Greek, means copying or imitation. For this reason, the primary meaning of art was, for centuries, defined as the representation or replication of something beautiful or meaningful. Until roughly the end of the eighteenth century, a work of art ...

  24. The ART of Sharing Points-to Analysis (Extended Abstract)

    A consumer using such a tampered instance of ART in the regeneration process will obtain points-to analysis results that do not match any fixed-point result for P 𝑃 P italic_P. Thus, by Definition 3.1, any non-conservatively tampered ART is unsafe. An example of non-conservative tampering would be the removal of a node or an edge in a points ...