Jump to content

Хлеб

Хлеб
Тип бизнеса Дочерняя компания
Основан Декабрь 2006 г. ( 2006-12 ) в Оксфорде , Англия.
Штаб-квартира Сан-Франциско, Калифорния, США
Основатель(и) Глаз мавра
Ключевые люди Oege de Moor, Pavel Avgustinov, Julian Tibble
Промышленность Анализ программного обеспечения
Продукты Программное обеспечение и услуги для анализа кода
Родитель GitHub [1] (2019 – настоящее время)
URL-адрес рулон [ мертвая ссылка ]

Semmle Inc платформа для анализа кода ; Semmle была приобретена GitHub (которая сама принадлежит Microsoft ) 18 сентября 2019 года за нераскрытую сумму. [2] Технология LGTM компании Semmle автоматизирует проверку кода , отслеживает вклад разработчиков и отмечает проблемы безопасности программного обеспечения . [2] Платформа LGTM использует механизм запросов CodeQL (ранее QL). [3] выполнять семантический анализ баз кода программного обеспечения. GitHub стремится интегрировать технологию Semmle для предоставления услуг непрерывного обнаружения уязвимостей. [4] В ноябре 2019 года использование CodeQL стало бесплатным для исследований и открытым исходным кодом. [5] CodeQL либо имеет прямую родословную с .QL (dot-que-ell), который происходит от генеалогического древа Datalog , либо является развитием аналогичной технологии. [ нужны разъяснения ]

SemmleCode — это объектно-ориентированный язык запросов для дедуктивных баз данных , разработанный Semmle. В этом классе он отличается поддержкой рекурсивных запросов.

Корпоративный фон

[ редактировать ]

Штаб-квартира компании находилась в Сан-Франциско , а ее девелоперские подразделения располагались в Блю-Боар-Корт, Альфред-стрит , в центре Оксфорда , Англия . Среди клиентов Semmle были Credit Suisse , NASA и Dell . [6]

Фон SemmleCode

[ редактировать ]

Академический

[ редактировать ]

SemmleCode основан на академических исследованиях по запросу источника программного обеспечения. Первой такой системой была система Линтона «Омега». [7] где запросы были сформулированы в QUEL . QUEL не допускал рекурсии в запросах, что затрудняло проверку иерархических структур программы, таких как граф вызовов . Следующим значительным достижением стало использование логического программирования , которое допускает такие рекурсивные запросы, в браузере XL C++. [8] Однако недостатком использования языка полного логического программирования является то, что очень трудно достичь приемлемой эффективности. Система CodeQuest, [9] разработанный в Оксфордском университете , был первым, кто использовал наблюдение о том, что Datalog , очень ограниченная версия логического программирования, находится в золотой середине между выразительной силой и эффективностью. Язык QL запросов — это объектно-ориентированная версия Datalog.

Промышленный

[ редактировать ]

Первые исследовательские работы по запросу источника программного обеспечения привели к появлению ряда промышленных приложений. В частности, он стал краеугольным камнем систем прикладного интеллекта ( извлечение данных об источнике программных систем) и обновления программного обеспечения. В 2007 году базирующаяся в Париже компания CAST [10] является одним из лидеров рынка в этой области, среди других важных игроков — BluePhoenix в Герцлии , Израиль . SemmleCode отличается от этих систем использованием объектно-ориентированного языка запросов, который позволяет программистам легко формулировать новые запросы, специфичные для их собственного проекта.

Полный отчет об академических и промышленных разработках, приведших к созданию SemmleCode, можно найти в статье Гаджиева и др. [11]

Пример запроса в QL

[ редактировать ]

Чтобы проиллюстрировать использование QL, рассмотрим хорошо известное правило объектно-ориентированного программирования , согласно которому общедоступные поля должны быть объявлены окончательными. Чтобы обнаружить нарушения этого правила, нам следует искать поля, которые являются общедоступными, но не окончательными. В QL это требование выражается следующим образом:

 из   поля   f,   где   f  .  hasModifier  (  "public"  )         и         not  (  f  .  hasModifier  (  "final"  ))   выберите   f  .  getDeclaringType  ().  getPackage  (),          f  .  getDeclaringType  (),          f 

Здесь не только оскорбительное поле f выбран, но также пакет и тип, в котором происходит его объявление.

Интеграция SemmleCode со средами разработки

[ редактировать ]

SemmleCode предоставляет пользовательский интерфейс через Eclipse IDE для запроса кода Java (как исходного, так и байт-кода), а также файлов XML, а также для редактирования запросов QL. Однако это лишь одно из применений лежащей в его основе технологии: QL можно использовать для запроса любого другого типа сложных данных.

В рамках объединения с корпорацией Microsoft/GitHub исходный рабочий процесс на основе Eclipse был заменен рабочим процессом, основанным на коде Microsoft Visual Studio Code . [3]

См. также

[ редактировать ]
  1. ^ «GitHub приобретает Semmle, чтобы помочь разработчикам обнаруживать уязвимости в коде» . www.venturebeat.com . 18 сентября 2019 г. Проверено 20 сентября 2019 г.
  2. ^ Перейти обратно: а б Лардинуа, Фредерик (18 сентября 2019 г.). «GitHub приобретает инструмент анализа кода Semmle» . techcrunch.com . ТехКранч . Проверено 13 марта 2021 г.
  3. ^ Перейти обратно: а б «Знакомство с CodeQL» . semmle.com . Семмле. Сентябрь 2019 года . Проверено 13 марта 2021 г. продукт и инструменты QL были переименованы в CodeQL... то, что раньше называлось «снимком QL», теперь является базой данных CodeQL.
  4. ^ Де Симоне, Серджио (19 сентября 2019 г.). «GitHub для интеграции анализа кода Semmle для непрерывного обнаружения уязвимостей» . информация . ИнфоQ . Проверено 13 марта 2021 г.
  5. ^ Криль, Пол (15 ноября 2019 г.). «GitHub делает CodeQL бесплатным для исследований и открытым исходным кодом» . infoworld.com . Инфомир . Проверено 13 марта 2021 г.
  6. ^ «Выделившаяся компания Semmle получила 8 миллионов долларов от Accel Partners» (пресс-релиз). Оксфордский университет. 16 сентября 2014 года . Проверено 18 сентября 2015 г.
  7. ^ «Система Омега Линтона» . США: Калифорнийский университет, Беркли . 1983.
  8. ^ Шахрам Джави, Кинъити Мицуи, Хироаки Накамура, Цуёси Охира, Кадзу Ясуда, Казуши Кусе, Цутому Камимура и Ричард Хелм. Архитектура браузера XL C++ . В CASCON '92: Материалы конференции Центра перспективных исследований по совместным исследованиям 1992 года , страницы 369–379. IBM Пресс, 1992.
  9. ^ «Система CodeQuest» . Великобритания: Вычислительная лаборатория Оксфордского университета . Архивировано из оригинала 9 октября 2006 года.
  10. ^ «КАСТ Программное обеспечение» .
  11. ^ Эльнар Гаджиев, Матье Вербер и Оге де Мур, CodeQuest: масштабируемые запросы исходного кода с журналом данных. В ECOOP 2006: Материалы Европейской конференции 2006 года по объектно-ориентированному программированию , страницы 2–27. Спрингер , 2006.

Дальнейшее чтение

[ редактировать ]
  • Марк А. Линтон. Реализация реляционных представлений программ. Питер Б. Хендерсон, редактор журнала Software Development Environments (SDE) , страницы 132–140, 1984.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 7e84d06b4d92b834a99b8e060f056569__1712127480
URL1:https://arc.ask3.ru/arc/aa/7e/69/7e84d06b4d92b834a99b8e060f056569.html
Заголовок, (Title) документа по адресу, URL1:
Semmle - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)