/****************************************************************************** * Copyright (c) 2009 - 2015 IBM Corporation. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *****************************************************************************/ /** * */ package com.ibm.wala.memsat.translation; import com.ibm.wala.memsat.representation.ExpressionFactory; import kodkod.ast.Formula; import kodkod.instance.Bounds; /** * Stores the translation of a sequential or a concurrent program to various data structures. * * @specfield factory: ExpressionFactory // expression factory used for translation * @specfield formula: Formula // the formula generated by the translator * @specfield bounds: Bounds // bounds generated by the translator * @specfield context: T // translation context * * @author Emina Torlak */ public interface Translation<T> { /** * Returns the factory used for allocating relations to * unknown values (initial heap state, entry method arguments, etc.) * and constants. * @return this.factory */ public ExpressionFactory factory() ; /** * Returns this.bounds. * @return this.bounds */ public Bounds bounds() ; /** * Returns the formula constraining the initial and final * states of this.method's heap. * @return this.formula */ public Formula formula() ; /** * Returns the translation context for this.formula and this.bounds. The context * contains additional information about the results of the translation] * process, and it depends on whether this translation object was generated * by a concurrent or a sequential translator. * @return translation context for this method. */ public T context() ; }