Running Ada programs on a self-targeting system with "virtually" unlimited memory (such as a mainframe), is quite different from running Ada on an embedded target. On self-targeting systems, the compiler and linker will automatically distribute the code, data, constants, and task-stacks onto available resources; the user need not worry about the details. On the other hand, the Ada developer in an embedded environment must understand how to explicitly instruct the development system to allocate resources. For example, to override default settings, (usually set to make the compiler look good on small benchmark programs), 'STORAGE_SIZE length representation settings must be given for task and access types, and linker directives must be given for size and location of code, data, heap, and stack areas. While embedded system technology has always required such settings, many of the parameters could be determined using the programmer's knowledge of implementation details. With Ada, the compiler and linker hide the implementation and the user is faced with setting these parameters with little or no guidance.Unfortunately, few, if any, Ada texts deal with how to set embedded system parameters. In addition, CASE tools usually do not help in these areas. To further complicate matters, even Ada compiler manuals do not adequately describe how to set embedded system parameters solely as a function of Ada constructs. Instead, compiler manuals provide guidelines based not only on Ada constructs but also on other parameters that only run-time system experts understand. Substantial time can be wasted trying to derive the setup values. Incorrect guesses may necessitate recompiling those portions of the program that are affected by representation clause changes.This article will develop formulas that will help estimate the minimum memory and CPU execution needs of an Ada program as a function of source code constructs. The formulas should, 1) help designers and programmers to better assess whether Ada programs will fit in a target environment, 2) reduce recompilation time when representation specifications are present in the specification portion of packages, and 3) remind programmers of the execution costs of various Ada language constructs.