| M. Gandhe, G. Venkatesh, and A. Sanyal. Correcting errors in the curry system. In Chandrum V. and Vinay, V. (Eds.): Proc. of 16th Conf. on Foundations of Software Technology and Theoretical Computer Science, LNCS vol. 1180, Springer-Verlag, pages 347--358, 1996. |
....most of the hypotheses are satisfied. Unfortunately, the order in which the equations are solved determines which conflict is reported. Aiken et al. 2] show how to perform a constraint based program analysis in a type inference algorithm for the lambdacalculus without polymorphism. Gandhe et al. [7] discuss corrections of ill typed expressions using constraints on types; their system however cannot handle polymorphism. McAdam [10] discusses the use of unification and substitution in conventional inference algorithms which have a left to right bias. To remove this bias, a modification of the ....
M. Gandhe, G. Venkatesh, and A. Sanyal. Correcting errors in the curry system. In Chandrum V. and Vinay, V. (Eds.): Proc. of 16th Conf. on Foundations of Software Technology and Theoretical Computer Science, LNCS vol. 1180, Springer-Verlag, pages 347--358, 1996.
....for a type conflict [Wan86, BS93, DB96, McA00] Tracing the reason for a deduction is similar to collecting constraints on types. In Section 6 we explain how to construct a type graph from the collected constraints. Other techniques have been proposed to store type information in a graph [GVS96, Cho95]. However, these two systems cannot handle polymorphism. The graph presented by McAdam [McA00] can contain let expressions, but the polymorphic instances of a declaration are obtained by duplicating parts of the graph. This approach can result in computing the type of an expression exponentially ....
M. Gandhe, G. Venkatesh, and A. Sanyal. Correcting errors in the curry system. In Chandrum V. and Vinay, V. (Eds.): Proc. of 16th Conf. on Foundations of Software Technology and Theoretical Computer Science, LNCS vol. 1180, SpringerVer l ag, pages 347--358, 1996.
....most of the hypotheses are satis ed. Unfortunately, the order in which the equations are solved determines which con ict is reported. Aiken et al. 2] show how to perform a constraint based program analysis in a type inference algorithm for the lambda calculus without polymorphism. Gandhe et al. [7] discuss corrections of ill typed expressions using constraints on types; their system however can not handle polymorphism. McAdam [9] discusses the use of uni cation and substitution in conventional 2 inference algorithms which have a left to right bias. To solve this bias, a modi cation of the ....
M. Gandhe, G. Venkatesh, and A. Sanyal. Correcting errors in the curry system. In Chandrum V. and Vinay, V. (Eds.): Proc. of 16th Conf. on Foundations of Software Technology and Theoretical Computer Science, LNCS vol. 1180, Springer-Verlag, pages 347-358, 1996.
....form used in the introduction does not help here. So we attempt to unify int with ptr(mem(4 : int) and nd no solution. Such situations are deferred until the global set of constraint failures are available (here there are no more) and then the application to typing outlined by Gandhe et al. [3] for nding maximal consistent subsets of inconsistent sets is applied. Here we nd a bene t of using C as the high level language for decompilation in that it can express such code by casts or union types. C s union type can express the solution trivially as int h(union int i; int p; x) ....
....when passed as arguments since the C standard requires formal array parameters to be mapped to pointers thereby losing size information. Although currently not implemented, note that a GUI could be used to direct that the above union should instead be decompiled as struct G char m0; char pad1[3]; int m4[15] char m48; r0; when it is clear to a user that the array is actually part of the struct. We return to this point in section 6.1. 5 Type Uni cation Uni cation of our types is Herbrand based with the following additional rules, i.e. the cases below are tried in order if Herbrand uni ....
[Article contains additional citation context not shown here]
Gandhe, M., Venkatesh, G., Sanyal, A. Correcting Errors in the Curry System. In Chandrum V. and Vinay, V. (Eds.): Proc. of 16th conf. on Foundations of Software Technology and Theoretical Computer Science, LNCS vol. 1180, Springer-Verlag, 1996.
....SSA form used in the introduction does not help here. So we attempt to unify int with ptr(mem(4 : int) and find no solution. Such situations are deferred until the global set of constraint failures are available (here there are no more) and then the application to typing outlined by Gandhe et al. [2] for finding maximal consistent subsets of inconsistent sets is applied. Here we find a benefit of using C as the high level language for decompilation in that it can express such code by casts or union types. C s union type can express the solution trivially as int h(union int i; int p; x) ....
.... to distinguish array type int [10] 10] from int[100] Similarly, arrays or structs containing other arrays or structs cannot in general be uniquely decoded, consider distinguishing objects x1, x3 defined by: struct S1 int a; int b[4] int c; int d[4] x1; struct S2 int a; int b[4] x2[2]; struct S3 struct S2 c,d; x3; We are exploring various options for constraint resolution when array indexing and struct selection occurs. Consider code like that discussed in section 4.3: ld.b 0[r0] r1 ld.b 48[r0] r2 ld.w (r5) r0] r3 There are several possible ways to approximate this ....
Gandhe, M., Venkatesh, G., Sanyal, A. Correcting Errors in the Curry System. In Chandrum V. and Vinay, V. (Eds.): Proc. of 16th Conf. on Foundations of Software Technology and Theoretical Computer Science, LNCS vol. 1180, Springer-Verlag, 1996.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC