Note: The table headings (positive/negative) are not necessarily correct.
| Positive | Negative |
|---|---|
Acquire |
Release |
Add |
Remove (e.g. an item), Subtract (arithmetic) |
Advance |
Retreat |
Allocate |
Deallocate (correct), Free (common) |
Assemble |
Disassemble |
Attach |
Detach |
Begin |
End |
Bind |
Unbind |
Create |
Destroy |
Compile |
Decompile |
Connect |
Disconnect |
Construct |
Destruct |
Enable |
Disable |
Enqueue |
Dequeue |
Enter |
Leave, Exit |
First |
Last |
Freeze |
Unfreeze |
Front |
Back |
Get |
Set |
Import |
Export |
Increase |
Decrease |
Increment |
Decrement |
Inflate |
Deflate |
Inject |
Eject |
Insert |
Delete |
Install |
Uninstall |
Link |
Unlink |
Load |
Unload (e.g. a module), Store (e.g. a value) |
Lock |
Unlock |
Minimum |
Maximum |
Next |
Previous |
New |
Old |
Open |
Close |
Push |
Pop |
Read |
Write |
Register |
Deregister |
Select |
Deselect |
Send |
Receive |
Serialize |
Deserialize |
Set |
Unset (e.g. a key), Clear (e.g. a bit) |
SetUp |
TearDown |
Show |
Hide |
Start |
Stop |
StartUp |
ShutDown, CleanUp (maybe) |
Resume |
Suspend |
Up |
Down |
There is no precise antonym for Initialize and I don't think there has to be:
By using Initialize only for simple initializations that don't need any clean up code
(Initialize as its own antonym) you can
- establish a convention through that initialization routines without a corresponding clean up routine can be easily recognized, and
- circumvent the need for an antonym ;).
For routines that do not fall in this category, select another verb from the table above (most of the time there is a more descriptive alternative anyway).
If you still feel like you need an antonym; possibilities include but are not limited to: Exit (very common in conjunction with Init), Reset, Finalize, Terminate.
Both prefixes (de- and un-) can be defined as a reversal of action. Most of the time the prefix de- is used for verbs while un- is used for adjectives. There are many exceptions to this rule though.
In some cases careful usage of these prefixes can be used to avoid ambiguity. For example, "he was unregistered" is ambiguous because it can mean either "he was not registered" or "his registration was removed", while "he was deregistered" is not.