Presumably you meant to type "...but cannot edit it or execute it?"
The answer is no: if they have sufficient privileges to see it then they can also execute it. However, they will not be able to edit it unless they have a powerful privilege like "CREATE ANY PROCEDURE".
You could always give the users no privileges at all on the procedure (so they can't see or execute it), and then provide a SELECT-only copy of the source in a table of your own:
create table my_source as select * from user_source where ...;
grant select on my_source to ...;