The research in this thesis is related to static cost and termination analysis.Cost analysis aims at estimating the amount of resources that a given programconsumes during the execution, and termination analysis aims at proving thatthe execution of a given program will eventually terminate. These analyses arestrongly related, indeed cost analysis techniques heavily rely on techniques developedfor termination analysis. Precision, scalability, and applicability are essentialin static analysis in general. Precision is related to the quality of the inferredresults, scalability to the size of programs that can be analyzed, and applicabilityto the class of programs that can be handled by the analysis (independently fromprecision and scalability issues). This thesis addresses these aspects in the contextof cost and termination analysis, from both practical and theoretical perspectives.For cost analysis, we concentrate on the problem of solving cost relations (aform of recurrence relations) into closed-form upper and lower bounds, which isthe heart of most modern cost analyzers, and also where most of the precision andapplicability limitations can be found. We develop tools, and their underlyingtheoretical foundations, for solving cost relations that overcome the limitations ofexisting approaches, and demonstrate superiority in both precision and applicability.A unique feature of our techniques is the ability to smoothly handle bothlower and upper bounds, by reversing the corresponding notions in the underlyingtheory. For termination analysis, we study the hardness of the problem ofdeciding termination for a specic form of simple loops that arise in the context ofcost analysis. This study gives a better understanding of the (theoretical) limitsof scalability and applicability for both termination and cost analysis.