diff --git a/include/program.h b/include/program.h
index 615ffa1..5b47c03 100644
--- a/include/program.h
+++ b/include/program.h
@@ -84,8 +84,8 @@
 #define BC_PROGRAM_CHECK_STACK(p) ((p)->stack.len > 1)
 #define BC_PROGRAM_CHECK_EXPR_STACK(p, l) ((p)->expr_stack.len >= (l))
 
-#define BC_PROGRAM_MAIN_FUNC (0)
-#define BC_PROGRAM_READ_FUNC (1)
+#define BC_PROGRAM_MAIN (0)
+#define BC_PROGRAM_READ (1)
 
 #define BC_PROGRAM_SEARCH_VAR (1<<0)
 #define BC_PROGRAM_SEARCH_ARRAY_ONLY (1<<1)
diff --git a/src/bc/program.c b/src/bc/program.c
index affce08..8d4550f 100644
--- a/src/bc/program.c
+++ b/src/bc/program.c
@@ -50,12 +50,12 @@
 
   if (!ip) return BC_STATUS_EXEC_BAD_STACK;
 
-  if (ip->func == BC_PROGRAM_READ_FUNC) {
+  if (ip->func == BC_PROGRAM_READ) {
     ip = bc_vec_item_rev(&p->stack, 1);
     if (!ip) return BC_STATUS_EXEC_BAD_STACK;
   }
 
-  if (ip->func != BC_PROGRAM_MAIN_FUNC) {
+  if (ip->func != BC_PROGRAM_MAIN) {
 
     func = bc_vec_item(&p->funcs, ip->func);
 
@@ -379,7 +379,7 @@
   BcFunc *func;
   BcInstPtr ip;
 
-  func = bc_vec_item(&p->funcs, BC_PROGRAM_READ_FUNC);
+  func = bc_vec_item(&p->funcs, BC_PROGRAM_READ);
 
   if (!func) return BC_STATUS_EXEC_UNDEFINED_FUNC;
 
@@ -414,7 +414,7 @@
     goto exec_err;
   }
 
-  ip.func = BC_PROGRAM_READ_FUNC;
+  ip.func = BC_PROGRAM_READ;
   ip.idx = 0;
   ip.len = p->expr_stack.len;
 
@@ -1424,7 +1424,7 @@
 
   name = NULL;
 
-  if (s || idx != BC_PROGRAM_MAIN_FUNC) goto read_err;
+  if (s || idx != BC_PROGRAM_MAIN) goto read_err;
 
   read_name = malloc(strlen(bc_lang_func_read) + 1);
 
@@ -1439,7 +1439,7 @@
 
   read_name = NULL;
 
-  if (s || idx != BC_PROGRAM_READ_FUNC) goto var_err;
+  if (s || idx != BC_PROGRAM_READ) goto var_err;
 
   s = bc_vec_init(&p->vars, sizeof(BcNum), bc_num_free);
 
