This portal is to open public enhancement requests against IBM Z Software products. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).
We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:
Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,
Post an idea.
Get feedback from the IBM team and other customers to refine your idea.
Follow the idea through the IBM Ideas process.
Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.
IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.
ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.
Due to processing by IBM, this request was reassigned to have the following updated attributes:
Brand - Servers and Systems Software
Product family - Programming Languages
Product - COBOL Compilers
For recording keeping, the previous attributes were:
Brand - Rational
Product family - Design & development
Product - COBOL Compilers
This RFE has shipped as RULES(NOENDPERIOD) in V5.2
This item has been put into plan for a future compiler release.
I include all my sections in a perform - end-perform. scope to force the use of scope terminators. So try this, and you should get a compile error :
x section.
perform
evaluate true
when a
perform x1
when b
perform x2
<<<< forgotten end-evaluate
perform x_for_all
end-perform.
I think mibo's idea is very good. :-)
As I view it, a missing END-"verb" should be marked whenever the "verb" statement has opened a branch (i.e. CALL with ON-clause, READ with AT END etc.).
In these cases, I consider it good style to close the branch explicitly, and bad style to have it closed implicitly by either the next verb or a period.
Thats a good idea with an option. But I'm not sure if a global option could help because that would effect all statements which can use an end delimiter like CALL, STRING, etc. Those commands where "automatically closed" by the next cobol verb. In my opinion it is not necessary (for better code) to mark that statements. An option like ENDDLMCOND (warn at lack of end delimiter in condition verbs i.e. only IF / EVALUATE) would be more senseful, wouldn't it?
This is a good idea! Although the compiler could not know the difference between whether a user wanted to close an EVALUATE with END-EVALUATE or a period, we could add a compiler option, like ENDDELIMITERS or ENDWARN that would change the compiler to put out a warning message if a period is found that terminated a statement that could have been terminated with END-x (END-IF, END-EVALUATE, etc.)