2010-12-13 4 views
15

Я аспирант по специальности информатика. Мой отдел преподает большинство своих курсов с использованием Java (хотя я сделал один курс по системной архитектуре, который использовал C, чтобы продемонстрировать планирование процессоров, управление памятью и т. Д., Но я отвлекся).Обучение COBOL без доступа к мэйнфрейму

Я хочу узнать больше о COBOL, но у меня нет доступа к системе мейнфреймов. Может ли кто-нибудь порекомендовать бесплатный компилятор COBOL для Windows, который позволит мне пройти через некоторые базовые учебники по COBOL?

Отказ от ответственности: да, я уже в этом разбираюсь, поэтому надеюсь, что некоторые опытные люди дадут дополнительную информацию.

Спасибо!

+0

COBOL в аспирантуре? Вау. Мне было бы лучше, если бы они преподавали что-то вроде Lisp вместо Java. – duffymo

+2

@duffymo - FWIW, я тоже занимался функциональным классом программирования, преподавал с PLT Scheme. :) –

+1

Это для класса или что-то, что вы делаете самостоятельно?Ваш вопрос заставляет его звучать как последний, но если это правда, вы заслуживаете сертификации. Я сделал кучу COBOL в колледже, а затем проработал с ней профессионально в течение трех лет. Это действительно не забавный язык. – AgentConundrum

ответ

22

Другие плакаты предложили Tiny COBOL, но посмотрите также OpenCOBOL. OpenCOBOL является кросс-компилятором к C и имеет довольно активное сообщество разработчиков.

COBOL - не сложный язык для изучения. Если вы не свяжетесь, чтобы поработать в магазине мейнфреймов, тратить много времени на изучение COBOL, возможно, не так много карьеры.

Как указал на этот вопрос, это не язык, а окружающая среда, которую нужно изучать. По аналогии, не так много узнать о языке C. Однако просто зная, что C не доставит вас очень далеко - вам нужно работать с огромной стандартной библиотекой, которая поставляется вместе с ней. COBOL аналогичен положению . Разница заключается в том, что COBOL не поставляется с огромной стандартной библиотекой, она является частью пакета , который часто включает в себя: CICS, DB/2, MQ-Series и ряд других библиотечных сервисов (службы LE в среде IBM).

COBOL можно найти вне окружающей среды мэйнфрейма, но мэйнфрейм - это его «настоящий дом». В качестве обобщения «мэйнфрейм» подразумевает мэйнфрейм IBM, работающий под управлением Z/OS (многие могут принять исключение из этого утверждения). Эта публикация: Introduction to the Mainframe - z/OS - хорошее место, чтобы понять, что такое среда мейнфреймов IBM.

Вещи, которые я нахожу характеризуют COBOL являются:

  • COBOL является процедурным языком. Некоторые поставщики добавили расширения OO , а новые языковые стандарты COBOL включают расширения OO, но это в значительной степени оформление окон. COBOL является в основном процедурным языком.

  • Данные декларации. Вещь PICTURE/USAGE - это немного изгиб ума. Объявление данных объединяет внутреннее представление данных (двоичное, упакованное десятичное число, с плавающей запятой, символ и т. Д.) С представлением (количество цифр, ведущих нулей, знак и т. Д.) В одно объявление.

  • REDEFINES используется для представления различных видов одной и той же базовой памяти.

  • Иерархические декларации данных. Иерархия данных определяется с использованием номеров уровней. Уровень 1 определяет вершину иерархии , а увеличивающиеся числа определяют нижние уровни. Уровни 66 (совместно с RENAMES), 77, 88 имеют особые значения.

  • Поток контроля.Многие программисты (даже некоторые ветеранские программисты COBOL) видят SECTION/PARAGRAPH способом, похожим на вызов процедуры. Они полностью разные. SECTION/PARAGRAPH do не следует нормальный стек ориентированный вызов/возврат семантика. COBOL использует уникальный механизм для управления возврат от PERFORMed разделов/абзацев.

  • Монолитные программы с множеством глобальных переменных. Нередко можно найти исходные файлы COBOL , работающие в тысячи строк с несколькими сотнями глобальных переменных. COBOL не нужно писать таким образом - я считаю, что это наследие, относящееся ко времени, когда вызов процедур считался дорогостоящим, но PERFORMing a SECTION/PARAGRAPH был очень эффективным. Привычка , похоже, застряла, и новые программы COBOL, как правило, написаны как монолитные монстры.

  • String обработка кошмар. COBOL делает финансовые расчеты очень хорошо. Это не очень хорошо работает с обработкой строк . Строки, обрабатывающие глаголы INSPECT, STRING и UNSTRING, могут делать ряд интересных вещей, но также могут усугубиться.

  • COPY/REPLACING и REPLACE Директивы компилятора должны быть поняты. Они ведут себя несколько иначе: иначе, чем включение файлов на большинстве других языков. Большинство магазинов используют COPY только для общей записи или декларацию данных, другие используют их также для общего процессуального кода (с REPLACING и или REPLACE).

Учитывая хорошее знание языка C, вы можете без проблем справиться с COBOL.

+0

+1 для _COBOL использует уникальный механизм для управления возвратом из PERFORMed section/paragraph_ Довольно уродливые вещи могут выполняться недисциплинированными программистами :) –

+0

Комментарий к _dating обратно в то время, когда вызовы процедур считались дорогостоящими: я думаю, что традиция была также частично из-за отсутствия CVS (как в источнике, так и в скомпилированных воплощениях). Я помню, что я создал полную версию CVS в _Vollie_ (несуществующий продукт, alla ICCF), чтобы убедить программистов повторно использовать _something_ –

0

Вы попробовали TinyCobol? I думаю Я использовал его один раз, и это было неплохо.

Некоторое время назад у MicroFocus была бесплатная версия их IDE + Compiler (Net Express), но они больше не предлагают его. Я почти уверен, что у меня есть копия установщика где-то, но я не уверен, что все равно будет законно устанавливать, если они больше не предлагают продукт. Я могу посмотреть позже сегодня вечером (это было бы на моем другом компьютере, который в настоящее время безголовый и неактивный) и посмотреть, что я придумал.

+0

спасибо, как и я, изучая COBOL (snicker), я определенно не хотел бы нарушать какие-либо законы. Я посмотрю на TinyCobol, хотя, спасибо за подсказку! –

6

Я не буду решать ваш конкретный вопрос, так как это было много лет назад, когда я перестал работать программистом в мэйнфреймах (и с мэйнфреймами вообще ... и который включает COBOL). Тем не менее, есть два момента, которые я хотел бы подчеркнуть:

  1. COBOL является легко выучить язык. Сначала вы почувствуете, что синтаксис сложный. Множество «разделов», «разделов», «абзацев» ... просто попытайтесь понять, почему они существуют. Никто не пишет эти ярлыки. То, как COBOL использует и переопределяет структуры данных, возможно, является самой интересной концепцией, постарайтесь ее хорошо понять.

  2. Это ключевой момент. Я сказал: «COBOL легко». Теперь плохая новость: быть честным программистом COBOL для мэйнфреймов NOT легко. Но это не имеет никакого отношения к COBOL, это среда. Мейнфрейм большой, и там много «экосистем». У вас есть DB2, CICS, некоторые JCL и VSAM как минимум, и, возможно, еще дюжина, в зависимости от вашей установки. Принтеры, кассеты и другие специализированные и трудно управляемые аппаратные средства тоже. Каждому из них требуется несколько лет для приручения, и это реальная ценность хорошего программиста мейнфреймов. У микрофокуса был дорогой компилятор/продукт среды, который смог подражать некоторым из этих функций, но я думаю, что сейчас он вышел из рынка.
    В любом случае, ловкость с этими функциями обычно приобретается «в магазине» и очень сложна (поверьте мне), чтобы получить от книги или учебного пособия.

Тем не менее, не следует ожидать, чтобы получить работу мэйнфреймов (кроме супер-младший один) после обучения и приручения COBOL. Это всего лишь первый маленький шаг.

HTH!

1

Раньше существовал компилятор Cobol-to-C и Eclipse IDE от компании под названием «Компания». Продукт назывался «Коболь». Это позволит вам писать Cobol, используя среду на основе eclipse, которая будет похожа на то, что вы будете использовать для мэйнфрейма (Rational Developer for Z). У них есть бесплатная демо-версия и дешевая студенческая версия IIRC.

Вы обнаружите, что Cobol легко учиться, легко писать и трудно стрелять в ногу. Это одна из причин, по которой она очень популярна среди финансовых учреждений.

Я думаю, это здорово, что вы добавляете Cobol в свой набор инструментов.

0

Micro focus теперь предлагает свою личную версию Visual COBOL бесплатно для некоммерческого использования. Этот COBOL работает либо с Microsoft Visual Studio, либо с языком .NET, либо с Eclipse. Он даже поставляется с облегченной версией Visual Studio, поэтому вам не нужно это покупать. Вы можете скачать его с https://www.microfocus.com/product-downloads/vcpe/vcpe22/index.aspx

Открытый код OpenCOBOL на www.opencobol.org/ теперь изменил свое название и местоположение. Теперь он называется GNU Cobol, он может быть найден на sourceforge.net/projects/open-cobol/. Это отличный COBOL, который реализует значительную часть стандартов ANS 85 и ISO 2002 COBOL.

Сайт GNU COBOL также имеет ссылку на Руководство программистов Gary Cutler по OpenCOBOL 1.1, которое является отличной ссылкой на язык. Если вы ищете учебные материалы, вы можете попробовать мой учебник COBOL по адресу: www.csis.ul.ie/cobol/course.

Существует также очень полезная онлайн-версия COBOL, в которой используется компилятор OpenCOBOL. Он может быть найден по адресу http://www.compileonline.com/compile_cobol_online.php Проверьте свою слишком длинную программу «Привет мир». В ISO 2002 COBOL ИДЕНТИФИКАЦИОННОЕ ОТДЕЛЕНИЕ не требуется, и поскольку программа останавливается, когда конец текста достигнут, STOP RUN также не требуется. На самом деле требуются только три строки, показанные ниже. Попробуй сам.

PROGRAM-ID. HELLO-WORLD. 
PROCEDURE DIVISION. 
    DISPLAY 'Hello, world'. 
Смежные вопросы